Zabbix Documentation 2.2

Sidebar

9 SSH チェック

9.1 概要

SSHチェックはエージェントレスの監視として実行されます。SSHチェックにはZabbixエージェントは必要ありません。

SSHチェックを実行するには、ZabbixサーバをSSH2サポート付きで最初に設定する必要があります。

サポート対象のlibssh2ライブラリはバージョン1.00以上です。

9.2 設定

9.2.1 サーバの設定

デフォルトでは、Zabbix サーバはSSHチェックを実行する設定にはなっていないので、追加されたSSHアイテムはいずれも動作しません。これを変更するには、Zabbix サーバの設定ファイル(zabbix_server.conf) を rootとして開き、次の行を探します:

# SSHKeyLocation=

このコメントをはずし、公開鍵および秘密鍵が置かれるフォルダへのフルパスを設定します:

SSHKeyLocation=/home/zabbix/.ssh

ファイルを保存し、後でzabbix_serverを再起動します。

この例での// /home/zabbix// は、zabbix ユーザーアカウントのホームディレクトリであり、.sshは、そのホームディレクトリ内でssh-keygenコマンドによって公開鍵と秘密鍵が生成されるデフォルトのディレクトリです。

通常、異なるOSのディストリビューションが提供しているzabbix-serverのインストールパッケージは、(システムアカウントについては、)あまり知られていない場所のホームディレクトリでzabbix ユーザーアカウントを作成します。例えば、CentOSでは /var/lib/zabbix、Debian では/var/run/zabbixです。

キーの生成を始める前に、ホームディレクトリをよく知られた(直感的に分かりやすい)場所に置き換えることを、検討してもいいでしょう。このことは、上述のZabbix サーバの設定パラメータ SSHKeyLocation にも言えます。

zabbixアカウントが、インストールのセクションに従って手動で追加されている場合は、このステップは省略できます。なぜなら、その場合は、ホームディレクトリがすでに /home/zabbix に置かれていると考えられるからです。

zabbix ユーザーアカウントの設定を変更するには、そのアカウントを使用して動作しているすべてのプロセスを停止させなければなりません:

# service zabbix-agent stop
       # service zabbix-server stop

ホームディレクトリ(存在する場合)の場所を変更するには、次のコマンドを実行して移動します。

# usermod -m -d /home/zabbix zabbix

ホームディレクトリが元の場所(例えば CentOS上)に存在しなかったら、新しい場所に作成できます。それを安全に行うには:

# test -d /home/zabbix || mkdir /home/zabbix

すべてが安全であることを確実にするには、ホームディレクトリに権限を設定するために、次のコマンドを追加で実行します:

# chown zabbix:zabbix /home/zabbix
       # chmod 700 /home/zabbix

これで、先ほど停止したプロセスを再スタートできます:

# service zabbix-agent start
       # service zabbix-server start

公開鍵と秘密鍵を生成するステップは、コマンドを実行します。

# sudo -u zabbix ssh-keygen -t rsa
       Generating public/private rsa key pair.
       Enter file in which to save the key (/home/zabbix/.ssh/id_rsa): 
       Created directory '/home/zabbix/.ssh'.
       Enter passphrase (empty for no passphrase): 
       Enter same passphrase again: 
       Your identification has been saved in /home/zabbix/.ssh/id_rsa.
       Your public key has been saved in /home/zabbix/.ssh/id_rsa.pub.
       The key fingerprint is:
       90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 [email protected]
       The key's randomart image is:
       +--[ RSA 2048]----+
       |                 |
       |       .         |
       |      o          |
       | .     o         |
       |+     . S        |
       |.+   o =         |
       |E .   * =        |
       |=o . ..* .       |
       |... oo.o+        |
       +-----------------+

注: 公開鍵と秘密鍵(それぞれid_rsa.pubid_rsa)がデフォルトで、Zabbix server の SSHKeyLocation設定パラメータに対応する /home/zabbix/.ssh ディレクトリに生成されました。

9.2.2 シェルの設定フォーム

このステップは、SSHチェックで監視する各ホストに対して1回だけ実行します。

次のコマンドを使用して、SSHチェックがルートアカウントで実行されるように、リモートホスト10.10.10.10公開鍵ファイルをインストールできます:

# sudo -u zabbix ssh-copy-id [email protected]
       The authenticity of host '10.10.10.10 (10.10.10.10)' can't be established.
       RSA key fingerprint is 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
       Are you sure you want to continue connecting (yes/no)? yes
       Warning: Permanently added '10.10.10.10' (RSA) to the list of known hosts.
       [email protected]'s password: 
       Now try logging into the machine, with "ssh '[email protected]'", and check in:
         .ssh/authorized_keys
       to make sure we haven't added extra keys that you weren't expecting.

これで、zabbixユーザーアカウント用のデフォルトの秘密鍵(/home/zabbix/.ssh/id_rsa)を使ってSSHログインの確認を行うことが可能となります。

# sudo -u zabbix ssh [email protected]

ログインに成功したら、シェルの設定の部分が終了し、リモートSSHのセッションを終了できます。

9.2.3 アイテムの設定

実行する実際のコマンドは、アイテム設定の[実行するスクリプト]フィールドに指定してください。

コマンドごとに行を変えることで、複数のコマンドを連続して実行することができます。この場合、戻り値も複数の行という形式になります。

アイテムパラメータ: 説明 コメント
キー * ssh.run[<unique short description>,<ip>,<port>,<encoding>]**のフォーマットで(ホスト毎に)一意なアイテムキー <unique short descript on>は必須で、ホスト毎にすべてのSSHアイテムが一意である必要があります。
デフォルトポートは22です。これは、このアイテムが割り当てられるインターフェースで指定されるポートではありません。
認証方式 「パス ード」 か 「公開鍵」の1つ
ユーザー名 リモート スト上で認証されるユーザー名。
必須
公開鍵ファイル [*認証方 ]が「公開鍵」の場合の公開鍵のファイル名。  例: id_rsa.pub* - コマンド[ssh-ke必須 gen](http://en.wikipedia.org/wiki/Ssh-keygen)で生成されるデフォルトの公開鍵ファイル名
秘密鍵ファイル [*認証方 ]が「公開鍵」の場合の秘密鍵のファイル名。  例: id_rsa* - デフォルトの秘密鍵ファイル名必須
パスワードまたはキーのパスフレーズ 認証するためのパスワード、または 密鍵に使用されている場合のパスフレーズ パスフレーズが使用されていない場合は、[キーのパスフレーズ]のフィールドは空のままにします。
実行するスクリプト SSHリモートセ ションを使用して実行されるシェルコマンド 例:
<date +%s
service mysql-server status
ps aux | grep httpd | wc -l

アイテム設定の結果は、以下のようになります:

Debian、Ubuntuなど、いくつかの Linux ディストリビューションは、libssh2ライブラリがパッケージからインストールされている場合、(パスフレーズ付きの)暗号化された秘密鍵をサポートしていません。
更なる詳細は、レポートZBX-4850を参照してください。

9.3 実行可能なスクリプト

「実行するスクリプト」フィールドは長さ64 kBに制限されますが、実際にはこのデータは、sshライブラリによって32 kBに制限されます。更に、processing time intenseスクリプトは、応答時間が制限されるので注意して使用する必要があります。サーバおよび/またはエージェントの設定でタイムアウトパラメータを大きくすることで、返されるデータの不安定さが軽減されることがあります。


本ページは2014/08/05時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は、英語版のZabbix2.2マニュアルを参照してください。