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エージェントをインストールする方法については、パッケージインストールのセクションを参照してください。

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

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

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

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の実行ファイルのパスを確認して以下のように実行します:

zabbix_agentd

Windows上でのZabbixエージェント

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

準備

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

C:\zabbix

bin\zabbix_agentd.exeとconf\zabbix_agentd.confファイルを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の値で拡張してサービス名を一意にします。
zabbix_agentd --print
       zabbix_agentd -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
       zabbix_agentd.exe -i
       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のプロセスのログレベルを上げる
  • すべてのアクティブなチェックプロセスのログレベルを下げる
zabbix_agentd -R log_level_increase
       zabbix_agentd -R log_level_increase=listener,3
       zabbix_agentd -R log_level_increase=1234
       zabbix_agentd -R log_level_decrease="active checks"

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

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

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

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

プロセスユーザー

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

'root'として実行しようとすると、ハードコードされた'zabbix'ユーザーに切り替わるため、'zabbix'ユーザーがシステム上に存在している必要があります。'root'として実行するためには、エージェントの設定ファイルの'AllowRoot'パラメーターを適切に変更する必要があります。

設定ファイル

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

ロケール

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

終了コード

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