2 Zabbixエージェント

概要

ローカルリソースやアプリケーション(ハードディスクドライブ、メモリ、プロセッサの統計など)を能動的に監視するために、Zabbixエージェントを監視対象上にインストールします。

Zabbixエージェントは、稼働情報をローカルで収集し、さらに処理するためにデータをZabbixサーバーに報告します。障害(ハードディスクがいっぱいになっている、サービスプロセスがクラッシュしているなど)が発生した場合、Zabbixサーバーは障害が発生したマシンの管理者に対して、障害が発生したことを能動的に通知することができます。

Zabbixエージェントは、統計情報を収集するためにネイティブなシステムコールを使用するため、極めて効率的に動作します。

パッシブチェックとアクティブチェック

Zabbixエージェントは、パッシブチェックとアクティブチェックを行うことができます。

パッシブチェックでは、エージェントはデータの要求に対して応答します。Zabbixサーバー(またはプロキシ)が、例えばCPU負荷のデータを要求すると、Zabbixエージェントが結果を返却します。

アクティブチェックでは、より複雑な処理が求められます。Zabbixエージェントは、独立した処理のために、最初にZabbixサーバーからアイテムのリストを取得します。その後、定期的に新しい値をZabbixサーバーに送信します。

パッシブチェック、アクティブチェックのどちらで動作するかは、それぞれの監視対象のアイテムのタイプを選択することによって設定されます。Zabbixエージェントは、アイテムの「Zabbixエージェント」または「Zabbixエージェント(アクティブ)」のタイプを処理します。

サポートしているプラットフォーム

Zabbixエージェントは以下のプラットフォームでの動作をサポートしています :

  • Windows (XP以降のデスクトップおよびサーバー)
  • Linux (配付パッケージでも利用可能)
  • macOS
  • IBM AIX
  • FreeBSD
  • OpenBSD
  • Solaris

NetBSDおよびHP-UX用のレガシーZabbixエージェントバイナリをダウンロードすることもできます。これらは、現在のZabbixサーバー/プロキシバージョンと互換性があります。

UNIX系OS上のZabbixエージェント

UNIX系OS上のZabbixエージェントは、監視対象のホストで実行されます。

インストール

パッケージを使用してZabbixエージェントをインストールする方法については、パッケージインストールのセクションを参照してください。

また、パッケージを使用しない場合はソースコードからのインストールの手順を参照してください。

一般的に、32ビット版Zabbixエージェントは64ビットのシステム上で動作しますが、場合によっては失敗する可能性があります。

パッケージでインストールした場合

Zabbixエージェントはデーモンプロセスとして実行されます。エージェントを起動するには以下を実行します。

systemctl start zabbix-agent

これはほとんどのGNU/Linuxシステムで動きます。他のシステムでは、以下のように実行する必要がある場合があります。

/etc/init.d/zabbix-agent start

同様に、Zabbixエージェントを停止/再起動/ステータス表示するには以下を実行します。

systemctl stop zabbix-agent
       systemctl restart zabbix-agent
       systemctl status zabbix-agent
手動での起動

手動で起動しようとして上記の方法で起動できない場合は、zabbix_agentdの実行ファイルのパスを確認して以下のように実行します:

shell> zabbix_agentd

Windows上でのZabbixエージェント

Windows上のZabbixエージェントは、Windows上のサービスとして実行されます。

準備

Zabbix エージェント は、zip アーカイブとして配布されます。 アーカイブをダウンロードしたら展開する必要があります。Zabbix エージェント本体と設定ファイルを保存するフォルダを選択してください。例:

C:\zabbix

bin\zabbix_agentd.exe とconf\zabbix_agentd.conf filesを c:\zabbixにコピーしてください。

c:\zabbix\zabbix_agentd.conf ファイルを必要に応じて編集し、特に"Hostname" パラメータは正しいことを確かめてください。

インストール

これが完了したら、次のコマンドを使用して Zabbix エージェントをインストールします。 Windows サービス:

C:\> c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -i

これで、「Zabbix agent」サービスをその他のWindowsサービスと同様、通常どおりに構成できるはずです。

続きを見る詳細 Windows での Zabbix エージェントのインストールと実行について。

その他のエージェントオプション

ホスト上でエージェントは複数のインスタンスを実行することができます。 単一のインスタンスは、デフォルトの設定ファイルまたはコマンドラインで指定された設定ファイルを利用できます。複数の場合には、各エージェントインスタンス毎に独自の設定ファイルが必要です。 (1つのインスタンスはデフォルトの設定ファイルを使用できます)

Zabbixエージェントでは、次のコマンドラインパラメーターを使用できます。

パラメータ 説明
UNIX および Windows エージェント
-c --config <config-file> 設定ファイルへのパス。
このオプションを使用して、デフォルト以外の設定ファイルを指定できます。
UNIXでは、デフォルトは /usr/local/etc/zabbix_agentd.conf または コンパイル時変数--sysconfdirまたは--prefixで設定されたもの。
Windowsでは、デフォルトは c: _agentd.conf
-p --print 既知の項目を出力して終了します。
: ユーザーパラメータ の結果も返すには、設定ファイルを指定する必要があります (デフォルトの場所にない場合)。
-t --test <item key> 指定されたアイテムをテストして終了します。
: ユーザーパラメータ の結果も返すには、設定ファイルを指定する必要があります (デフォルトの場所にない場合)。
-h --help ヘルプ情報を表示
-V --version バージョン番号を表示
UNIX エージェントのみ
-R --runtime-control <option> 管理機能を実行します。 ランタイムコントロールを参照してください。
Windows エージェントのみ
-m --multiple-agents 複数のエージェントインスタンスを使用します (-i、-d、-s、-x ファンクションと共に)。
インスタンスのサービス名を区別するために、各サービス名には設定ファイルで指定されたHostnameの値が含まれます。
Windows エージェントのみ (ファンクション)
-i --install Zabbix Windows エージェントをサービスとしてインストール
-d --uninstall Zabbix Windowsエージェントサービスをアンインストール
-s --start Zabbix Windowsエージェントサービスを開始
-x --stop Zabbix Windowsエージェントサービスを停止

コマンドラインパラメーターを使用する具体的な:

  • すべてのビルトインエージェントアイテムを値とともに出力します。
  • 指定した設定ファイル内で定義された"mysql.ping"キーを使用したユーザー パラメータのテスト
  • Windows用の"Zabbix Agent"サービスをインストールします。デフォルトの設定ファイルへのパス c:\zabbix_agentd.conf
  • Windows用の"Zabbix Agent [Hostname]"サービスをインストールします。エージェントが実行可能な、同じ場所にある設定ファイルフォルダのzabbix_agentd.confをHostnameの値で拡張してサービス名を一意にします。
shell> zabbix_agentd --print
       shell> zabbix_agentd -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
       shell> zabbix_agentd.exe -i
       shell> zabbix_agentd.exe -i -m -c zabbix_agentd.conf
ランタイム制御

ランタイム制御オプションを使用すると、エージェントプロセスのログレベルを変更できます。

オプション 説明 ターゲット
log_level_increase[=<target>] ログレベルを上げます。
ターゲットが指定されていない場合、すべてのプロセスが影響を受けます。
ターゲットは次のように指定できます:
process type - 指定されたタイプ (例 listener) のすべてのプロセス
すべてのエージェントプロセスタイプを参照してください。
process type,N - プロセスのタイプと数 (例: listener,3)<br >pid - プロセスID (1 ~ 65535)。より大きな値の場合は、 'process-type,N'の指定方法にしてください。
log_level_decrease[=<target>] ログレベルを下げます。
ターゲットが指定されていない場合、すべてのプロセスが影響を受けます。
userparameter_reload 現在の構成ファイルから UserParameter および Include オプションの値を再ロードします。

例 :

  • すべてのプロセスのログレベルを上げる
  • 3番目のlistenerプロセスのログレベルを上げる
  • PID 1234 でプロセスのログレベルを上げる
  • すべてのアクティブなチェックプロセスのログ レベルを下げる
shell> zabbix_agentd -R log_level_increase
       shell> zabbix_agentd -R log_level_increase=listener,3
       shell> zabbix_agentd -R log_level_increase=1234
       shell> zabbix_agentd -R log_level_decrease="active checks"

ランタイム制御は、OpenBSD、NetBSD、およびWindowsではサポートしません。

エージェント プロセスタイプ

  • active checks - アクティブチェックを実行するためのプロセス
  • collector - データ収集のプロセス
  • listener - パッシブチェックを受け付けるプロセス

エージェント ログファイルを利用して、これらのプロセスタイプを観察できます。

プロセス ユーザー

UNIX 上の Zabbix エージェントは、root 以外のユーザーとして実行するように設計されています。起動時からroot 以外のユーザーとして実行されます。なので、root 以外のユーザーでエージェントを実行しても何も問題ありません。

単純に「root」として実行しようとすると、システムから提供されている「zabbix」ユーザーに切り替わるようハードコードされています。 エージェントの設定ファイルの「AllowRoot」パラメーターを適切に変更することによって「root」としてエージェントを実行できます。

設定ファイル

Zabbix エージェントの設定の詳細については、設定ファイルのオプションを参照してください。 Zabbix エージェント (UNIX) または Zabbix エージェント (Windows)

ロケール

文字型のアイテムにて期待される値を返すには、UTF-8 ロケールがエージェントに必要であることに注意してください。 最新の Unix ライクなシステムのほとんどはデフォルトで UTF-8 ロケールを持っていますが、一部のシステムでは 具体的に設定する必要があるかもしれません。

終了コード

バージョン 2.2 より前の Zabbix エージェントは、正常に終了した場合に 0 を返し失敗した場合は 255を返しました。バージョン 2.2 以降の Zabbixエージェントは、正常に終了した場合は 0 を返し、失敗した場合は 1 を返します。