【わたしに♥おまかせ Zabbix③】Zabbixの内部プロセスについて – 続き




こんにちは!プラットフォーム技術部の齊藤(沙)です。
前回は Zabbix の構成要素の中でも監視や通知機能を担っている Zabbixサーバーと、その内部プロセスの一部について確認しましたね。今回は監視以外の機能を担う内部プロセスを中心に確認していきます。
前回の記事はこちら。
まとめ記事作りました♥
Zabbixを知ろう – Zabbixサーバー編:内部プロセス 続き
Trapper
Trapper は、Zabbixサーバーに対するPUTデータを受け取る役割を担う内部プロセスです。
Zabbixサーバーに対するデータのPUTは、ログ監視等のエージェントアクティブチェック監視や、Zabbix_Sender を用いた値の連携、アクティブモードで動作しているZabbixプロキシの監視値の連携時などに行われます。
監視対象ログの大量出力など、Zabbixサーバに対するPUTデータの増加具合に比例して Traapper のBusy率も上昇します。
Trapper のBusy率が高い値で推移していたり、データの受け取りに遅延が見られた場合は他の内部プロセスと同様 Trapper の起動数を増やすことで対応します。
Timer
Timer はメンテナンスやトリガー関数における時間系の評価や制御を担う内部プロセスです。
nodata()、Time()、dayofweek()など周期的に評価を行う時間系のトリガー関数の多用により Timer のBusy率が高い値で推移した場合はこちらも起動数を増やすことで対応します。
Timer はVersion2.2以降で起動数の変更が可能になったため、2.0以前のVersionでは起動数を変更することが出来ないので注意が必要です。
Escalator
Escalator はアクションにおけるエスカレーション処理を担う内部プロセスです。
アクションにおけるエスカレーション処理の実行数に応じてEscalatorのBusy率も上昇します。Escalator のBusy率が高い値で推移した場合は、起動数を増やすことで対応します。
Escalator はVersion3.0以降で起動数の変更が可能になったため、3.0以前のVersionでは起動数を変更することが出来ないので注意が必要です。
Alerter
Alerter はアクションの実行を担う内部プロセスです。Alerter は起動数の変更はできず単一プロセスとして動作します。(ver3.4から起動数を変更できるようになりました!)
アクションの実行数に応じて Alerter のBusy率も上昇します。起動数の変更ができないため、Busy率が高い値で推移している場合は、アラートスクリプトやメールサーバーのレスポンスの改善や、アイテムやトリガーなどの監視設定を見直すことで不要なアクション実行を削減することで対応します。
Housekeeper
Housekeeper はデータベース内に保存されたデータの中から保持期間外のデータを削除する処理を担う内部プロセスです。
Housekeeper も、起動数の変更はできず単一プロセスとして動作します。保持期間外データの削除処理は削除対象のデータ量に依存するものの非常に高負荷な処理のため、Zabbixサーバー全体のパフォーマンスに影響を及ぼす可能性があります。
Housekeeper 動作中に各内部プロセスのBusy率の上昇や、監視Queueの滞留などが見られる場合は、Housekeeper による保持期間外データの削除処理を停止し、データベースのパーティション化とパーティション削除を行うことで削除処理のパフォーマンス向上及び負荷の軽減を検討します。
また、Version3.0以降ではコマンドによる手動実行もサポートされているため、不定期での保持期間外データ削除を行うことが可能になりました。
History Syncer
History Syncer は監視によって収集された値をメモリ上からデータベースへ書き込む処理を担う内部プロセスです。
データベースへ書き込むデータ量の増加に伴い、Busy率が上昇します。History Syncer のBusy率が高い値で推移している場合は、DBSyncerの起動数を増やすか、データベースのチューニングを行い書き込み性能を向上させることで対応します。
Configuration Syncer
Configuration Syncer は、定期的に監視設定データをデータベースからメモリ上へ読み込む処理を担う内部プロセスです。Configuration Syncer としてのチューニングポイントは特にありません。
まとめ
今回は監視以外の機能を担う内部プロセスを中心に確認しました。
監視の実行以外にも様々な役割が存在していて、機能やパフォーマンスを担保するためにそれぞれ重要な役割を担っているのだなと感じました。
そんな様々な内部プロセスに支えられて動いているZabbixサーバーを健全な状態で利用するためには、
- Zabbixサーバーに「Template App Zabbix Server」テンプレートを適用して内部プロセスの状態を監視
- 各内部プロセスのBusy率を30%以下になるように、起動数を調整
することが大切ですね!
※ バージョンによっては起動数を変更できないものもあるため、要注意。
もっとZabbixのことを知るために次回以降はZabbixのデータが格納されるデータベースについて確認していきたいと思います。
次回の記事はこちら。
Zabbixに関するお問い合わせはこちらからお願いいたします。