Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerSFTP 用 Anypoint Connector (SFTP Connector) をトラブルシューティングするには、接続、権限、サーバー側の問題のトラブルシューティング、Mule アプリケーションの問題のトラブルシューティング、一般的にスローされるメッセージの解釈、ID ファイル形式の問題のトラブルシューティングに関する情報について理解しておいてください。
場合によって、SFTP サーバーへの接続を試みているときに、SFTP サーバーで設定済みの暗号化された通信チャネルが必要であるために接続の確立で問題が発生することがあります。 たとえば、特定の暗号化の暗号や鍵交換アルゴリズムを有効にするか、特定の認証鍵の場所を指定する必要があることもあります。
この問題を解決する手順は、次のとおりです。
SFTP サーバー設定ファイルを見つけ、接続、暗号化方法、タイムアウトなどに関するパラメーターや設定を確認します。必要に応じて設定を修正し、ニーズに合わせて環境をカスタマイズします。
たとえば、OpenSSH を使用している場合は sshd_config
ファイルにアクセスできます。
設定ファイルを使用して、サーバー側のログレベルを引き上げます。
場合によって、アプリケーションが失敗している理由がわからず、アプリケーションの SFTP サーバーとのやりとりで何が行われているかについて理解を深める必要があることがあります。
このエラーを解決する手順は、次のとおりです。
設定ファイルを使用して、サーバー側のログレベルを引き上げます。
たとえば Cyberduck や Filezilla などの SFTP クライアントを使用して、問題の再現を試みます。これらのクライアントを使用した場合でも問題が発生する場合は、問題が Mule アプリケーションには関連していない可能性が高くなります。
SFTP Connector および Apache Mina ライブラリの冗長ログを有効にして、Mule アプリケーション側に関するより分かりやすく詳細なログを取得します。
Anypoint Studio にアクセスし、[Package Explorer] ビューに移動します。
アプリケーションのプロジェクト名を開きます。
src/main/resources
パスフォルダーを開きます。
フォルダー内の log4j2.xml
ファイルを開きます。
次の行がすでに log4j2.xml
ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。
<AsyncLogger name=“org.mule.extension.sftp” level=“TRACE”/>
<AsyncLogger name=“org.apache.sshd” level=“DEBUG”/>
xml
次の引数を追加して設定を実行します。
`-M-Djavax.net.debug=ssl,handshake`
相関 ID を子スレッドに確実に渡して SSH ログに表示するには、次の引数を実行設定に含めます。
`-Dlog4j2.isThreadContextMapInheritable=true`
アプリケーションを可能な限り単純にして問題がアプリケーションと SFTP サーバー間のやりとりに関係しているかどうかを判断できるように、不要な DataWeave データ変換は最小限に抑えるか削除してみてください (ハードコードされたデータを使用することもできます)。
Mule アプリケーションで SDK コンポーネントの冗長ログを有効にする方法についての詳細は、「SDK コンポーネントおよび操作のトラブルシューティング」ドキュメントを参照してください。
スローされる一般的なメッセージのリストとその解釈方法を次に示します。
SFTP:ILLEGAL_PATH
指定されたパスが無効です (存在しないなど)。
SFTP:FILE_ALREADY_EXISTS
既存のファイルと同じ場所、同じ名前でファイルを作成しようとしました。 この問題は、たとえば CREATE_NEW 書き込みモードを使用してすでに存在しているファイルのパスにファイルを書き込もうとした場合に発生します。
SFTP:ACCESS_DENIED
SFTP サーバーパスにアクセスしてユーザーが権限を付与されていないアクションを実行しようとする操作が試行されました。
SFTP:FILE_LOCK
ファイルに対するロックを取得しようとする操作が試行されましたが失敗しました。
SFTP:ILLEGAL_CONTENT
*Write* 操作で書き込み対象として無効なコンテンツを受信しました。
SFTP:CONNECTIVITY
SFTP サーバーへの接続が中断されました。
SFTP:INVALID_CREDENTIALS
無効なログイン情報が原因で SFTP サーバーに対する認証に失敗しました。
SFTP:CONNECTION_TIMEOUT
SFTP サーバーへの接続試行がタイムアウトになりました。
SFTP:CANNOT_REACH
指定された SFTP サーバーホストおよびポートへの接続を確立しようとしていてエラーが発生しました。通常、たとえばリモートアドレスまたはポートでリスンしているプロセスが存在しない場合、接続はリモートで拒否されます。
SFTP:UNKNOWN_HOST
Mule ではホストの IP アドレスを判断できません。
SFTP:DISCONNECTED
アプリケーションでサーバーへのログイン試行の失敗回数が多すぎます。この問題の原因は複数考えられますが、最も一般的な原因は無効なログイン情報です。
SFTP:KEY_EXCHANGE_FAILED
アプリケーションはサーバーへの SSH 接続の確立を試みましたが、鍵交換ステップで失敗しました。ネゴシエーション中、または鍵交換の後半のステップでエラーが発生する場合があります。
FILE_DOESNT_EXIST
The file to write was deleted. (書き込むファイルが削除されています。)
SFTP Connector バージョン 2.0.0 以降を使用していて、優先する認証方法を PUBLIC_KEY
に設定すると、ID
ファイルが PPK の場合、問題が発生する可能性があります。Apache Mina ライブラリ
では PPK ファイル形式がサポートされないため、アプリケーションが失敗します。
この問題を解決する手順は、次のとおりです。
PuTTYgen
を使用して、PPK ID
ファイルを PEM に変換します。
PEM ファイルを使用するように設定ファイルを更新します。
<sftp:config name="SFTP_Config" doc:name="SFTP Config" doc:id="34cf9b32-d3de-4171-b6e9-36dc0b25e7c0">
<sftp:connection host="${host}" username="${user}" identityFile="${app.home}/${file-pem}" passphrase="${pwd}" port="${port}" workingDir="${root-folder}" preferredAuthenticationMethods="#[['PUBLIC_KEY']]">
</sftp:connection>
</sftp:config>
xml