check_by_sshを使った監視を行う

今回はcheck_by_sshを使った監視の実装方法についてのメモ。


「check_by_ssh」はSSHを使ったリモート監視用プラグインです。
SSHが使えればすぐに実装可能なのが長所です。NRPEが使えない場合に使ったりします。

準備


監視サーバーからパスフレーズ無しの公開鍵認証でログインできるようにする必要があります。
まずは鍵ペアを作成します。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/nagios/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/nagios/.ssh/id_rsa.
Your public key has been saved in /home/nagios/.ssh/id_rsa.pub.
The key fingerprint is:
29:ed:70:ce:1a:91:42:cb:e0:f6:4b:81:e8:4a:22:fa nagios@nagios
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|  . .            |
| o = . o .       |
|. + = = S        |
|.. . o O         |
|oo  o . +        |
|*  . . o         |
|o.E . .          |
+-----------------+


公開鍵を監視対象サーバー、秘密鍵を監視サーバーに配置します。


コマンドを登録します。

define command{
        command_name    check_by_ssh
        command_line    $USER1$/check_by_ssh -H $HOSTADDRESS$ -i /home/nagios/.ssh/id_rsa -l $ARG1$ -t $ARG2$ -p $ARG3$ -C $ARG4$
        }


サービスを登録します。今回は「check_by_ssh」経由で、「check_load」を実行する例です。

define service {
    use                 generic-service
    host_name           localhost
    service_description LOAD by ssh
    check_command       check_by_ssh!nagios!30!22!"/usr/local/nagios/libexec/check_load -w 2,2,2 -c 3,3,3"
}

Remote command execution failed: Host key verification failed. と出る場合


Nagiosを実行するユーザーの「known_hosts」に公開鍵が登録されていない場合、
このメッセージが出力されます。


事前にsshログインをして「known_hosts」に公開鍵の情報を登録しておけばOKです。


今日はこんなところで。

参考

-check_by_ssh