Zabbix Documentation 2.2

3.04.04.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools

This translation is older than the original page and might be outdated. See what has changed.

Sidebar

jp:manual:config:notifications:action:operation:remote_command

2 リモートコマンド

概要

リモートコマンドにより、監視しているホストで、ある条件を満たした時にあらかじめ設定したコマンドを自動的に実行されるようにできます。

そのため、リモートコマンドは、スマートで能動的な監視のための強力なメカニズムです。

以下は、利用する機能の主な利用方法です。

  • アプリケーション(Webサーバ、ミドルウェア、CRM)が応答しない場合に自動的に再起動する。
  • リモートサーバがリクエストに応答しない場合に、IPMI「再起動」コマンドを使用して再起動する。
  • ディスクの空き容量が少ない場合、(古いファイルの削除や/tmpの消去を実施し)自動的に空き容量を確保する。
  • CPU負荷に応じてVMを物理的コンピュータから別のコンピュータに移す。
  • CPUリソース(ディスク、メモリなど)が不十分な場合にクラウド環境に新規ノードを追加する。

リモートコマンドにアクションを設定する方法は、メッセージを送信する方法に類似していますが、1つの違いは、Zabbixがメッセージを送信する代わりにコマンドを実行することです。

リモートコマンドは、Zabbixプロキシによって監視されるZabbixエージェントで実行されるようにサポートされていないため、Zabbixサーバからエージェントへのコマンドの実行には直接接続する必要があります。

リモートコマンドは、255文字に制限されています。複数のコマンドを次々に実行することができます。その場合、それらを新しい行に配置していきます。リモートコマンドにマクロが含まれている可能性があります。

このチュートリアルでは、リモートコマンドを設定する方法に関して、ステップバイステップで提供します。

設定

Zabbixエージェントで実行されるリモートコマンド(カスタムスクリプト)は、個別のzabbix_agentd.confにおいて、有効化しておきます。

EnableRemoteCommandsパラメータが1に設定され、コメントになっていないことを確認します。このパラメータを変更する場合、エージェントデーモンを再起動します。

リモートコマンドは、アクティブなZabbixエージェントでは動作しません。

[設定]→[アクション]で新しいアクションを設定するには:

  • [アクションの実行内容]タブで、実行内容のタイプとしてリモートコマンドを選択します。
  • リモートコマンドのタイプを選択します(IPMI、カスタムスクリプト、SSH、Telnet、グローバルスクリプト)。
  • リモートコマンドを入力します。

例:

sudo /etc/init.d/apache restart 

この場合、ZabbixはApacheプロセスを再起動します。このコマンドでは、コマンドがZabbixエージェントで実行されることを確認できます([次で実行]ラジオボタンをマークします)。

sudoの利用に注意します。Zabbixユーザーは、デフォルトでは、システムサービスを再起動する権限を有していません。sudoの設定方法については、以下を参照してください。
Zabbixエージェントは、リモートホストで起動し、外部からの接続を許可するものとします。Zabbixエージェントはバックグラウンドでコマンドを実行します。
Zabbixは、コマンドが正常に実行されたかどうかはチェックしません。

system.run[,nowait]キーによって、タイムアウトなしにリモートコマンドがZabbixエージェントで実行されます。Zabbixサーバでは、リモートコマンドは、zabbix_server.confファイルで設定されているTrapperTimeoutパラメータに従って、実行されます。

  • [アクションの実行条件]タブで、適切な条件を定義します。この例では、1つのApacheのアプリケーションで、致命的な障害発生時にアクションを起動するように設定しています。

アクセス権限

「zabbix」ユーザーに、設定したコマンドに対する実行権限があることを確認してください。特権コマンドへのアクセス権を付与するために、sudoを使用することもできます。アクセスを設定する場合、ルートとして実行します。

# visudo

sudoersファイルで使用されるコマンドラインの例:

# allows 'zabbix' user to run all commands without password.
zabbix ALL=NOPASSWD: ALL
# allows 'zabbix' user to restart apache without password.
zabbix ALL=NOPASSWD: /etc/init.d/apache restart

システムによっては、sudoersファイルで、ローカルユーザー以外がコマンドを実行できないように制限しています。この設定を変更する場合は、/etc/sudoersでrequirettyオプションをコメントアウトします。

複数のインターフェースを備えるリモートコマンド

ターゲットシステムが選択したタイプ(ZabbixエージェントまたはIPMI)の複数のインターフェースを有している場合、リモートコマンドはデフォルトのインターフェースで実行されます。

例 1

ある条件でWindowsを再起動します。

Zabbixが障害を検出した場合にWindowsを再起動するために、以下のアクションを定義します。

パラメータ 説明
実行内容のタイプ「リモートコマンド」
タイプ 「カスタムスクリプト」
コマンド c:\windows\system32\shutdown.exe -r -f
例 2

IPMIコントロールを使用してホストを再起動します。

パラメータ 説明
実行内容のタイプ「リモートコマンド」
タイプ 「IPMI」
コマンド reset on
例 3

IPMIコントロールを使用してホストの電源をオフにします。

パラメータ 説明
実行内容のタイプ「リモートコマンド」
タイプ 「IPMI」
コマンド power off

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