nginxのログから 2xx や 4xx や 5xx のエラーの数を計算して取得したい。
logrt.count を使うとログファイルを監視して、正規表現にマッチした行数を取得できるらしい。
「Zabbixエージェント(アクティブ)」でキーを
logrt.count[/var/log/nginx/access.log,.*?" 2\d\d ]
にしてみる。
これで行けるはずだけど zabbix_agentd.log を見ると
active check "log.count[/var/log/nginx/access.log,.*?" 2\d\d ]" is not supported: Unsupported item key.
"Unsupported item key" とのこと。
ログの上の方を見ると...
Zabbix Agent stopped. Zabbix 3.0.12 (revision 73586).
zabbix-agent のバージョンがむっちゃ古い。
Ubuntu 18.04 で普通にインストールした zabbix-agent はバージョンが 3.0 で logrt.count は 3.2 からの対応なので、新しいのにする必要がある。
↓ここを見てリポジトリを追加。
# wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb # dpkg -i zabbix-release_4.4-1+bionic_all.deb # apt update
zabbix-agent を upgrade する。
apt upgrade
zabbix_agentd.conf はそのままでも問題ないが、アップグレード中に警告がでていた。
dpkg: warning: unable to delete old directory '/var/log/zabbix-agent': Directory not empty
どうもログの場所が /var/log/zabbix-agent から /var/log/zabbix に変わったらしくて、古いディレクトリを消そうとしたらしい。
まぎらわしいので /var/log/zabbix-agent は削除しておく。
# rm -rf /var/log/zabbix-agent
これでアップグレードできたのでzabbix-agentを再起動してみると、またエラー出てる。
active check "logrt.count[/var/log/nginx/access.log,.*?" 2\d\d ]" is not supported: Cannot open file "/var/log/nginx/access.log.1": [13] Permission denied
zabbix がログにアクセスできない。zabbix を adm グループに追加。
# gpasswd -a zabbix adm
これでちゃんと動いた。