はじめに
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」が除外されて取り込まれてました。
以上