You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

1 Zabbixサーバー

概要

Zabbixサーバーは、Zabbixソフトウェアの中心的なプロセスです。

サーバーはデータのポーリングとトラッピングを実行し、トリガーを計算し、ユーザーに通知を送信します。 Zabbixエージェントやプロキシが、システムの可用性や整合性に関するデータを報告する中心的なコンポーネントです。 サーバー自体も、シンプルなサービスチェックを使用して、ネットワークサービス(Webサーバーやメールサーバーなど)をリモートでチェックできます。

サーバーは、すべての設定、統計、運用データが保存される中央リポジトリであり、監視対象システムのいずれかで問題が発生した場合に、管理者に積極的にアラートを送信するZabbixのエンティティです。

基本的なZabbixサーバーの機能は、3つの異なるコンポーネントに分かれています。それらは、Zabbixサーバー、Webフロントエンド、データベースストレージです。

Zabbixのすべての設定情報はデータベースに保存されており、サーバーとWebフロントエンドの両方がデータベースとやり取りします。 たとえば、Webフロントエンド(またはAPI)を使用して新しいアイテムを作成すると、それはデータベースのitemsテーブルに追加されます。 その後、約1分ごとにZabbixサーバーはitemsテーブルをクエリし、アクティブなアイテムのリストを取得し、それをZabbixサーバー内のキャッシュに保存します。 このため、Zabbixフロントエンドで行った変更が最新データセクションに反映されるまでに最大2分かかる場合があります。

Zabbixサーバーの起動

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

Zabbixサーバーはデーモンプロセスとして動作します。 サーバーは以下のコマンドで起動できます。

systemctl start zabbix-server

これはほとんどのGNU/Linuxシステムで動作します。 他のシステムでは、以下のコマンドを実行する必要があるかもしれません。

/etc/init.d/zabbix-server start

同様に、停止/再起動/ステータス表示には以下のコマンドを使用します。

systemctl stop zabbix-server
       systemctl restart zabbix-server
       systemctl status zabbix-server
手動で起動する

上記でうまくいかない場合は、手動で起動する必要があります。 zabbix_server バイナリのパスを探して、以下を実行します:

zabbix_server

Zabbixサーバーでは、以下のコマンドラインパラメータが利用できます:

-c --config <file>              設定ファイルのパス (デフォルトは /usr/local/etc/zabbix_server.conf)
       -f --foreground                 Zabbixサーバーをフォアグラウンドで実行
       -R --runtime-control <option>   管理機能の実行
       -T --test-config                設定ファイルの検証と終了
       -h --help                       このヘルプを表示
       -V --version                    バージョン番号の表示

コマンドラインパラメータを指定してZabbixサーバーを起動する例:

zabbix_server -c /usr/local/etc/zabbix_server.conf
       zabbix_server --help
       zabbix_server -V
ランタイム制御

ランタイム制御オプション:

オプション 説明 ターゲット
config_cache_reload 設定キャッシュをリロードします。キャッシュが現在ロード中の場合は無視されます。
history_cache_clear=target IDで指定されたアイテムの履歴キャッシュをクリアします。
アイテムの最初と最後の値を除くすべての値に影響します。
target - アイテムのID
diaginfo[=<section>] サーバーログファイルに診断情報を収集します。 historycache - 履歴キャッシュの統計情報
valuecache - 値キャッシュの統計情報
preprocessing - 前処理マネージャの統計情報
alerting - アラートマネージャの統計情報
lld - LLDマネージャの統計情報
locks - ミューテックスのリスト(BSD システムでは空)
connector - 最大キューを持つコネクタの統計情報
ha_status 高可用性(HA)クラスタのステータスをログに記録します。
ha_remove_node=target 名前またはIDで指定された高可用性(HA)ノードを削除します。
アクティブ/スタンバイノードは削除できませんのでご注意ください。
target - ノードの名前またはID(ha_statusの実行で取得可能)
ha_set_failover_delay=delay 高可用性(HA)のフェイルオーバー遅延を設定します。
時間のサフィックスがサポートされています(例: 10s, 1m)。
proxy_config_cache_reload[=<target>] プロキシの設定キャッシュをリロードします。 target - カンマ区切りのプロキシ名リスト
ターゲットが指定されていない場合、すべてのプロキシの設定をリロードします
secrets_reload Vaultからシークレットをリロードします。
service_cache_reload サービスマネージャのキャッシュをリロードします。
snmp_cache_reload SNMPキャッシュをリロードします — すべてのホストのSNMPエンジンプロパティ(エンジンタイム、エンジンブーツ、エンジンID、認証情報)をクリアします。SNMPの問題をトラブルシューティングする際にグローバルキャッシュのクリアを強制するために使用します。
housekeeper_execute ハウスキーピング手順を開始します。
ハウスキーピング手順が現在進行中の場合は無視されます。
trigger_housekeeper_execute サービスのトリガーハウスキーピング手順を開始し、削除されたトリガーによって発生した問題や、そのような問題によって生成されたサービス問題(ハウスキーピング時に解決済みと見なされる)を削除します。
ハウスキーピング手順が開始されるまで、削除されたトリガーによって発生した問題がサービス問題を生成し、サービスに割り当てられる可能性があることに注意してください。

頻繁に検出/未検出されるトリガーに基づく多くのサービスステータス計算ルールがセットアップに含まれている場合は、ProblemHousekeepingFrequencyサーバー設定パラメータを調整して、トリガーハウスキーピング手順の頻度を増やすことを検討してください。

トリガーハウスキーピング手順が現在進行中の場合は無視されます。
log_level_increase[=<target>] ログレベルを上げます。ターゲットが指定されていない場合はすべてのプロセスに影響します。
BSD システムではサポートされていません。
process type - 指定したタイプのすべてのプロセス(例: poller)
すべてのサーバープロセスタイプを参照してください。
process type,N - プロセスタイプと番号(例: poller,3)
pid - プロセスID(1~65535)。より大きな値の場合は、ターゲットを 'process type,N' として指定してください。
log_level_decrease[=<target>] ログレベルを下げます。ターゲットが指定されていない場合はすべてのプロセスに影響します。
BSD システムではサポートされていません。
prof_enable[=<target>] プロファイリングを有効にします。
ターゲットが指定されていない場合はすべてのプロセスに影響します。
有効なプロファイリングは、関数名ごとのすべてのrwlock/mutexの詳細を提供します。
process type - 指定したタイプのすべてのプロセス(例: history syncer)
プロファイリングターゲットとしてサポートされるプロセスタイプ: alerter, alert manager, availability manager, configuration syncer, discovery manager, escalator, history poller, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, lld manager, lld worker, odbc poller, poller, preprocessing manager, preprocessing worker, proxy poller, self-monitoring, service manager, snmp trapper, task manager, timer, trapper, unreachable poller, vmware collector
process type,N - プロセスタイプと番号(例: history syncer,1)
pid - プロセスID(1~65535)。より大きな値の場合は、ターゲットを 'process type,N' として指定してください。
scope - rwlock, mutex, processing はプロセスタイプと番号(例: history syncer,1,processing)またはタイプのすべてのプロセス(例: history syncer,rwlock)で使用できます
prof_disable[=<target>] プロファイリングを無効にします。
ターゲットが指定されていない場合はすべてのプロセスに影響します。
process type - 指定したタイプのすべてのプロセス(例: history syncer)
プロファイリングターゲットとしてサポートされるプロセスタイプ: prof_enable を参照
process type,N - プロセスタイプと番号(例: history syncer,1)
pid - プロセスID(1~65535)。より大きな値の場合は、ターゲットを 'process type,N' として指定してください。

サーバーの設定キャッシュをリロードするためにランタイム制御を使用する例:

zabbix_server -c /usr/local/etc/zabbix_server.conf -R config_cache_reload

プロキシの設定をリロードするためにランタイム制御を使用する例:

# すべてのプロキシの設定をリロード:
       zabbix_server -R proxy_config_cache_reload
           
       # Proxy1とProxy2の設定をリロード:
       zabbix_server -R proxy_config_cache_reload=Proxy1,Proxy2

アイテムのヒストリキャッシュをクリアするためにランタイム制御を使用する例:

zabbix_server -c /usr/local/etc/zabbix_server.conf -R history_cache_clear=42243

診断情報を収集するためにランタイム制御を使用する例:

# サーバーログファイルに利用可能なすべての診断情報を収集:
       zabbix_server -R diaginfo
       
       # サーバーログファイルにヒストリキャッシュの統計情報を収集:
       zabbix_server -R diaginfo=historycache

SNMPキャッシュをリロードするためにランタイム制御を使用する例:

zabbix_server -R snmp_cache_reload

SNMPv3インターフェースがZabbix UI経由で更新された場合、ほとんどの場合Zabbixはそのインターフェースの新しいSNMPv3認証情報を自動的にリロードします。認証情報の変更後もポーリングが失敗する場合(例えば、engineBoots/engineIDの不整合やRFC非準拠デバイスなど)や、トラブルシューティングのためにグローバルなSNMPキャッシュのクリアを強制する必要がある場合のみ、-R snmp_cache_reloadを使用してください。

ハウスキーパーの実行をトリガーするためにランタイム制御を使用する例:

zabbix_server -c /usr/local/etc/zabbix_server.conf -R housekeeper_execute

ログレベルを変更するためにランタイム制御を使用する例:

# すべてのプロセスのログレベルを上げる:
       zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
       
       # 2番目のポーラープロセスのログレベルを上げる:
       zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
       
       # PID 1234のプロセスのログレベルを上げる:
       zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
       
       # すべてのhttp pollerプロセスのログレベルを下げる:
       zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"

HAフェイルオーバー遅延を最小の10秒に設定する例:

zabbix_server -R ha_set_failover_delay=10s
プロセスユーザー

Zabbixサーバーは、root以外のユーザーとして実行するように設計されています。 起動したroot以外のユーザーとして実行されます。 したがって、サーバーは問題なく任意のroot以外のユーザーとして実行できます。

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

Zabbixサーバーとエージェントを同じマシンで実行する場合は、サーバーとエージェントで異なるユーザーを使用することを推奨します。 そうしないと、両方を同じユーザーで実行した場合、エージェントがサーバーの設定ファイルにアクセスでき、Zabbixの管理者レベルのユーザーであれば、たとえばデータベースのパスワードなどを簡単に取得できてしまいます。

設定ファイル

zabbix_serverの設定の詳細については、設定ファイルのオプションを参照してください。

起動スクリプト

これらのスクリプトは、システムの起動/シャットダウン時にZabbixプロセスを自動的に開始/停止するために使用されます。 スクリプトはmisc/init.dディレクトリにあります。

サーバープロセスタイプとスレッド

  • agent poller - ワーカースレッドを持つパッシブチェック用の非同期ポーラープロセス
  • alert manager - アラートキュー管理プロセス
  • alert syncer - アラートDB書き込みプロセス
  • alerter - 通知送信用プロセス
  • availability manager - ホストの可用性更新用プロセス
  • browser poller - ブラウザアイテムチェック用ポーラー
  • configuration syncer - 設定データのインメモリキャッシュ管理プロセス
  • configuration syncer worker - アイテム名のユーザーマクロ値を解決・同期するプロセス
  • connector manager - コネクタの管理プロセス
  • connector worker - コネクタマネージャからのリクエストを処理するプロセス
  • discovery manager - デバイスのディスカバリ管理プロセス
  • discovery worker - ディスカバリマネージャからのディスカバリタスクを処理するプロセス
  • escalator - アクションのエスカレーションプロセス
  • ha manager - 高可用性管理プロセス
  • history poller - データベース接続を必要とする計算チェック処理プロセス
  • history syncer - ヒストリDB書き込みプロセス
  • housekeeper - 古い履歴データの削除プロセス
  • http agent poller - ワーカースレッドを持つHTTPチェック用の非同期ポーラープロセス
  • http poller - Web監視用ポーラー
  • icmp pinger - icmppingチェック用ポーラー
  • internal poller - 内部チェック用ポーラー
  • ipmi manager - IPMIポーラーマネージャ
  • ipmi poller - IPMIチェック用ポーラー
  • java poller - Javaチェック用ポーラー
  • lld manager - ローレベルディスカバリタスクの管理プロセス
  • lld worker - ローレベルディスカバリタスクのワーカープロセス
  • odbc poller - ODBCチェック用ポーラー
  • poller - パッシブチェック用の通常ポーラー
  • preprocessing manager - 前処理タスクの管理プロセス(前処理ワーカースレッド付き)
  • preprocessing worker - データ前処理用スレッド
  • proxy poller - パッシブプロキシ用ポーラー
  • proxy group manager - プロキシの負荷分散と高可用性の管理プロセス
  • report manager- 定期レポート生成タスクの管理プロセス
  • report writer - 定期レポート生成プロセス
  • self-monitoring - サーバー内部統計収集プロセス
  • service manager - history syncer、task manager、alert managerから問題、問題タグ、問題復旧の情報を受信してサービスを管理するプロセス
  • snmp poller - SNMPチェック用のワーカースレッド付き非同期ポーラープロセス(walk[OID]およびget[OID]アイテムのみ)
  • snmp trapper - SNMPトラップ用トラッパー
  • task manager - 他のコンポーネントから要求されたタスク(例:問題のクローズ、問題の確認、アイテム値の即時チェック、リモートコマンド機能)のリモート実行プロセス
  • timer - メンテナンス処理用タイマー
  • trapper - アクティブチェック、トラップ、プロキシ通信用トラッパー
  • trigger housekeeper - 削除されたトリガーによって生成された問題を削除するプロセス
  • unreachable poller - 到達不能デバイス用ポーラー
  • vmware collector - VMwareサービスからデータ収集を担当するVMwareデータコレクタ

これらのプロセスタイプはサーバーログファイルで確認できます。

サーバーログファイルは、ファイル所有者のみが読み書き可能な権限で作成されます。さらに、所有者グループも読み取り可能です。他のすべての権限は拒否されます。

さまざまなタイプのZabbixサーバープロセスは、zabbix[process,<type>,<mode>,<state>] 内部アイテムで監視できます。

ヒストリーシンカーのトランザクション統計

ヒストリーシンカーのプロセスタイトルには、ヒストリーシンカーのトランザクションに関する詳細な統計情報が表示されます。

205182 ?        S      0:00  zabbix_server: history syncer #2 [processed 0 values, 0+0 triggers in 0.000021 (0.000000,0.000000,0.000000,0.000000,0.000000) sec, idle 1 sec]
       205183 ?        S      0:00  zabbix_server: history syncer #3 [processed 18 values, 7+0 triggers in 0.002612 (0.001108,0.000000,0.000000,0.001208,0.000014) sec, idle 1 sec]
       205184 ?        S      0:00  zabbix_server: history syncer #4 [processed 0 values, 0+0 triggers in 0.000027 (0.000000,0.000000,0.000000,0.000000,0.000000) sec, idle 1 sec]

"A+B triggers"の意味:

  • A - ヒストリ値によって処理されたトリガー数
  • B - タイマーによって処理されたトリガー数

"processed...in N (<timings>) sec"のタイミングは以下の通りです:

  • アイテム値をデータベースに書き込むのにかかった時間
  • アイテムデータ(状態、エラー、ホストインベントリなど)の更新にかかった時間
  • トレンドをデータベースにフラッシュするのにかかった時間
  • トリガーの計算にかかった時間
  • イベントとアクションの処理にかかった時間

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

セキュリティ要件やサーバー運用のミッションクリティカルな性質から、UNIXは必要なパフォーマンス、フォールトトレランス、レジリエンスを一貫して提供できる唯一のオペレーティングシステムです。 Zabbixは市場をリードするバージョンで動作します。

Zabbixサーバーは以下のプラットフォームでテストされています:

  • Linux
  • Solaris
  • AIX
  • HP-UX
  • Mac OS X
  • FreeBSD
  • OpenBSD
  • NetBSD
  • SCO Open Server

Zabbixは他のUnix系オペレーティングシステムでも動作する場合があります。

ロケール

サーバーが一部のテキスト項目を正しく解釈できるように、UTF-8ロケールが必要であることに注意してください。 ほとんどの最新のUnix系システムではデフォルトでUTF-8ロケールが設定されていますが、システムによっては明示的に設定する必要がある場合があります。