ab’s blog

インフラの呟きです。

Zabbix6.0 ログ監視アイテムの「保存前処理」で文字列フィルターをかける

hahahahahaha

はじめに

Zabbixのログ監視アイテム(log,logrt)で複雑な条件の文字列フィルターをかけたいときは「(グローバル)正規表現」を使いましたが、Zabbix6.0ではアイテムの「保存前処理」で正規表現同等のフィルターをかけることができるようになってました。正規表現は特権ユーザーでないと触れなかったのですが、この仕様変更により一般管理者でも複雑な文字列フィルターをかけることができるようになりました。また、GUIから設定エクスポート/インポートができないグローバル正規表現に対し、エクスポート/インポート可能なアイテムに取り込まれたことで運用しやすくなったと思います。

設定例

「error」が含まれ、かつ「bbb」または「ccc」を含まないログメッセージのみとりこみたい場合の設定例です。まずアイテムキーで「error」のみ取得する設定をいれます。

アイテム

次に保存前処理で「bbb」と「ccc」を「正規表現と一致しない」と設定します。

保存前処理

ログ取得テスト

設定ができたら試してみます。loggerコマンドで/var/log/messagesにメッセージを書き込み

$ logger -p err -t test error aaa
$ logger -p err -t test error bbb
$ logger -p err -t test error ccc
$ logger -p err -t test error ddd

ログには「aaa」~「ddd」まで書き込まれました。

$ tail /var/log/messages
2023-11-24T06:47:05.899792+09:00 ANSIBLESERV01 test[83773]: user.err: error aaa
2023-11-24T06:47:08.216055+09:00 ANSIBLESERV01 test[83777]: user.err: error bbb
2023-11-24T06:47:10.577660+09:00 ANSIBLESERV01 test[83778]: user.err: error ccc
2023-11-24T06:47:13.803439+09:00 ANSIBLESERV01 test[83779]: user.err: error ddd

zabbixの最新データには「bbb」と「ccc」が除外されて取り込まれてました。

最新データ

以上