This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

2 リモートコマンド

概要

特定の規定のコマンドを、監視対象のホスト上で、特定のコンディションになったときに、リモートコマンドを自動的に実行されるよう定義できます。

リモートコマンドは、スマートで積極的な監視を実現するパワフルなしくみです。

その機能の最も明らかな使用方法で、次のようなことを試すことができます:

  • いくつかのアプリケーション(Webサーバ、ミドルウェア、CRMなど)が応答しない場合、自動的に再スタート
  • リモートサーバがリクエストに応答しない場合、IPMI「リブート」コマンドを使用してそれらをリブート
  • CPUの負荷にあわせて1つの物理的なボックスから他のボックスにVMを移動
  • CPU(ディスク、メモリ、など)リソースが不足している場合に、クラウド環境に新しいノードを追加

リモートコマンドの設定をすることはメッセージの送信の設定に似ていますが、1つだけ違う点は、メッセージの送信のかわりにZabbixがコマンドを実行するということです。

リモートコマンドは、Zabbix プロキシではサポートされていないので、Zabbix サーバからエージェントに対するコマンドには、直接接続する必要があります。

リモートコマンドは、255文字に限定されています。1行に配置することによって複数のコマンドが次々に実行可能です。リモートコマンドはマクロを含むことも可能です!

このチュートリアルでは、リモートコマンドのセットアップ方法についてステップ・バイ・ステップのインストラクションを提供します。

設定

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 はチェックをおこないません。

Zabbix エージェント上のリモートコマンドは、 system.run[,nowait] キーによってタイムアウトなしで実行されます。Zabbix サーバ上では、リモートコマンドは、zabbix_server.conf file の TrapperTimeout パラメータで設定されたタイムアウト時間で実行されます。

  • [コンディション]タブで、適切なコンディションを定義します。この例では、Apache のアプリケーションの1つで大きな障害が発生した場合はいつでも、アクションアクティベートされるように設定されています。

アクセス権限

「zabbix」ユーザーが、設定したコマンドの実行権を持っていることを確認してください。特権のアルコマンドにアクセスできるようにするsudoの使用に興味がある方もいると思います。アクセスの設定をするには、root 権限で次のことを実行します:

# 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=(ALL) NOPASSWD: /etc/init.d/apache restart

いくつかのシステムの sudoers ファイルは、非ローカルユーザーがコマンドを実行するのを防止しています。これを変更するには、 /etc/sudoers の requiretty オプションをコメントアウトします。

例1

特定のコンディションのときにWindowsを再スタート。

Zabbix によって発見された障害で、自動的にWindowsを再スタートするために、次のアクションを定義します:

パラメータ 説明
オペレーションタイプ 「リモートコマンド
タイプ 「カ タムスクリプト」
コマンド c:
windows\system32\shutdown.exe -r -f
例2

IPMIコントロールを使用してホストを再スタート

パラメータ 説明
オペレーションタイプ 「リモートコマンド
タイプ 「I MI」
コマンド res t on
例3

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

パラメータ 説明
オペレーションタイプ 「リモートコマンド
タイプ 「I MI」
コマンド pow r off

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