【linux】改行を含んだ複数行のログ監視方法について
お世話になります。
現在、Zabbix4.0監視を行っているのですが、
改行を含んだ複数行のlinuxログ監視方法をお教えいただきたくご質問いたしました。
環境は以下となります。
【Zabbixサーバー】バージョン4.0.10
【Zabbixエージェント】4.0.10
【監視対象OS】RHEL6.6
設定されているアイテム・トリガー、監視対象ログは以下となります。
【アイテム】
log[/var/log/bat/bat.log,,,,,,]
【トリガー】
{xxxx-xxxx:log[/var/log/bat/bat.log,,,,,,].str(fail)}=1
and
{xxxx-xxxx:log[/var/log/bat/bat.log,,,,,,].nodata(1m)}=0
【監視対象ログ】
ログファイル名:bat.log
ーーーーここからーーーー
2021-06-24 08:30:03 [ERROR] xxxx [エラー] xxxx
エラー種類:[fatal]
エラー箇所:クラス[xxxx] メソッド[xxxx] 行番号[xxx]
エラー情報:結果=x,メッセージ=致命的なエラーが発生しました。,ID=fatal
エラー情報:結果=x,メッセージ=,ID=
入力情報
ユーザ情報:xx=01,ユーザ=xxxx1234ホスト名=xxxx-123
バッチ情報:バッチID=xxxx,シーケンス=1234
xxxxERROR内容
at fail(xxxx.java:123)
at xxxx(xxxx.java:456)
at xxxx(xxxx.java:213)
at xxxx(xxxx.java:5643)
at xxxx(xxxx.java:324)
at xxxx(xxxx.java:65)
at xxxx(xxxx.java:80)
2021-06-24 09:07:28 [INFO] xxxx
2021-06-24 09:07:28 [INFO] xxxx
ーーーーここまでーーーー
現状の設定では上記ログが出力された場合、Zabbix Serverでは「at fail(xxxx.java:123)」の1列のみをデータ取得しています。
目標としてはタイムスタンプが2021-06-24 08:30:03のログ全てを1つのデータとしてZabbix Serverで取得することです。
Zabbixsenderを使用し対応している例もありましたが、Zabbixsenderを使用せずにZabbixServerのアイテム・トリガー等設定変更のみで
解決できる方法がございましたら、ご教示いただきたく存じます。
よろしくお願いいたします。
TNK - 投稿数: 4720
Zabbixの標準の機能では、複数行に跨るログを1つのエラーとして
まとめる機能はありません。
例えば、Fluentdなどを使用して、元のログファイルを整形して、
1つのエラーを1行に出力するような変換を実現できれば、Zabbixで
その変換後のファイルを監視することで実現できるかもしれません。
ご参考:
複数行のログをキーワード監視&通知することで運用を少し改善しよう
https://qiita.com/uzresk/items/935baa47f83921158276
DSR-1 - 投稿数: 31
TNK様
お世話になっております。
情報いただきありがとうございます。
Zabbix標準の機能では実現不可能であること承知いたしました。
ご提案いただいたFluentdの利用等検討いたします。
以上、よろしくお願いいたします。