背景
保守運用業務にて、リソース(CPU、メモリ、ディスク使用率、各種IO etc)監視でのエラーをアラート通知システム(エラーと復旧時にメール通知する)に乗せたという話です。
リソース監視に Munin を、アラート通知に Nagios を使用しています。
(既存のリソース監視・アラート通知システムに大きな改修を加えないという条件のもと実施したので、Munin、Naigos、プラグイン各種のインストールの説明は省いています。)
システム構成
Munin とは
リソース監視を行うミドルウェアです。(デモはこちら)
過去を含めたリソースを可視化できて見やすいですが、エラーが発生した場合のアラート通知をつけることが割と手間がかかります。
Nagios とは
統合監視ツールです。(デモはこちら ID:jdoe,PW:jdoe)
ホスト、リソース監視ができ、エラー発生時・復旧時のメール通知をサポートしているので、使いやすいです。リソースの可視化はできません。
Munin と Nagios 連携方法
Munin 側(サンプル)
1. command の定義
command[check_logfiles]=/usr/lib/nagios/plugins/check_logfiles --config /etc/nrpe/conf.d/munin_alert.cfg
2. check_logfiles の設定
unlink /tmp/seekfilse
@searches = ({
logfile => '/var/lib/limits',
warningpatterns => [
'.*state warning' ]
criticalpatterns => [
'.*state critical' ],
options => ''allyoucaneat
});
/var/lib/limits について(サンプル)
myserver1;df;_dev_sda1;warning Value is 95.99. Warning range (:85) exceeded
myserver1;df;_dev_sda1;state warning
myserver1;if_err_eth2;trans;unknown Value is unknown.
myserver1;if_err_eth2;trans;state unknown
Nagios 側(サンプル)
1. service の定義
define service{
service_description Munin-Alert
host_name munin-server
check_command check_nrpe!check_logfiles
use service-template
}
2. command の定義
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
3. host の定義
define host{
host_name munin-serve
alias munin-serve
address ipaddress
use linux-server
}
結果
Munin でのエラーを Nagios で検知、アラート通知もできました。
現物はお見せできないのですが、Munin と Nagios 連携をプラグインなどを入れずに簡単にできたので保守運用業務としては良い結果でした。