このページで
-#6 ログファイル監視
概要
Zabbixはログローテーションサポートの有無にかかわらずログファイルを集中的に監視し、分析することができます。
ログファイルに特定の文字列または文字列パターンが追加されたときに、通知を使用してユーザーに警告することができます。
ログファイルを監視するには、次のものが必要です:
- ホスト上で動作する Zabbix エージェント
- ログ監視のアイテムがセットアップされていること
<note important>監視されるログファイルのサイズの制限は、ラージファイルをサポートしているかどうかによります。 :::
設定
エージェントのパラメータの確認
エージェント設定ファイルで以下のことを確認してください:
- 「Hostname」パラメータが、フロントエンドのホスト名と一致していること
- 「ServerActive」パラメータ内のサーバが、アクティブチェックの処理に指定されていること
アイテムの設定
ログ監視のアイテムを設定します:

具体的には、ログ監視アイテムをするためには、次のことを入力する必要があります:
| タイプ ** | abbixエージェント(アクティブ)**を選択します |
| キー 次 | いずれかを設定します: ** log[パスとファイル名,<regexp>,<encoding>,<maxlines>,<mode>] または logrt[パスとファイル名の書式,<regexp>,<encoding>,<maxlines>,<mode>] 例: log[/var/log/syslog] log[/var/log/syslog,error] logrt["/home/user/filelog_.*_[0-9]{1,3}","pattern_to_match","UTF-8",100]. 最後の例は、「filelog_abc_1」または「filelog__001」といったファイルからデータを収集します。 logとlogrt** についてさらに詳細は、サポートされているエージェントのアイテムキー セクションを参照してください。 「zabbix」ユーザーにファイルがパラメータを読み込んだことを確認してください。「zabbix」ユーザーでない場合は、アイテムのステータスが「取得不可」に設定されます。Zabbixエージェントは、ログファイルが存在する場合は、そのエントリを正規表現で検索します。 |
| データ型 **ロ | **を選択します。 |
| 更新間隔(秒) Zabb | x エージェントのログファイルの変更頻度を定義するパラメータです。1秒に設定すると、できるだけ はやい秒数で変更を取得することになります。 |
| ログの時間の形式 サポートされて | るプレースホルダは以下の通りです: * y: 年 (0001-9999) * M: 月 (01-12) * d: 日 (01-31) * h: 時 (00-23) * m: 分 (00-59) * s: 秒 (00-59) 空白のままにすると、タイムスタンプはパースされません。 例えば、Zabbix エージェントのログファイルから返った次の行の場合 ” 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211).” 最初の6桁の文字列はPID、続いて日付、時刻、残りの行となっています。 この行のログの時間の形式は、「pppppp:yyyyMMdd:hhmmss」となります。 「p」と「:」は単なるプレースホルダなので、 「yMdhms」以外の文字が使用できます。 |
重要
- サーバとエージェントは、監視するログのサイズと最終更新時間(logrt用)を2種類のカウンタで追跡します。
- エージェントがログファイルを読み込む場合、前回の続きから読み始めます。
- エージェントがログファイルを前回の続きから読み始めることができるように、分析済みのバイト数(サイズカウンタ)と最終更新時間(タイムカウンタ)がZabbixデータベースに保存され、エージェントに送信されます。
- エージェントが受信した分析済みバイト数よりもログファイルのサイズが小さくなった場合は、カウンタは0にリセットされ、エージェントはタイムカウンタを考慮に入れながらログファイルの先頭から読み始めます。
- 指定されたディレクトリ内に存在する、ファイル名形式が一致するすべてのファイルが分析され、エージェントはそのログからその次の行の取得を試みます(logrtの場合)。
- ディレクトリ内に、条件に一致したファイルで最終更新時間が同じものが複数存在する場合、エージェントは辞書編集上で最も値が小さいものを読み込みます。
- Zabbixエージェントは、更新間隔に設定された間隔(秒単位)でログファイルに新しく追加されたレコードを処理します。
- Zabbixエージェントは、1秒あたりに送信するログファイルのmaxlinesを超えて送信することはありません。この制限によってネットワークやCPUの各リソースが過負荷になることを防ぎ、エージェントの設定ファイルのMaxLinesPerSecondパラメータで規定されているデフォルト値を無効にします。
- 加えて、非ログ値がその中に1つもないときでも、ログの値は常にエージェントが送信するバッファサイズの50%までに制限されているので、1回の接続で接続される(複数の接続では送信されません)maxlinesの値には、エージェントのBufferSizeパラメータは、少なくともmaxlinesの2倍に設定する必要があります。
- ログアイテムがない場合、すべてのエージェントのバッファサイズは非ログ値に使用されます。そこにログの値が入ってきたときは、必要に応じて、指定された50%になるまで古い非ログ値を置き換えます。
- 「\(吉田注・バックスラッシュです)」パスの区切り文字に関する注意:「.」の場合、「.」が抜けているのかファイル名の最初の記号なのかを明確に定義・識別するのは難しいため、パスの区切り文字には「\(吉田注・バックスラッシュにしてください)」を使用します。たとえば file_formatが「file\.log」の場合、これは「file」というディレクトリを指すのではありません。
- logrtの正規表現はファイル名でのみサポートされており、ディレクトリの正規表現でのマッチングはサポートされていません。
本ページは2013/05/01時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は右上の「Translations of this
page」から英語版を参照してください。