2025 年 02 月 07 日
Zabbix サーバの内部プロセス解説
Zabbix サーバにはいくつもの内部プロセスが存在します。本記事では、Zabbix サーバの内部プロセスを解説します。
概要
Zabbix サーバにはいくつもの内部プロセスが存在し、種類ごとに異なる役割を持っています。本記事では、Zabbix サーバの内部プロセスのうち、一般的に使用され、パフォーマンスチューニングにかかわるプロセスについて解説します。Zabbix のバージョンは 7.0 をベースに解説します。
内部プロセス解説
poller
poller は、パッシブチェックを行うプロセスです。Zabbix 7.0 からは一部のパッシブチェックは別のプロセスで動作するようになりました。
プロセス | 説明 |
---|---|
poller | 下記 poller のチェック以外のパッシブチェックを行う |
agent poller | Zabbix agent のパッシブチェックを行う |
http agent poller | HTTP agent のパッシブチェックを行う |
snmp poller | SNMP(walk[OID],get[OID] アイテムのみ ) のパッシブチェックを行う |
agent poller, http agent poller, snmp poller は非同期となっており、Zabbix 6.0 よりもデータ収集速度や拡張性が向上しています。
Asynchronous poller の詳細については以下の記事をご確認ください。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷を確認することができます。
- Utilization of poller data collector processes, in %
- Utilization of agent poller data collector processes, in %
- Utilization of http agent poller data collector processes, in %
- Utilization of snmp poller data collector processes, in %
また、フロントエンドの「管理」→「キュー」→「キュー概要」を確認することで溜まっているキューの数を確認できます。
上記アイテムやキューの値が高い場合は、/etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。数を増やすとプロセスの負荷は減りますが、増やしすぎるとメモリ使用量が増えます。また、MaxConcurrentChecksPerPoller オプションで agent poller, http agent poller, snmp poller が一度に非同期チェックを行える最大数を変更できます。
オプション | デフォルト |
---|---|
StartPollers | 5 |
StartAgentPollers | 1 |
StartHTTPAgentPollers | 1 |
StartSNMPPollers | 1 |
MaxConcurrentChecksPerPoller | 1000 |
preprocessing worker
preprocessing worker は、アイテムの前処理を行うプロセスです。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷や溜まっているキューを確認することができます。
- Utilization of preprocessing worker internal processes, in %
- Preprocessing queue
上記アイテムやキューの値が高い場合は、/etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。アイテムに設定している前処理が CPU に依存している場合、利用可能な CPU のコア数以下に設定する必要があります。ネットワークリクエストなど CPU に依存しない場合は、負荷に応じて数を増やしてください。
オプション | デフォルト |
---|---|
StartPreprocessors | 16 |
history poller
history poller は、データベースに接続し計算、集計、内部チェックを行うプロセスです。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷を確認することができます。
- Utilization of history poller internal processes, in %
上記アイテムの値が高い場合は、/etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。数を増やすと負荷は減りますが、増やしすぎるとデータベースへの不要な接続が増えます。
オプション | デフォルト |
---|---|
StartHistoryPollers | 5 |
trapper
trapper は、アクティブチェック、トラップ、プロキシとの通信を行うプロセスです。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷を確認することができます。
- Utilization of trapper data collector processes, in %
上記表のアイテムの値が高い場合は、/etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。
オプション | デフォルト |
---|---|
StartTrappers | 5 |
icmp pinger
icmp pinger は、シンプルチェックの内の ICMP チェックを行うプロセスです。Zabbix では外部ユーティリティである fping を使用しています。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷を確認することができます。
- Utilization of icmp pinger data collector processes, in %
また、フロントエンドの「管理」→「キュー」→「キュー概要」を確認することで溜まっているキューの数を確認できます。
上記表のアイテムやキューの値が高い場合は、/etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。
オプション | デフォルト |
---|---|
StartPingers | 1 |
discovery worker
discovery worker は、ディスカバリルールのチェックを行うプロセスです。Zabbix6.0 までは各ディスカバリルールは 1 つのプロセスにより処理され、ルール内のチェックは順番に実行されていましたが、Zabbix7.0 からは並列チェックが可能となり検出速度が向上しています。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷を確認することができます。
- Utilization of discovery worker internal processes, in %
- Discovery queue
上記アイテムやキューの値が高い場合は、/etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。
オプション | デフォルト |
---|---|
StartDiscoverers | 5 |
また、ディスカバリルール毎に並列チェック可能なプロセス数をフロントエンドで設定することもできます。
escalator
escalator は、エスカレーションを行うプロセスです。エスカレータ自体がアラートメールの送信やコマンド実行をすることはありません。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷を確認することができます。
- Utilization of escalator internal processes, in %
上記アイテムの値が高い場合は、/etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。
オプション | デフォルト |
---|---|
StartEscalators | 1 |
alerter
alerter は、アクションのアラートメールの送信やコマンド実行等を行うプロセスです。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷を確認することができます。
- Utilization of alerter internal processes, in %
上記表のアイテムの値が高い場合は、/etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。
オプション | デフォルト |
---|---|
StartAlerters | 3 |
history syncer
history syncer は、poller やトラッパが取得しヒストリーキャッシュへ保存したデータを DB へ書き出すプロセスです。同時にトリガー判定、トレンドデータの整形、イベント生成も行います。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷を確認することができます。
- Utilization of history syncer internal processes, in %
上記表のアイテムの値が高い場合は、/etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。数を増やすとプロセスの負荷は減りますが、増やしすぎると、データベースへの不要な接続が増えます。
オプション | デフォルト |
---|---|
StartDBSyncers | 4 |
browser item poller
browser item poller は、Zabbix7.0 から追加されたブラウザ監視を行うプロセスです。
ブラウザ監視の詳細については以下のブログをご確認ください。
Zabbix にデフォルトで存在するテンプレート「Zabbix server health」に含まれる以下のアイテムで負荷を確認することができます。
- Utilization of browser poller data collector processes, in %
負荷が高い場合は /etc/zabbix/zabbix_server.conf の以下のオプションでプロセス数を変更できます。
オプション | デフォルト |
---|---|
StartBrowserPollers | 1 |
おわりに
ここまで Zabbix サーバの内部プロセスについて解説しました。
今回紹介した内部プロセス以外にも監視内容に応じて設定が必要な内部プロセスが存在します。各プロセスの負荷を確認しつつ環境に応じてプロセスの数を調整してみてください。