ログ監視の登録方法と、トリガー設定に使う関数

今回はこちらのサイトを参考にしました。
Zabbixでログ監視 - Qiita
Zabbixでログ監視しようと思ったけど、簡単に監視登録ができるわけではなかった。
まず、「アイテム」で他の監視登録と同じように、ログ監視を行うアイテムを作成する。
その後、管理→一般設定をクリックし、画面右の方にあるプルダウンから「正規表現」を選択。で、「正規表現の作成」をクリック。ここで、ログ監視で検知したいキーワードを正規表現で記載する。
今回は例として、/var/log/messagesにエラーめいた文言が出たら検知するようにしたいので、「error|warn|fail|fatal|ERROR|WARN|FAIL|FATAL」と入力し、保存。

f:id:BladeCatcher:20190221221021p:plain
条件式の形式は「結果が真」を選択。
一応文字列が含まれる系の形式も選択できるんだけど、これを選択すると何故かうまくいかない。
次はトリガーの設定を行う。
・名前→なんでもいい。多分2バイト文字入れてもいい
・条件式→よくわかんなかったけど、これ入れたらエラー出なくなった。
 ・アイテム=ログ監視用に作成したアイテムを選択
 ・関数=「最新(T秒前/T個前)の値が正規表現Vに一致する場合 N=1、その他の場合N=0(=条件、大文字小文字を区別しない)にしたらエラーが出なかった。
 ・V=error|warn|fail|fatal|ERROR|WARN|FAIL|FATAL って感じで引っ掛けたいキーワードを正規表現で表記したものをここに記入する
 ・最新の(T)=監視間隔というか
 ・N=わかんない
条件式が間違ってるかどうかは、条件式ビルダーをやってみるとわかる。
そしてこうなった。

f:id:BladeCatcher:20190221221020p:plain
が、上手く引っかからない。何がダメなのか全く絞込みができないんだけど、とりあえずZabbixが/var/log/messagesを見ることができてないのが問題なんだろうなーとは思う。
Zabbixエージェントがroot権限の/var/log/messagesを見るためには、/etc/zabbix/zabbix_agentd.confを以下のように書き換える。

131 # Mandatory: no
132 # Default:
133 # ServerActive=
134
135 ServerActive=127.0.0.1→Zabbix Serverのアドレスに変更
<中略>
242 # Mandatory: no
243 # Default:
244 # AllowRoot=0→1に変更

とか、chmodやchownでzabbixユーザも/var/log\/messagesにアクセスできるようにしたはずだけど、なんかうまくいかず。
こちらを参考に、監視設定をやり直し。
http://www.sakc.jp/blog/archives/38742
…でもダメか…
zabbix_agentd.logには、こんなログが出力されている。

failed to accept an incoming connection: connection from "192.168.0.131" rejected, allowed hosts: "127.0.0.1"
原因は、/etc/zabbix/zabbix_agemtd.confの「Server」をZabbixエージェントのIPアドレスにしていないことが原因みたい。なので修正

91 # Mandatory: no
92 # Default:
93 # Server=
94 Server=192.168.0.131
95 Server=127.0.0.1

ZabbixサーバのIPアドレスとローカルインターフェースと2つ設定しないとダメみたい(何でかは知らん)
zabbixエージェント側もサーバ側もエラーがなくなって、どうしようか…と思ってたら検知できるようになってた。
ただ、ダッシュボードにしかエラーが検知されなかったり、アラートを確認後消すことができなかったり(どれが最新のアラートかわかんないじゃん…)、閲覧面でも操作がよくわからん。