Zabbix Documentation 2.0

Sidebar

9 SSH チェック

9.1 概要

SSHチェックはエージェントレスの監視に使用されます。SSHチェックを行う場合、Zabbixエージェントは必要ありません。

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

<note important>サポート対象のlibssh2ライブラリの最小バージョンは1.0.0です。 :::

9.2 設定

9.2.1 サーバの設定

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

# 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 

ホームディレクトリが古い場所に存在しなかったら、新しい場所に作成するということができます。それを安全に行うには:

# 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.pub と id_rsa respectively)がデフォルトで、Zabbix server の SSHKeyLocation設定パラメータと一致する /home/zabbix/.ssh ディレクトリに生成されました。

9.2.2 シェルの設定フォーム

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

次のコマンドを使用して、SSHチェックがrootアカウントで実行されるように、リモートホスト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 descrip ion>は必須で、ホスト毎にすべてのSSHアイテムが一意である必要があります。
認証方式 「パス ード」 か 「公開鍵」のいずれか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を参照してください。


本ページは2013/05/03時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は右上の「Translations of this page」から英語版を参照してください。