Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

1 Zabbixサーバー

概要

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サーバーの起動

パッケージを使用してインストールした場合

Zabbixサーバーは、デーモンプロセスとして起動されます。サーバーの起動には以下のように実行します:

shell> service zabbix-server start

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

shell> /etc/init.d/zabbix-server start

同様に、停止、再起動、ステータス表示には以下のように実行します:

shell> service zabbix-server stop
       shell> service zabbix-server restart
       shell> service zabbix-server status
手動での起動

上記の方法で起動できない場合は、手動で起動する必要があります。zabbix_serverのバイナリを見つけて、以下のように実行します:

shell> 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 -c /usr/local/etc/zabbix_server.conf -R config_cache_reload

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

サーバー ログ ファイルで利用可能なすべての診断情報を収集:
       shell> zabbix_server -R diaginfo
       
       サーバー ログ ファイルで履歴キャッシュ統計を収集:
       shell> zabbix_server -R diaginfo=historycache

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

shell> zabbix_server -R snmp_cache_reload  

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

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

ランタイム コントロールを使用してログ レベルを変更する例:

すべてのプロセスのログ レベルを上げる:
       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 秒に設定する例:

shell> zabbix_server -R ha_set_failover_delay=10s
プロセス起動ユーザー

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サーバーは、以下のプラットフォーム上での動作を確認済みです:

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

Zabbixは、他のUNIX系OSでも同様に動作します。

ロケール

いくつかのテキスト形式のアイテムを正しく処理できるようにするため、サーバーにはUTF-8のロケールが必要であることに注意してください。最近のほとんどのUNIXライクなシステムにはデフォルトでUTF-8ロケールがありますが、システムによっては具体的に設定しなければ使用することができません。