Zabbixサーバーは、Zabbixのソフトウェアの中でも中核となるプロセスです。
Zabbixサーバーは、データのポーリングとトラッピングを処理し、それをトリガーによって判断し、ユーザーに対して通知を行います。Zabbixサーバーは、ZabbixエージェントやZabbixプロキシからシステムの可用性や整合性のデータを受け取る中核となるコンポーネントです。Zabbixサーバー自体は、シンプルなサービスチェックの機能を使用して、ネットワークに接続されたサービス(Webサーバーやメールサーバーなど)をリモートからチェックすることができます。
Zabbixサーバーは、すべての設定、統計、運用データが保存される中核となるリポジトリで、監視システムのいずれかで障害が発生したときに、管理者に対して能動的に警告を通知する役割を担います。
Zabbixサーバーの基本的な機能は、3つの別々のコンポーネントに分けられます。その3つとは、Zabbixサーバー、Webインターフェース、データベースストレージです。
Zabbixのすべての設定情報はデータベース上に保存されています。そして、サーバーとWebインターフェースの両方がそのデータベースと通信します。例えば、Webインターフェース(またはAPI)を使用して新しいアイテムを作成した時には、データベース内のitemsテーブルに追加されます。次に、Zabbixサーバーは約1分に1回、有効なアイテムの一覧を取得するためitemsテーブルを検索し、Zabbixサーバー内のキャッシュに保存します。これが、ZabbixのWebインターフェースで行った更新がZabbixサーバーに反映され、最新データとして見ることができるまでに最大2分かかる場合がある理由です。
Zabbixサーバーは、デーモンプロセスとして起動されます。サーバーの起動には以下のように実行します:
これは、ほとんどのGNU/Linuxシステムで動きます。他のシステムでは、以下のように実行する必要があるかもしれません:
同様に、停止、再起動、ステータス表示には以下のように実行します:
shell> service zabbix-server stop
shell> service zabbix-server restart
shell> service zabbix-server status
上記の方法で起動できない場合は、手動で起動する必要があります。zabbix_serverのバイナリを見つけて、以下のように実行します:
Zabbixサーバーでは、以下のコマンドラインパラメーターを使用できます:
-c --config <file> 設定ファイルを絶対パスで指定します。(デフォルトは/usr/local/etc/zabbix_server.conf)
-f --foreground Zabbixサーバーをフォアグラウンドで実行します。
-R --runtime-control <option> 管理用のランタイムコマンドを実行します。
-h --help ヘルプを表示します。
-V --version バージョン情報を表示します。
Zabbixサーバーのコマンドラインパラメータの使用例です:
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf
shell> zabbix_server --help
shell> zabbix_server -V
ランタイムコントロールオプション
オプション | 説明 | ターゲット |
---|---|---|
config_cache_reload | 設定キャッシュをリロードします。 キャッシュが現在ロード中の場合は無視されます。 | |
diaginfo[=<target>] | サーバー ログ ファイルで診断情報を収集します。 | historycache - 履歴キャッシュの統計 valuecache - 値キャッシュの統計 preprocessing - 前処理マネージャー統計 alerting - アラート マネージャの統計 lld - LLD マネージャーの統計 locks - ミューテックスのリスト (**BSD* systemでは空です) |
ha_status | 高可用性 (HA) クラスターの状態をログに記録します。 | |
ha_remove_node=target | 名前または ID で指定された高可用性 (HA) ノードを削除します。 アクティブ/スタンバイ ノードは削除できないことに注意してください。 |
ターゲット - ノードの名前または ID (ha_status を実行して取得できます) ) |
ha_set_failover_delay=delay | 高可用性 (HA) フェイルオーバー遅延を設定します。 タイムサフィックスがサポートされています。例: 10s, 1m. |
|
secrets_reload | Vault からシークレットをリロードします。 | |
service_cache_reload | サービス マネージャーのキャッシュを再読み込みします。 | |
snmp_cache_reload | SNMP キャッシュをリロードし、すべてのホストの SNMP プロパティ (エンジン時間、エンジン ブート、エンジン ID、認証情報) をクリアします。 | |
housekeeper_execute | ハウスキーピング手順を開始します。 ハウスキーピング手順が現在進行中の場合は無視されます。 | |
trigger_housekeeper_execute | トリガー ハウスキーピング手順を開始します。 トリガー ハウスキーピング プロシージャが現在進行中の場合は無視されます。 | |
log_level_increase[=<target>] | ログ レベルを上げます。ターゲットが指定されていない場合、すべてのプロセスに影響します。 **BSD* システムではサポートされていません。 |
process type - 指定されたタイプのすべてのプロセス (ポーラーなど) サーバー プロセス タイプをすべて表示 process type,N - プロセスの種類と数 (例: poller,3) pid - プロセスID(1から65535). より大きな値の場合は、ターゲットを'process type,N'として指定します。 |
log_level_decrease[=<target>] | ログ レベルを下げます。ターゲットが指定されていない場合、すべてのプロセスに影響します。 **BSD* システムではサポートされていません。 |
ランタイム制御を使用してサーバー構成キャッシュをリロードする例:
ランタイム制御を使用して診断情報を収集する例:
サーバー ログ ファイルで利用可能なすべての診断情報を収集:
shell> zabbix_server -R diaginfo
サーバー ログ ファイルで履歴キャッシュ統計を収集:
shell> zabbix_server -R diaginfo=historycache
ランタイム制御を使用して SNMP キャッシュをリロードする例:
ランタイム制御を使用してハウスキーパーの実行をトリガーする例:
ランタイム コントロールを使用してログ レベルを変更する例:
すべてのプロセスのログ レベルを上げる:
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
2 番目のポーラー プロセスのログ レベルを上げる:
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
PID 1234 でプロセスのログ レベルを上げる:
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
すべての http ポーラー プロセスのログ レベルを下げる:
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"
HA フェイルオーバー遅延を最小 10 秒に設定する例:
Zabbixサーバーは、非rootユーザーで動作するように設計されています。起動されたどんな非rootユーザーでも起動すれば動作します。したがって、非rootユーザーで問題なくサーバーを実行できます。
rootユーザーで起動した場合には、ハードコードされたzabbixユーザーに切り替わります。このユーザーは、システム上に存在する必要があります。サーバーの設定ファイル内の「AllowRoot」パラメーターを変更した時のみ、rootユーザーで実行させることができます。
Zabbixサーバーとエージェントが同じマシン上で動作する場合、サーバーの実行とエージェントの実行に、異なるユーザーを使用することをお勧めします。そうしないと、同じユーザーとしてサーバーとエージェントの両方が実行された場合、エージェントはサーバーの設定ファイルにアクセスでき、例えば、Zabbix内のどの管理レベルのユーザーでも、極めて容易にデータベースのパスワードを取得することができていしまいます。
zabbix_serverの設定の詳細は、設定ファイルを参照してください。
スクリプトは、システムの起動/シャットダウン中のZabbixプロセスの自動起動/停止に使用されます。スクリプトは、misc/init.dディレクトリの下にあります。
alert manager
- アラート・キュー・マネージャーalert syncer
- アラート DB ライターalerter
- 通知の送信プロセスavailability manager
- ホスト可用性の更新プロセスconfiguration syncer
- 設定データのメモリ内キャッシュを管理するプロセスdiscoverer
- デバイス検出プロセスescalator
- アクションエスカレーションのプロセスhistory poller
- データベース接続を必要とする計算された内部チェックを処理するためのプロセスhistory syncer
- 履歴DBライターhousekeeper
- 古い履歴データの削除プロセスhttp poller
- ウェブ監視ポーラーicmp pinger
- icmpping チェックのポーラーipmi manager
- IPMI ポーラー マネージャーipmi poller
- IPMI チェックのポーラーjava poller
- Java チェックのポーラーlld manager
- ローレベルディスカバリタスクのマネージャ プロセスlld worker
- ローレベルディスカバリタスクのワーカー プロセスodbc poller
- ODBC チェックのポーラーpoller
- パッシブチェック用の通常のポーラーpreprocessing manager
- 前処理タスクのマネージャーpreprocessing worker
- データ前処理のプロセスproblem housekeeper
- 削除されたトリガーの問題を解決するためのプロセスproxy poller
- パッシブ プロキシのポーラーreport manager
- スケジュールされたレポート生成タスクのマネージャーreport writer
- スケジュールされたレポートを生成するプロセスself-monitoring
- 内部サーバー統計を収集するためのプロセスsnmp trapper
- SNMP トラップのトラッパーtask manager
- 他のコンポーネントによって要求されたタスクをリモートで実行するためのプロセス (例: 障害のクローズ、障害の確認、項目値の即時チェック、リモート コマンド機能)timer
- メンテナンス処理用タイマーtrapper
- アクティブチェック、トラップ、プロキシ通信用のトラッパーunreachable poller
- 到達不能デバイスのポーラーvmware collector
- VMware サービスからのデータ収集を担当する VMware データ コレクターサーバー ログ ファイルを使用して、これらのプロセス タイプを監視できます。
zabbix[process,<type>,<mode>,<state>] internal itemを使用して、さまざまなタイプのZabbixサーバープロセスを監視できます。
サーバーの処理のセキュリティ要件やミッションクリティカルな性質から、必要なパフォーマンス、フォールトトレランス、および復元力を一貫して提供できるOSは、UNIXだけです。Zabbixは、市場に出回っているバージョンで動作します。
Zabbixサーバーは、以下のプラットフォーム上での動作を確認済みです:
Zabbixは、他のUNIX系OSでも同様に動作します。
いくつかのテキスト形式のアイテムを正しく処理できるようにするため、サーバーにはUTF-8のロケールが必要であることに注意してください。最近のほとんどのUNIXライクなシステムにはデフォルトでUTF-8ロケールがありますが、システムによっては具体的に設定しなければ使用することができません。