http://blog.enokawa.co/2015/07/27/nagios-nrpe-checklog2/
標準では「check_log」が付随していますが、どうも手抜き感があるので、「check_log3.pl」に差し替えます。
exabugsの雑記帳 Nagios ログ監視
check_logは対象ログをコピー、前回との差分をチェックする方法
対象ファイルのサイズが大きい場合などを考えると、seekで途中から読む方法が望ましい。
check_logfiles FreeBSD
seekで途中から読むもので FreeBSD にはcheck_logfilesがpkgにある
pkg install check_logfiles
/var/log/messages に "(httpd), uid 80: exited on signal" が出力された場合にcritical
/usr/local/libexec/nagios/check_logfiles --tag=httpd --logfile=/var/log/messages \ --rotation LOGLOG0BZ2LOG1BZ2 --criticalpattern '\(httpd\), uid 80: exited on signal'
rotation は 以下が predefine されている。 (3.9)
LOGLOGDATE8GZ LOGLOGDATE8BZ2 LOGLOG0LOG1GZ LOGLOG0GZLOG1GZ LOGLOG0BZ2LOG1BZ2 LOGLOG0LOG1 SUSE DEBIAN QMAIL LOGROTATE SOLARIS HPUX BMWHPUX EHL MOD_LOG_ROTATE
messagesは
/var/log/messages /var/log/messages.1.bz2 /var/log/messages.3.bz2 /var/log/messages.0.bz2 /var/log/messages.2.bz2 /var/log/messages.4.bz2
なので --rotation LOGLOG0BZ2LOG1BZ2
例えば LOGLOG0LOG1GZ は logrotate の delaycompress (1世代目は圧縮しない) 時に使用する
sudo -u nagios /usr/local/libexec/nagios/check_logfiles -v --tag=httpd --logfile=/var/log/messages \ --rotation LOGLOG0BZ2LOG1BZ2 --criticalpattern '\(httpd\), uid 80: exited on signal'
※初回実行時はパターンに一致したログがあっても報告されない
※ -v verbose
/var/tmp/check_logfiles/ 以下に状態を保持するファイルができる
/var/tmp/check_logfiles/check_logfiles._var_log_messages.httpd
テスト
logger -p "kern.notice" -t "kernel" "TEST (httpd), uid 80: exited on signal 11"
で
/var/log/messagesにテスト用のログを出力
/usr/local/libexec/nagios/check_nrpe2 -H 127.0.0.1 -c check_logfiles
参考
(FreeBSD) cyrus-imapdのログが/var/log/messagesにたくさん出すぎ ~ /etc/syslog.confで調節 - ttt
・受動監視時は試行回数を1/1にしておけば、毎回1回目のNG時にnotificationが発動する。 ステータスが変化しない場合にも発動させる(is_volatileは有効に)。 Blog Alpha Networking: nagiosで分散監視
check_logfilesをubuntu(debian)にインストール
How to install check_logfiles on Ubuntu Linux to work with Nagios | by Ryan O’Donnell | Luma Consulting | Medium
Nagiosのチェックプラグインでroot権限が必要な場合の対応 - インフラエンジニアway - Powered by HEARTBEATS
/etc/sudoers.d/check_logfiles
Defaults:nagios !requiretty
nagios ALL=(ALL) NOPASSWD: /usr/local/nagios/libexec/check_logfiles