Zabbix 3系 アクションの引数について
いつもお世話になっております。
Zabbixの1.8と3系のアクションの引数についてご教授ください。
現在、Zabbixにて障害を検知した際、引数を別のプログラム渡し、その値をメール通知を行うか否か判断するプログラムを作成しています。
そこで質問なのですが、1.8系と3系にて引数の渡し方に違いはあるのでしょうか。
現在1.8系と3系の比較のため、障害検知時に引数の値をテキストに出力するshellを作成し、動かしてみました。
結果と設定は以下の通りです。
【アクション設定】
・メール→スクリプト実行→filter.shell
・メッセージ
[Hostname]:{HOSTNAME}
[IP Address]:{IPADDRESS}
[Date]:{EVENT.DATE}
[Time]:{EVENT.TIME}
[Event]:{TRIGGER.NAME}
[Status]:{TRIGGER.STATUS}
[Severity]:{TRIGGER.NSEVERITY}
[Value]:{ITEM.LASTVALUE}
【filter.shell】
#! /bin/bash
echo $1 > /opt/filter/bin/test/test.txt
echo $2 >> /opt/filter/bin/test/test.txt
echo $3 >> /opt/filter/bin/test/test.txt
【1.8 出力結果】
xxxxx@xxxxx.xxxx ← メールアドレス
FilterProgram ← 件名
[Hostname]:xx [IP Address]:xxxx [Date]:2017.06.29 [Time]:12:35:57 [Event]:xxx is unreachable [Status]:PROBLEM [Severity]:3 [Value]:Unreachable (2) ← メッセージ
【3系 出力結果】
xxxxx@xxxxx.xxxx
FilterProgram
[Hostname]:xxx^M [IP Address]:xxxxx^M [Date]:2017.06.29^M [Time]:09:18:30^M [Event]:xxx is unreachable^M [Status]:PROBLEM^M [Severity]:3^M [Value]:Up (1) ← 各区切りに"^M"が入っている
各出力結果の差異は、アクションのメッセージに記載したマクロの後に"^M"が入っているところとなります。
おそらく改行コードだと推測しているのですが、3系から改行コードが入るような仕様になっているのでしょうか。
何卒、よろしくお願いいたします。
wakaba - 投稿数: 228
広瀬です
端的に言えば、作成されているシェル自体、CR+LFだからでは無いでしょうか?
当然ですが、作成されるファイルもCR+LFになります。
恐らくWindowsで作成されて、改行コード気にされず転送されたのだと思います
ZABBIXの問題では無いと思われます。
mori123 - 投稿数: 36
お世話になります。
自己解決しました。
上記アクションのメッセージを作成したタイミングで、ZabbixのDB(Postgresql)を確信したところ
改行コードが入った形で登録されておりました。(ZabbixDBのactionテーブル)
そこでpsqlコマンドにてテーブルデータのupdateをかけたところ、期待通りの動作とありました。
postgresqlのバージョンが8.4系と9.2系でしたので、そういった部分が起因していたのではないかと推測しております。
失礼いたしました。