アクション実行が正常にできない
いつも参考にさせていただいております。
=====================
REHL 7.6
zabbix 4.4
=====================
ベンダーから提供されたコマンドのアクション実行が上手くいきません。
現状は以下の通りです。
=============================================================================================
・サーバから直接コマンドを実行すると正常にコマンドが実行できます。
例:$TEST_HOME/bin/command
※フルパス指定ではコマンドは失敗しました。
・アクションに設定すると「127」のエラーを出力してコマンドが失敗しているようです。
例:\$TEST_HOME/bin/command; echo $? > /tmp/return-code
※アクションに「$TEST_HOME」と記載すると、コマンド実行時に展開されてしまうので「\」をつけています。
・環境変数は「/etc/profile」に設定しました。
・アクションのタイプはカスタムスクリプトで、実行はzabbixエージェントです。
・zabbixエージェントでは「EnableRemoteCommands=1」に設定してあります。
=============================================================================================
zabbixやmessagesには特にアクション実行エラーらしきものが出力されなかったため、リターンコードを確認し、
リターンコードが「127」とのことなので、コマンドが見つからないためにコマンドが失敗しているように見えます。
また、アクションがコマンドを正常に作成できているかはechoでファイルに出力して確認いたしました。
以下、確認したいことですが、
1.サーバから直接コマンドを実行することは可能なのに、アクションに設定すると失敗するのケースとしてどういったパターンがありますでしょうか?
2.アクション実行時のコマンドエラーや実際にどんなコマンドが実行されて失敗しているかを確認する方法はありますでしょうか?
以上、ご教授いただけると幸いです。
TNK - 投稿数: 4671
アクションにどのように設定されているのかわかりませんが、設定
が誤っているか、起動しようとしていくコマンドのパスに環境変数
を使用しているのであれば、その環境変数が設定されていないから
でしょう。
エラーコードとエラーメッセージで確認してください。
デバッグレベルを上げるとより詳細な情報を確認できるかもしれま
せん。
ama - 投稿数: 72
TNK様
ご回答ありがとうございます。
> アクションにどのように設定されているのかわかりませんが、設定
> が誤っているか、起動しようとしていくコマンドのパスに環境変数
> を使用しているのであれば、その環境変数が設定されていないから
> でしょう。
zabbixエージェントで実行に設定しており、zabbixエージェントはzabbixユーザにて起動しています。
zabbixユーザの.bash_profileにも環境変数を設定しましたが、コマンドが実行されません。
ダッシュボードから確認できるアクションのステータスは「実行」となっております。
> エラーコードとエラーメッセージで確認してください。
> デバッグレベルを上げるとより詳細な情報を確認できるかもしれま
> せん。
デバッグレベルを5にしてログを確認しましたが、アクションで失敗している記述は見当たりませんでした。
TNK - 投稿数: 4671
ログインシェルが起動されるわけではないので、コマンドの実行に
必要な環境変数は、/etc/profileやzabbixユーザの.bash_profileから
は読み込まれなかったはずです。
必要な環境変数の設定は、起動するスクリプト内で設定するように
してみてください。
ama - 投稿数: 72
TNK様
スクリプト内で環境変数の設定を行ったところ、望んだアクションになりました。
ご協力ありがとうございました。