ここでは、イベント発生時にあらかじめ定義したコマンドをリモート実行するように設定する詳細な手順について説明します。Zabbixは設定済みで、動作しているものとします。
Zabbixエージェントでリモートコマンドを有効にします。zabbix_agentd.confでパラメータEnableRemoteCommands=1が設定され、コメントアウトが解除されていることを確認してください。パラメータを変更した場合は、エージェントのデーモンをリスタートします。
[設定] → [アクション]でオペレーションタイプを選択して新規アクションを設定します。
以下のアクションパラメータに注意してください。
パラメータ 説明 | |
---|---|
オペレーションのタイプ 「リモートコマンド」 | 設定します。 |
リモートコマンド 1行に1つずつ | モート実行するコマンドを指定します。例: host:/etc/init.d/apache restartリモートコマンドにはマクロも使用できます。 |
リモートコマンドの構文を以下に示します。
リモートコマンド 説明 | |
---|---|
<host>:<command> | コマンド「command」はホスト「host」上で実行されます。 |
<group>#<command> | コマンド「command」はホストグループ「group」に属する全てのホスト上で実行されます。 |
IPMIリモートコマンドの構文を以下に示します。
リモートコマンド 説明 | |
---|---|
<host>:IPMI <ipmi control> [value] | この構文は、単一のホストでIPMIコマンドを実行するためのものです。サポートされているIPMIコントロール: 「reset」、「power」サポートされている値: 「on」、「off」、または数値(デフォルトは1)例: Server restart: host:IPMI reset on; Server reboot: host:IPMI power off |
<group>#IPMI <ipmi control> [value] | この構文は、ホストグループの全てのホストに対してIPMIコマンドを実行するためのものです。 |
Zabbixエージェントは、コマンドをバックグラウンドで実行します。Zabbixは、コマンドが正常に実行されたかどうかをチェックしません。
設定したコマンドを実行するパーミッションがユーザzabbixに付与されていることを確認する必要があります。sudoを使用して特権コマンドを実行できるようにする方法もあります。To configure access, execute as root:
Example lines that could be used in sudoers file:
#「zabbix」ユーザがパスワードなしですべてのコマンドを実行できるようにする設定
zabbix ALL=NOPASSWD: ALL
#「zabbix」ユーザがパスワードなしでapacheをリスタートできるようにする設定
zabbix ALL=(ALL) /etc/init.d/apache restart
<note important>リモートコマンドの文字数制限は、バージョン1.4以前では44バイト、1.4以降は255バイトです。 :::
特定の条件が成立したときにWindowsをリスタートするアクションの設定例
Zabbixが問題を検出した場合に自動的にWindowsをリスタートするには、以下のアクションを定義します。
パラメータ 説明 | |
---|---|
オペレーションのタイプ 「リモートコマンド」 | 設定します。 |
リモートコマンド host:c: | \system32\shutdown.exe –r –f Replace 'host' with Zabbix hostname of Windows server. |