スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Nagios リモート ログ監視

Nagios リモート ログ監視

前回 Nagios ログ監視 の続き。
今回はリモートのログを監視することを考える。
nrpeを使います。

[前提]
・check_log3.plがインストールされている
・nrpe がインストールされている。使い方を知っている。

(1) 下準備 1

nrpeユーザでログを参照できるように、sudoers.dに以下のファイルを追加

/etc/sudoers.d/nrpe
Defaults:nrpe !requiretty
nrpe ALL=NOPASSWD:/usr/lib64/nagios/plugins/check_log3.pl


nrpeユーザでうまくいくかテスト。-p は正規表現が使える。
# sudo -u nrpe sudo /usr/lib64/nagios/plugins/check_log3.pl -l /var/log/messages -s /tmp/_messages -p "(warn|error)"
OK - No matches found.|lines=0


(2) 下準備 2

nrpe のコマンド追加
/etc/nagios/nrpe.cfg
command[check_log]=sudo /usr/lib64/nagios/plugins/check_log3.pl -l $ARG1$ -s $ARG2$ -p "(warn|error)"


nrpe経由でうまくいくかテスト
# /usr/lib64/nagios/plugins/check_nrpe -H 127.0.0.1 -c check_log -a /var/log/messages /tmp/_messages 
OK - No matches found.|lines=0


(3) Nagios設定追加

define service{
use check-log-service
hostgroup_name linux-servers
service_description var_log_messages_rmt
check_command check_nrpe!check_log!/var/log/messages /tmp/_messages
}

※ hostgroup_name は環境に合わせて。

nagiosを再起動して完成。

(4) ここからは任意

現状、正規表現部分がnrpe.cfgファイルに埋め込みになっています。
これを、以下のようにパラメータとして渡せるようにしたい。
command[check_log]=sudo /usr/lib64/nagios/plugins/check_log3.pl -l $ARG1$ -s $ARG2$ -p "$ARG3$"

define service{
use check-log-service
hostgroup_name linux-servers
service_description var_log_messages_rmt
check_command check_nrpe!check_log!/var/log/messages /tmp/_messages "(warn|error)"
}


しかし、これはうまくいきません。
何故か。nrpe がパラメータとして渡しても良い文字を制限しているからのようです。
#define NASTY_METACHARS         "|`&><'\"\\[]{};"

ここでは「|」がひっかかっているようです。「[]」も正規表現的には使いたいところです。


しかたないので、RPMを作り直します。

(1) ソース(nrpe-2.14-3.el6.src.rpm) の取得
# yumdownloader --enablerepo=epel --source nrpe


(2) ソースのインストール
# rpm -i nrpe-2.14-3.el6.src.rpm


/root/rpmbuild/SOURCES あたりに nrpe-2.14.tar.gz があることを確認

(3) ソースの展開
# tar xvfz nrpe-2.14.tar.gz


(4) ソースの修正
# vi nrpe-2.14/src/nrpe.c

  • [前]
    #define NASTY_METACHARS         "|`&><'\"\\[]{};"

  • [後]
    #define NASTY_METACHARS         "`\\{};"



(5) ソースの圧縮
# tar cvfz nrpe-2.14.tar.gz nrpe-2.14


(6) SPECファイルのリリース番号の修正
# vi /root/rpmbuild/SPECS/nrpe.spec

  • [前]
    Release: 3%{?dist}

  • [後]
    Release: 4%{?dist}



(7) ビルド
# rpmbuild -bb /root/rpmbuild/SPECS/nrpe.spec


(8) インストール
# rpm -U /root/rpmbuild/RPMS/x86_64/nrpe-2.14-4.el6.x86_64.rpm


(9) 再起動
#service nrpe restart


これで、「|」や「[]」を含んだ正規表現をパラメータで渡せるようになりました。おつかれさまでした。
スポンサーサイト

コメントの投稿

非公開コメント

検索フォーム
RSSリンクの表示
リンク
exabugsをフォローしましょう
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。