logrt使用時に、zabbix-agentが高負荷になる

お世話になっております、広瀬です。

ログ監視の動作テストをしていて気づいたのですが、/var/log/messagesを監視対象として、logrtキーアイテムを利用してログ監視をしてみたところ、監視対象サーバのzabbix-agentが常にCPU使用率が100%近い状態になってしまいました。

ZABBIXサーバ:1.8.5
ZABBIXエージェント:1.8.5

アイテムキー:logrt["/var/log/messages",ERROR]
更新間隔:300秒

最初は原因が分からず、logrtの影響だとは気づかなかったのでエージェントのDebugLevelを4にしてみたところ、以下のエラーがでていました。

[/var/log/nnnn.log.y] does not match [messages].
エンドレス・・・
※nnnnの部分は、一般的に/var/log配下にあるようなもの全て
※yはローテートしている場合の世代番号

エラーからすると、messagesに合わないよ!と言っているのだということは分かりましたので、logrtアイテムキーが原因だと判別できた次第です(無効にしたらActiveCheckのリフレッシュ更新時間のデフォルト120秒過ぎればおとなしくなりました)。

当該サーバ自体、ネットワーク機器などからのSyslog転送などをしている関係と、logrotateの世代数をデフォルトの4から54まで上げていたので、実に500ファイル近い数ありましたので、それらを総ナメしていた関係も負荷につながったと思われます。

ここで疑問なのですが、/var/log/messagesという指定自体に間違いがあった為なのか、それ以外なのかが皆目検討がつきません。
本家のForum当たっては居ますが、似たよう記事がうまく見つかりません(キリル文字ばかり・・・orz)

logrtのロジックを調べる必要があるなと感じては居ますが、些か知識不足故に何か情報お持ちの方居ましたら、ご教授いただければと思います。

以上です

コメント表示オプション

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

以前、他の方の質問の回答でも書かせて頂きましたが、logrtの処理
の流れを簡単に書くと以下のようになります。

 1.指定された正規表現のファイル名をディレクトリ名とファイル名に分ける
 2.指定されたディレクトリを開いてディレクトリにあるファイルのリストを取得する
 3.ファイル名が指定されたファイル名の正規表現と合致したら対象ファイルとしてピックアップ(ファイル変更日時順に並べる)
 4.以前ログファイルをチェックした時のファイル変更日時と比較して古いものは対象から外す
 5.対象として残ったファイルを以前読み取った場所から読み込んで処理する(対象ファイルを順次処理)

http://www.zabbix.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=446&forum=6

つまり、同じディレクトリにあるファイル全てに対してファイル名
がパターンにマッチするかを確認しますので、ファイル数が多い場
合は、それらのファイル情報の取得やマッチングの処理で負荷が高
くなることが予想されます。

改善するには、同じディレクトリにあるファイル数を削減するのが
効果的だと思われます。
対策としては、ログのディレクトリを分けるとか、古いログは別の
場所に退避させるとかが考えられます。

最後に、
<code>
アイテムキー:logrt["/var/log/messages",ERROR]
</code>
と指定されているようですが、これではlogrotateでローテーション
された「messages.0」「messages.1」などが対象になりません。
最悪の場合、ローテーションされる直前の情報がチェックされませ
んので、
<code>
アイテムキー:logrt["/var/log/messages.*",ERROR]
</code>
のような指定をする必要があると思います。

ただし、これでは負荷は軽減しませんので、先にも書かせていただ
いたとおり、ログの出力先のディレクトリを分けるようなこともご
検討ください。

広瀬です

ご返答ありがとうございます

つまり、同じディレクトリにあるファイル全てに対してファイル名
がパターンにマッチするかを確認しますので、ファイル数が多い場
合は、それらのファイル情報の取得やマッチングの処理で負荷が高
くなることが予想されます。

なるほど、対象ディレクトリ配下にあるファイル名を全て見るようになっているんですね・・・(改善して欲しいというのが本音ですが、致し方無いですね)

大変助かりました。ありがとうございます。

ユーザー kodai の写真

改善要望は下記から行って頂けます。

https://support.zabbix.com/

(仕様を変更せずに)どのように改善すると良いか、という良い提案があれば修正も早く行われると思います。