logrtによるログ検知結果をスクリプトによるシェル リダイレクトで出力したい
お世話になります。
ZABBIX5.4.3 監視対象はCentOSです。
ログ監視自体は問題なく行えています。
アイテムキー:
logrt[/var/log/xyz/messages,"answered"]
トリガー:
change(/host/logrt[/var/log/xyz/messages,"answered "])=1 and
nodata(/host/logrt[/var/log/xyz/messages,"answered"],30)=0
ログからansweredを検出したらトリガーとし30秒更新がなければ復旧も、正常に動作しています。
併せて検知した内容(最新値last(0))をアクションでMS Teamsに飛ばす所も正常に動作しています。
アクションに追加する形で実施したいのは掲題にある通り、検知した最新値をファイルに出力したいです。
アクションにてスクリプトを実行する形でZABBIX上では実行済みとなっています。
スクリプトの内容は以下の通りです。
sudo {TRIGGER.KEY}.last(0) > /root/test
visudoによるzabbixの権限設定やAllowKey=system.run[*]は済んでいます。
zabbix_agentd.logでも実行済みとなっていますが、/root/testにファイルが生成されません。
何が設定の漏れや考えている点に間違えが有りましたらアドバイスを頂けると嬉しいです。
どうぞよろしくお願いします。
MSG - 投稿数: 61
問題の切り分けの為にテストを行いました。
マクロを使わずにdateコマンドをファイルにリダイレクトするスクリプトを書いたところ
ファイルが生成されませんでした。
sudo /bin/date > /root/test
それで/rootへの書き込み権限を疑い
sudo /bin/date > /var/log/zabbix/test
上記を実行したところファイルが生成されました。
それで
sudo {TRIGGER.KEY}.last(0) > /var/log/zabbix/test
上記を実行したところファイルが生成されず
sudo echo "{TRIGGER.KEY}.last(0)" > /var/log/zabbix/test
ではマクロの内容がそのままファイル出力されました。
sudo echo {TRIGGER.KEY}.last(0) > /var/log/zabbix/test
上記もNG
スクリプトでマクロをリダイレクトするのはサポートされていないのでしょうか。
どうぞよろしくお願いします。
fripper - 投稿数: 495
https://www.zabbix.com/documentation/5.4/en/manual/appendix/macros/suppo...
お使いのバージョンで利用できるマクロと、そのマクロが利用できる場所・シーンの一覧が
マニュアルに記載されています
記載されている TRIGGER.KEY マクロは、deprecated となっており
v1.8.x から v2.0.x 相当のころに deprecated となっているようです
ITEM.KEY<1-9>等のマクロや、TRIGGER.EXPRESSION あたりが代替になるのでは
ないかと推察されます
MSG - 投稿数: 61
ありがとうございます。
TRIGGER.KEYがdeprecatedになっているのは知りませんでした。
ZABBIX5.4.3でTeamsに最新値を送る際に問題なく動いています。
それでTeamsに通知を送っているトリガーアクションのメッセージを変更してみました。
{ITEM.KEY1}.last(0)
{{ITEM.KEY1}.last(0)}
上記では最新値ではなく,<アイテム>.last(0)がそのまま通知されました。
教えて頂いたマクロ一覧を調べて
{ITEM.LASTVALUE}を使うとTeamsに最新値を送れました。
それで
sudo echo {ITEM.LASTVALUE1} > /var/log/zabbix/test
上記スクリプトで最新値をファイルへ無事生成出来ました。
やはりechoで一旦出力しないとリダイレクトされませんでした。
ありがとうございました!