このページで
- #2 ログ監視のメカニズム
ログファイルを監視するには、ホスト上でZabbixエージェントが動作している必要があります。また、ログファイルの監視に使用するアイテムには、タイプにZabbixエージェント(アクティブ)、データ型にログ、キーにlog[file<,pattern><,code page><,max lines>]または、logrt[ファイル名の形式が<,pattern><,code page><,max lines>であるログファイルへのパス]を設定する必要があります。
例:
log["/home/user/file.log","pattern_to_match","UTF-8",100]
または、
logrt["/home/user/filelog_.*_[0-9]{1,3}","pattern_to_match","UTF-8",100]
2つ目の設定は「filelog_abc_1」や「filelog_001」のようなファイルからデータを収集します。
重要:
- サーバとエージェントは、監視するログのサイズと最終更新時間(logrt用)を2種類のカウンタで追跡します。
- エージェントがログファイルを読み込む場合、前回の続きから読み始めます。
- エージェントがログファイルを前回の続きから読み始めることができるように、分析済みのバイト数(サイズカウンタ)と最終更新時間(タイムカウンタ)がZabbixデータベースに保存され、エージェントに送信されます。
- エージェントが受信した分析済みバイト数よりもログファイルのサイズが小さくなった場合は、カウンタは0にリセットされ、エージェントはタイムカウンタを考慮に入れながらログファイルの先頭から読み始めます。
- 指定されたディレクトリ内に存在する、ファイル名形式が一致する全てのファイルが分析され、エージェントはそのログからその次の行の取得を試みます(logrtの場合)。
- ディレクトリ内に、条件に一致したファイルで最終更新時間が同じものが複数存在する場合、エージェントは辞書編集上で最も値が小さいものを読み込みます。
- Zabbixエージェントは、更新間隔に設定された間隔(秒単位)でログファイルに新しく追加されたレコードを処理します。
- Zabbixエージェントは、1秒あたりに送信するログファイルのmaxlinesを超えて送信することはありません。この制限によってネットワークやCPUの各リソースが過負荷になることを防ぎ、エージェントの設定ファイルのMaxLinesPerSecondパラメータで規定されているデフォルト値を無効にします。
- 「.」の場合、「.」が抜けているのかファイル名の最初の記号なのかを明確に定義・識別するのは難しいため、パスの区切り文字には「\」を使用します。たとえば file_formatが「file\.log」の場合、これは「file」というディレクトリを指すのではありません。