1 Zabbixサーバー
概要
Zabbixサーバーは、Zabbixのソフトウェアの中核となるプロセスです。
Zabbixサーバーは、データのポーリングとトラッピングを処理し、それをトリガーによって判断し、ユーザーに対して通知を行います。ZabbixエージェントやZabbixプロキシからシステムの可用性と整合性に関するデータを受け取る中核となるコンポーネントです。Zabbixサーバー自体は、シンプルなサービスチェックの機能を使用して、ネットワークに接続されたサービス(Webサーバーやメールサーバーなど)をリモートからチェックすることができます。
Zabbixサーバーは、すべての設定、統計、運用データが保存される中核となるリポジトリで、監視対象のシステムで障害が発生したときに、管理者に対して能動的に警告を通知する役割を担います。
Zabbixサーバーの基本的な機能は、3つの異なるコンポーネントに分けられます。その3つとは、Zabbixサーバー、Webインターフェース、データベースストレージです。
Zabbixのすべての設定情報はデータベース上に保存され、ZabbixサーバーとWebインターフェースの両方がそのデータベースと通信します。例えば、Webインターフェース(またはAPI)を使用して新しいアイテムを作成した時には、データベース内のitemsテーブルに追加されます。次に、Zabbixサーバーはおよそ1分ごとに有効なアイテムの一覧を取得するためitemsテーブルを検索し、Zabbixサーバー内のキャッシュに保存します。このため、Webインターフェースで行った変更が最新データとして反映されるまでに最大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
ランタイム制御
ランタイム制御オプション:
| Option | Description | Target |
|---|---|---|
| config_cache_reload | 設定キャッシュを再読み込みします。キャッシュが現在読み込み中の場合は無視されます。 | |
| 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) フェイルオーバー遅延を設定します。 Time suffixes をサポートします。例: 10s、1m。 |
|
| proxy_config_cache_reload[=<target>] | プロキシ設定キャッシュを再読み込みします。 | target - プロキシ名のカンマ区切りリスト target を指定しない場合、すべてのプロキシの設定を再読み込みします |
| secrets_reload | Vault からシークレットを再読み込みします。 | |
| service_cache_reload | サービスマネージャーのキャッシュを再読み込みします。 | |
| snmp_cache_reload | SNMPキャッシュを再読み込みします — すべてのホストについて SNMP エンジンのプロパティ (engine time、engine boots、engine id、認証情報) をクリアします。SNMP の問題をトラブルシュートする際に、グローバルなキャッシュクリアを強制するために使用します。 | |
| housekeeper_execute | housekeeping 手順を開始します。 housekeeping 手順が現在進行中の場合は無視されます。 |
|
| trigger_housekeeper_execute | トリガー housekeeping 手順を開始します。 トリガー housekeeping 手順が現在進行中の場合は無視されます。 トリガー housekeeping 手順が開始されるまで、すでに削除されたトリガーによって発生した障害が、引き続きサービス障害を生成し、それらをサービスに割り当てる可能性があります。頻繁に検出/未検出されるトリガーに基づく多数のサービス status calculation rules を使用している環境では、 ProblemHousekeepingFrequency サーバー設定パラメータを調整して housekeeping 手順の頻度を上げることを検討してください。 |
|
| log_level_increase[=<target>] | ログレベルを上げます。target が指定されていない場合は、すべてのプロセスに影響します。 BSD システムではサポートされていません。 |
process type - 指定したタイプのすべてのプロセス (例: poller) すべての server process types を参照してください。 process type,N - プロセスタイプと番号 (例: poller,3) pid - プロセス識別子 (1 ~ 65535)。これより大きい値の場合は、target を 'process type,N' として指定してください。 |
| log_level_decrease[=<target>] | ログレベルを下げます。target が指定されていない場合は、すべてのプロセスに影響します。 BSD システムではサポートされていません。 |
|
| prof_enable[=<target>] | プロファイリングを有効にします。 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 - プロセス識別子 (1 ~ 65535)。これより大きい値の場合は、target を 'process type,N' として指定してください。 scope - rwlock、mutex、processing は、プロセスタイプと番号 (例: history syncer,1,processing) またはタイプのすべてのプロセス (例: history syncer,rwlock) とともに使用できます |
| prof_disable[=<target>] | プロファイリングを無効にします。 target が指定されていない場合は、すべてのプロセスに影響します。 |
process type - 指定したタイプのすべてのプロセス (例: history syncer) プロファイリング対象としてサポートされるプロセスタイプ: prof_enable を参照process type,N - プロセスタイプと番号 (例: history syncer,1) pid - プロセス識別子 (1 ~ 65535)。これより大きい値の場合は、target を '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 -R diaginfo
# サーバーログファイルでヒストリキャッシュ統計を収集する:
zabbix_server -R diaginfo=historycache
ランタイム制御を使用してSNMPキャッシュをリロードする例:
zabbix_server -R snmp_cache_reload
Zabbix UIを介してSNMPv3インターフェースが更新されると、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ポーラープロセスのログレベルを下げる:
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'ユーザーに切り替わります。このユーザーは、システム上に存在する必要があります。サーバーの設定ファイル内の'AllowRoot'パラメーターを変更した時のみ、'root'で実行させることができます。
Zabbixサーバーと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 7.0.22以降、サーバーログファイルはファイル所有者のみに読み書き権限を持つ状態で作成されます。さらに、このファイルは所有グループによる読み取りが可能です。その他の権限はすべて拒否されます。
さまざまな種類のZabbixサーバープロセスは、内部アイテム zabbix[process,<type>,<mode>,<state>] を使用して監視できます。
サポートするプラットフォーム
サーバーの処理のセキュリティ要件やミッションクリティカルな性質から、必要なパフォーマンス、フォールトトレランス、および復元力を一貫して提供できるOSはUNIXだけです。Zabbixは市場に出回っているバージョンで動作します。
Zabbixサーバーは以下のプラットフォーム上で動作確認済みです:
- Linux
- Solaris
- AIX
- HP-UX
- Mac OS X
- FreeBSD
- OpenBSD
- NetBSD
- SCO Open Server
Zabbixは他のUNIX系OSでも動作する可能性があります。
ロケール
いくつかのテキスト形式のアイテムを正しく処理できるようにするため、サーバーにはUTF-8のロケールが必要であることに注意してください。最近のほとんどのUNIXライクなシステムにはデフォルトでUTF-8ロケールがありますが、システムによっては具体的に設定しなければ使用することができません。