操作問い合わせ #972
closed戻り値によるジョブの終了検知方法について
Description
担当者どの
標記件について教えてください。
弊社では、ジョブの異常終了を戻り値によって以下の3区分にて運用しています。
0・・・正常終了。後続のジョブを実行する。エラー通知なし。
1・・・警告終了。後続のジョブを実行する。エラー通知あり。
2(以上)・・・異常終了。後続のジョブを実行しない。エラー通知あり。
この運用をJob Arranger に適用しようと検証していますが、"警告終了"という区分が存在しないため、
ジョブアイコンの「ジョブ停止コード」を"2-255"としています。
しかし、この際、ジョブの制御は問題なくできるのですが、
エラー通知について、異常終了(戻り値2)はエラー通知できるが、
警告終了(戻り値1)はエラー通知できない。という不都合が出ています。
Job Manager の「実行結果表示」画面では、「戻り値」欄に戻り値が表示され認識できるのですが、
zabbix_server.log には、メッセージが何も出力されず、Zabbix にエラー通知ができていません。
警告終了をエラー通知するには、どのようにしたら良いでしょうか。
よろしくお願いします。
Updated by Anonymous over 10 years ago
- Status changed from 担当者処理中 to 回答中
Job Arranger for Zabbixのご利用ありがとうございます。
お問い合わせの件についてご回答致します。
お尋ねの件ですが、警告終了をエラー通知するにはアイコンの機能では実現できませんので、ジョブフローの中に
戻り値を判断するような警告判断処理を組む必要があります。
具体的には、ジョブアイコンの実行後、条件分岐アイコンでそのジョブアイコンの戻り値が格納されている
ジョブコントローラ変数「JOB_EXIT_CD」(数値)を判断し、「1」であれば拡張ジョブアイコンを呼ぶようにして、
その拡張ジョブとして「Zabbix通知(zabbx_sender)」を指定することで、エラーメッセージを通知することになります。
この場合、Zabbix側に通知先のホスト、アイテム、トリガーなどを登録しておく必要があります。
拡張ジョブアイコンについては、Job_Arranger_操作マニュアルの「5.5.5 拡張ジョブアイコン」をご参照下さい。
以上、よろしくお願いいたします。
Updated by Anonymous over 10 years ago
担当者どの
早速のご回答ありがとうございます。
ご提示頂いた方法で、ジョブを作成しようと試みたのですが、
拡張ジョブの設定において、拡張ジョブのドロップダウンリストが表示されません。
何が原因でしょうか?
ご教示ください。
バージョンは、1.4.0です。
よろしくお願いします。
Updated by Anonymous over 10 years ago
ご連絡ありがとうございます。
お教え頂いた状況からすると、実行環境セットアップ時に拡張ジョブの情報が設定されていないかもしれません。
拡張ジョブのドロップダウンリストに表示される情報は「ja_define_extjob_table」テーブルに格納されています。
恐れ入りますが、データベースに接続後、下記SQLを実行して頂けないでしょうか。
select * from ja_define_extjob_table;
確認ですが、ログイン時のZabbixユーザーの言語は日本語、英語(en_GB)以外の言語でしょうか。
Job Arrangerでは現在のところ、英語(en_GB)および日本語のみに対応しています。
上記以外の言語を指定している場合も、本事象が生じます。
お手数をお掛け致しますが、ご確認の程、宜しくお願い致します。
Updated by Anonymous over 10 years ago
山際さま
ご指摘のテーブルには登録されているようです。以下に転記します。
なお、言語は日本語を利用しています。
よろしくお願いします。
zabbix=> select * from ja_define_extjob_table ;
command_id | lang | command_name |
memo
| created_date
---------------+-------+----------------------------------+-------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------+----------------------------
jacmdsleep | en_gb | Sleep until the specified time | I will wait for the process only during the specified number
of seconds. Please specify the time in seconds waiting for the parameter.
| 2014-02-21 11:32:57.710361
jacmdtime | en_gb | Waiting until the specified time | I will wait for the process until the specified time. Please
specify in the format HHMM the time waiting for the parameter.
| 2014-02-21 11:32:57.710361
jacmdweek | en_gb | Check the day of the week | We will determine whether to match the day the day of the we
ek during the run icon is specified. Please specify (Sun Mon Tue Wed Thu Fri Sat) days of the week that you want to comp
are the parameter. The day of the week can be specified more than once. | 2014-02-21 11:32:57.710361
zabbix_sender | en_gb | Issue the zabbix_sender | I do call Zabbix sender. Please specify the parameters to be
passed to the command the parameter zabbix_sender. Example: -z zabbix_hostname -p zabbix_port_number -s host_name -k it
em_key -o "value" | 2014-02-21 11:32:57.710361
jacmdsleep | ja_jp | 時間待合せ(SLEEP) | 指定された秒数の間だけ処理を待合せします。パラメータに待合せ
時間を秒単位(0~999999)で指定してください。
| 2014-02-21 11:32:57.710361
jacmdtime | ja_jp | 時刻待合せ(TIME) | 指定された時刻まで処理を待合せします。パラメータに待合せ時刻
を HHMM の形式で指定してください。
| 2014-02-21 11:32:57.710361
jacmdweek | ja_jp | 曜日判断 | アイコン実行時の曜日が指定された曜日と一致するかを判断します
。パラメータに比較したい曜日(Sun, Mon, Tue, Wed, Thu, Fri, Sat)を指定してください。曜日は複数指定が可能です。
| 2014-02-21 11:32:57.710361
zabbix_sender | ja_jp | Zabbix通知(zabbix_sender) | Zabbix senderの呼出しを行います。パラメータに zabbix_sender
コマンドに渡すパラメータを指定してください。 例:-z Zabbixホスト名 -p Zabbixポート番号 -s ホスト名 -k アイテムキー -o "
知内容(値)" | 2014-02-21 11:32:57.710361
(8 行)
zabbix=>
Updated by Anonymous over 10 years ago
ご連絡ありがとうございます。
度々で申し訳ございませんが、ご利用のデータベースはMySQL、PostgreSQLの
どちらでしょうか。
宜しくお願い致します。
Updated by Anonymous over 10 years ago
ご連絡有難うございました。
「拡張ジョブのドロップダウンリストが表示されない」という事象は、Zabbix2.x系でPostgreSQLを使用している場合に生じる不具合です。
同障害はJob Arranger 1.4.2版で対応済となっておりますが、ご利用の1.4.0版におきましても、データベースに接続後、下記SQLを実行することでも
対処可能となっております。
DELETE FROM ja_define_extjob_table;
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('jacmdsleep', 'en_GB', 'Sleep until the specified time', 'I will wait for the process only during the specified number of seconds. Please specify the time in seconds waiting for the parameter.');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('jacmdtime', 'en_GB', 'Waiting until the specified time', 'I will wait for the process until the specified time. Please specify in the format HHMM the time waiting for the parameter.');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('jacmdweek', 'en_GB', 'Check the day of the week', 'We will determine whether to match the day the day of the week during the run icon is specified. Please specify (Sun Mon Tue Wed Thu Fri Sat) days of the week that you want to compare the parameter. The day of the week can be specified more than once.');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('zabbix_sender', 'en_GB', 'Issue the zabbix_sender', 'I do call Zabbix sender. Please specify the parameters to be passed to the command the parameter zabbix_sender. Example: -z zabbix_hostname -p zabbix_port_number -s host_name -k item_key -o "value"');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('jacmdsleep', 'en_US', 'Sleep until the specified time', 'I will wait for the process only during the specified number of seconds. Please specify the time in seconds waiting for the parameter.');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('jacmdtime', 'en_US', 'Waiting until the specified time', 'I will wait for the process until the specified time. Please specify in the format HHMM the time waiting for the parameter.');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('jacmdweek', 'en_US', 'Check the day of the week', 'We will determine whether to match the day the day of the week during the run icon is specified. Please specify (Sun Mon Tue Wed Thu Fri Sat) days of the week that you want to compare the parameter. The day of the week can be specified more than once.');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('zabbix_sender', 'en_US', 'Issue the zabbix_sender', 'I do call Zabbix sender. Please specify the parameters to be passed to the command the parameter zabbix_sender. Example: -z zabbix_hostname -p zabbix_port_number -s host_name -k item_key -o "value"');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('jacmdsleep', 'ja_JP', '時間待合せ(SLEEP)', '指定された秒数の間だけ処理を待合せします。パラメータに待合せ時間を秒単位(0~999999)で指定してください。');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('jacmdtime', 'ja_JP', '時刻待合せ(TIME)', '指定された時刻まで処理を待合せします。パラメータに待合せ時刻を HHMM の形式で指定してください。');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('jacmdweek', 'ja_JP', '曜日判断', 'アイコン実行時の曜日が指定された曜日と一致するかを判断します。パラメータに比較したい曜日(Sun, Mon, Tue, Wed, Thu, Fri, Sat)を指定してください。曜日は複数指定が可能です。');
INSERT INTO ja_define_extjob_table (command_id, lang, command_name, memo) VALUES ('zabbix_sender', 'ja_JP', 'Zabbix通知(zabbix_sender)', 'Zabbix senderの呼出しを行います。パラメータに zabbix_sender コマンドに渡すパラメータを指定してください。 例:-z Zabbixホスト名 -p Zabbixポート番号 -s ホスト名 -k アイテムキー -o "通知内容(値)"');
お手数をお掛け致しますが、何卒よろしくお願い致します。
Updated by Anonymous over 10 years ago
山際さま
ご回答ありがとうございました。
ご提示頂いた内容で対応しましたところ、正常に拡張ジョブが利用できるようになりました。
また、ジョブの終了コードが"1"の場合に、Zabbixにて検知することも実現できました。
なお、今後の拡張要望として、今回のような要件において、拡張ジョブを利用するのではなく、
標準連携メッセージに、終了コードを含んだメッセージを追加頂けると幸いです。
拡張ジョブでの実装ですと、各ジョブごとに「判定&拡張ジョブ」を組み込む必要があり、非現実的です。
拡張ジョブの機能検証は実施しましたが、今後の対応に苦慮しています。
本件、クローズして頂いて結構です。
ありがとうございました。
Updated by Anonymous over 10 years ago
機能拡張の御要望の件、承りました。
Zabbixとの連携強化は、重要開発項目として認識していますので、実装を検討致します。
今後も、ご要望をTicketとして登録して頂けますと、開発を検討させて頂きます。
以上、よろしくお願いいたします。