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 の写真

問題の切り分けの為にテストを行いました。

マクロを使わずに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 の写真

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 の写真

ありがとうございます。

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で一旦出力しないとリダイレクトされませんでした。

ありがとうございました!