Zabbix Documentation 2.0

2.23.04.04.2 (current)In development:4.4 (devel)Unsupported:1.82.02.43.23.4

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「リブート」コマンドを使用してそれらをリブート
  • 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コントロールを使用してホストを再スタート

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

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

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

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