【nagios】監視サーバ設定メモ

Pocket

師匠から

「監視サーバ立てとけ。」

と、チビリそうな指示を頂いたので、nagiosとやらを設定してみました。

私、linuxについてはド素人高校生と同じくらいの知識量なので、設定等で困っている方が見てもあまり参考にはならない事をご了承下さい。

あくまでも、私の備忘録であります。

 

サーバ立てとけと言われましたが、実際にはlinuxサーバが稼働していて、nagiosもnrpeもインストールされている状態でした。

なので、純粋に設定の変更だけでOKな環境でした。

※今回はlocalhostの監視ではなく、外部サーバの監視が要件です。

 

インストールとかは、いろいろググれば出てくるので…。

 

今回ハマってしまったのは、監視対象サーバ側からnrpeの応答が無いというものでした。

数時間なんだかんだとやってましたが、こういう時は一晩寝ると、何となく解決策が出てくるものです。

今回は師匠から、

「監視対象サーバ側でブロックしてんじゃないの?」

と、救いの手があり、そこから解決に至りました。

 

まぁ結局は監視対象サーバ側のiptablesが原因だったという、いかにも素人な…。

とりあえず、nagiosやnrpeの設定については、それほどややこしくはない。

 

nagiosサーバ側の設定

/usr/local/nagios/etc/servers以下のサーバー名.cfgファイル設定

とりあえず、適当なサーバ名にしてファイルを作りますです。

define host{
 use linux-server
 host_name <適当なサーバ名>
 alias <適当なサーバ名(表示用?)>
 address <接続先nrpeサーバのIP>
 active_checks_enabled 0
}

useというのが、いろいろ小難しい感じですが、とりあえずこれも適当で。

そして、nrpe側でインストールした監視サービスそれぞれについて設定をします。

define service{
 use generic-service
 host_name <上で設定したhost_name>
 service_description PING<監視サービス名>
 check_command check_ping!100.0,20%!500.0,60%
 max_check_attempts 1
 normal_check_interval 1
 retry_check_interval 1
 notification_interval 10
 notification_options c,r
}

かなり説明を端折りますが、上の設定をズラズラと設定していく。。

ここで注意するのは、監視対象サーバがlocalhostではない場合にIPを設定するんだが、

ifconfigなどでちゃんと調べてから設定するようにしましょう。

 

/usr/local/nagios/etc/nagios.cfgの設定

この設定が肝のようです。以下の有名サイトを参考に。

統合監視システム構築(Nagios)

date_format=iso8601

変更はここくらいでしょうか?

 

管理画面のログイン設定
管理画面を見るためにbasic認証を設定します。

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

nagiosadminがIDですね。

これでパスワードを設定すればOK。

 

確認しよう!以下のコマンドでnagiosサーバ側から監視対象サーバ側のnrpeをチェックできる。

/usr/local/nagios/libexec/check_nrpe -H <監視対象サーバIP> -c check_disk -t 30

check_diskの部分は監視対象サーバ側でインストールしたサービスを指定。

ここで、ハマったのは以下。

まずは、

Connection refused or timed out

と表示されて、動作確認ができない。というか監視対象サーバへアクセスができない。

しかし、pingではOK。だけどtelnetではエラー。

telnet <監視対象サーバIP> 5666

これは監視対象サーバ側のiptables設定が原因でございました。

iptablesを利用していない場合は関係ない。

とりあえず、監視対象サーバ側のiptablesを以下のように設定

vi /etc/sysconfig/iptables
# Nagios
-A RH-Firewall-1-INPUT -s <nagiosサーバのIP>/32 -p tcp --dport 5666 -j ACCEPT

設定が完了したら、

service iptables restart

で反映です。

iptablesはviとかで設定しちゃいけないのかもだが…

 

で、telnetでも確認OK。再度確認すると今度は。

Could not complete SSL handshake

というエラーが。

これは、師匠から教えてもらった以下のサイトが参考になった。

NAGIOS nrpeでCould not complete SSL handshakeのエラー

監視対象サーバ側でのnrpe起動を

service nrpe start

とかってしていたんだが、これはダメみたいですね。ややこしい。

という事で。

service nrpe stop

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

これでOK。

再度、nagios側から確認すると、応答が返ってきました。

こんな感じ。

/usr/local/nagios/libexec/check_nrpe -H <監視対象サーバIP> -c check_disk -t 30
DISK OK - free space: /srv 14963 MB (43% inode=76%);| /srv=19785MB;29311;32975;0;36639

 

ここまでできたら、ブラウザでも監視状況が見ることが出来るでしょう。その前に。

service nagios restart

で、nagiosを起動。

http://<nagiosサーバのIPとか>/nagios/

で、管理画面が表示できるのではと。

ちなみに、監視対象サーバへの疎通が確認できないと、以下のような表示になっていた。

01

これが、繋がると以下のようになる。

02

pingだけは通るんですね。

 

そして、理由不明だが監視対象サーバ追加後はサーバ名の所に「✕」がついてます。

03

なんだろうな?と思ってたんだが、クリックするとこんな画面が開きます。

04

ちょと見にくいですが、「This host has not yet been checked, so status information is not available.」なんつって出てます。

とりあえず、右側にある

Enable active checks of this host
Enable notifications for all services on this host
Enable checks of all services on this host

のリンクを押下して、監視と通知を有効に?

そうしてしばらくすると、この「✕」が消えて通常運転が始まるようです。

ただ、これでもまだメールは飛びません。

今度は、メニューの中の「Tactical Overview」を開くと、画像のように通知がDisabledになっていた。

05

で、これもクリックしてみると、設定画面が開いて、Commitしてあげると…

06

こんな感じで通知がONになるようです。

他にも、サービス毎に監視・通知などの設定についてON/OFFが出来たりと、わざわざviとかで設定しなくても、管理画面からある程度の事はできるみたいです。

 

ちなみに、監視対象サーバ側でのhosts.denyがALL:ALLとかの場合は、hosts.allowにて以下のようにnrpeのアクセスを通してあげる必要がある。

nrpe:<nagiosサーバのIP>

 

nagios、nrpeの設定についてはまだまだあるので、勉強しながらやっていこうと思いますです。m(__)m

とりあえず、まだアラートのメールが飛ばないという…。

echo “TEST” | /bin/mail s “TEST” notice@example.com

ではちゃんと飛んでるし、

notifications_enabledは1で設定してあるんだが…。謎。

 

師匠、今日はとりあえずこの辺で。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です