logrt で複数ファイルをログ監視している中での各ファイル毎に別アラートとしてあげたい

以下のようにlogrt で複数ファイルのログ監視をしたいのですが

logrt["/var/log/node.*\.log$",,,,skip]

以下のように2件のERRORが出た場合でも1件目と2件目は同じ障害として認識されてしまいます。

ファイル名:node1.log
 2024-10-22T10:10:10 10.0.0.1 ERROR ****** *******

ファイル名:node2.log
 2024-10-22T20:20:20 10.0.0.2 ERROR ****** *******

これをそれぞれ、別々のアラートとしてあげる事は可能でしょうか?
便宜上、ファイルを複数に分けていますが、1つのファイルにまとめる事も可能です。

ファイルのフォーマットはログ出力の日時の次にノードのIPアドレス となっており、識別は可能となっております。
プリプロセッシングなどを使う必要が出てきそうでしょうか。。。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

別の複数のファイルにログが出力されているのであれば、アイテム
は分けてください。
分けないと、ファイルごとにファイルのどの位置まで読み込んだか
の管理ができないので、複数回同じログで通知されたり、ログの再
読み込みと同様の問題が発生する可能性が考えられます。

ユーザー imeatu01 の写真

ありがとうございます。
それでは以下のように静的にアイテムを登録していく他はなさそうでしょうか?

log["/var/log/nodeA.log",,,,]
log["/var/log/nodeB.log",,,,]
:
:
log["/var/log/nodeN.log",,,,]

ユーザー TNK の写真

個別に出力されるログファイルは、記載されているようにアイテム
を分けてください。
さらに、それらのファイルがローテーションするようになっている
のであれば、ローテーションされる際のファイル名に合わせてlog[]
ではなくlogrt[]を使用した方が良いと思います。

logrt[]でファイル名に正規表現を使うことができるのは、複数の
個別のファイルをまとめて設定するためのものではなく、1つのフ
ァイルがログローションなどによって、ローテーションされた際に、
同じファイルの読み飛ばしを起こさないようにするための機能です。

例えば、RHELでlogrotateを使用してログのローテーションが実行
された際に、

 /var/log/messages

 /var/log/messages-20241020

に移動され、

 /var/log/messages

が新規に作成されると思います。
Zabbixエージェントがログを読み込むタイミングによっては、
/var/log/messagesに出力されていたログを読み込む前にローテー
ションが実行された際に、/var/log/messages-20241020から、読み
込んでいないと思われる分のログを読み込んでから、新しい、
/var/log/messagesから読み込むように機能します。

ユーザー imeatu01 の写真

ありがとうございます。
logrt[] の使いどころ、理解しました。

スケールしていくログファイル登録の煩わしさは
Zabbix APIを利用する事で対応しようと思います。