誰でも ZABBIX

Zabbixの使い方、役に立つ情報、等々

3. ログ監視 - logrt[]

ログファイルや、プログラムが作成するファイルの中のデータを監視する際、ファイル名が必ずしても一定でない場合があります。

キーlogrtは、ファイル名の部分を正規表現で指定し、複数のファイルをチェック対象とすることができます。

logとlogrtの違い

こちらがlog
f:id:Unam:20180215205727p:plain

こちらがlogrt
f:id:Unam:20180215205821p:plain

違いは、ファイル名を指定する最初のパラメータのみです。

log ファイルのパスと、ファイル名(監視対象は1ファイルのみ)
logrt ファイルのパスと、対象ファイルを指定する正規表現(監視対象は複数ファイル)

logrtが必要なケース

通常のログファイルは、一定期間毎にファイルがローテーションされ、データが追記されるのはメインのファイル1つ、という例が大半だと思います。

ただ、アプリケーションの中には、日付の付いたログファイルを作ったり、ファイル名にランダムな番号をつけてデータを生成するようなプログラムもあります。

今回は、以下のようなログファイルをサンプルとして作成し、どのファイルを更新しても、監視データと取り込めることを確認します。

appliance@zabbix:/tmp/log$ ls -l
total 12
-rw-rw-r-- 1 appliance appliance 4 Feb 10 13:30 logfile.2018-02-10
-rw-rw-r-- 1 appliance appliance 4 Feb 11 06:21 logfile.2018-02-11
-rw-rw-r-- 1 appliance appliance 4 Feb 15 20:44 logfile.2018-02-15


動作確認

日付つきのログファイルを監視対象とするため、logrtを以下のように設定します。 f:id:Unam:20180215214258p:plain

ファイル名を指定するための正規表現

/tmp/log/^logfile.\d{4}-\d{2}-\d{2}$


上記のファイルに、順番に監視対象となる文字列を設定します。

$ echo error11 >> logfile.2018-02-11
$ echo error15 >> logfile.2018-02-15
$ echo error10 >> logfile.2018-02-10


ログデータの生成順に、複数のファイルから監視データを取り込むことができています。
f:id:Unam:20180215214820p:plain

注意点

正規表現の指定は、あくまでもファイル名のみです。フォルダ/ディレクトリ名は固定です(マニュアルを読めば、きちんとそう書いていますが、私はよく読まずにフォルダ名にも正規表現が使えると勘違いし、しばらく試行錯誤したことがあります・・・)。

” logrtの正規表現はファイル名でのみサポートされており、ディレクトリの正規表現でのマッチングはサポートされていません。”
引用元 6 ログファイル監視 [Zabbix Documentation 2.2]