2 設定のベストプラクティス
概要
このセクションでは、Zabbix を最適なパフォーマンスと使いやすさで運用するための設定ベストプラクティスを説明します。
これらの推奨事項は、Zabbix 開発者の助言と、Zabbix トレーナーおよびサポートエンジニアの実践経験に基づいています。
すべての Zabbix 環境は固有であり、これらのガイドラインの一部は、お使いの構成には適さない場合があります。
ただし、一般的な潜在的問題を避けるため、可能な限りこれらのガイドラインに従うことを推奨します。
ホストとアイテム
ホストの定義
Zabbixにおけるホストは、物理的なマシンやデバイスではなく、論理的なエンティティです。 監視の目的で、データベースや仮想マシンなど、個別のホストを作成することができます。 あるいは、Johnのノートパソコンのような汎用ホストを作成し、そのホストの下ですべてのメトリックを監視することもできます。
ベストプラクティスは、仮想マシン、データベース、コンテナ、ネットワークスイッチなど、独立したインスタンスごとに個別のホストを作成することです。このアプローチを利用することで、以下のメリットがあります。
-
各ホストごとに個別のアイテム、トリガー、アラート通知を持つことで、監視データの混乱を避けることができます。
-
ユーザーアクセスレベルを細かく調整できます。 ユーザーロールを設定して、特定のホストの閲覧や設定のみを許可することができます。 最小権限の原則も参照してください。
重複したアイテムを持つホスト
Network switch 1 や Network switch 2 のように、類似したホストが複数ある場合、Zabbix にはホストをすばやく再作成するための複数の方法があります。 Clone ボタンをクリックして、すべてのメトリクスを含むホストを単純に複製できますが、この場合、後でアイテムを更新するには、各ホストで手動で行う必要があります。
推奨される方法は、必要なすべてのメトリクスを含むテンプレートを作成することです。たとえば、Network switch template です。 次に、類似したホストをホストグループにまとめます。上の例では、Network switches になります。 これで、Data Collection -> Hosts セクションでホストグループごとにすべてのホストをフィルタリングし、Mass update ボタンを使用してテンプレートをすべてのネットワークスイッチにリンクできます。
依存アイテム
ターゲットエンティティへのリクエスト数を最小限に抑えるために、Zabbixではマスターアイテムと依存アイテムを作成することができます。 この場合、マスターアイテムは1回のリクエストで大量の情報を収集します。 その後、依存アイテムを設定して、前処理を通じてそのコレクションから特定のデータを抽出し、個別のメトリクスとして保存することができます。
例えば、マスターアイテムが複数のメトリクスを含むJSONやXMLレスポンスを収集したり、複数のカラム(例:オープン接続数、中断された接続数、同時接続の最大許容数、起動後の累積接続数など)を返すデータベースクエリを実行したりし、依存アイテムがそれぞれ必要な値を個別に解析して保存します。
この構成のベストプラクティスは、収集直後にマスターアイテムの履歴を破棄し、依存アイテムのデータのみを保持することです。
サーバーとプロキシ
すべてのホストがZabbixサーバーと同じローカルネットワーク内にあり、スケーラビリティやパフォーマンスの問題がなければ、プロキシは必要ないかもしれません。 より大規模または複雑な環境では、Zabbixサーバーでホストを直接監視するだけでは不十分な場合があります。 プロキシを追加し、一部のホストをそのプロキシに割り当てることで、より均等な負荷分散が可能になります。
ベストプラクティスとして、以下の場合にZabbixプロキシを追加します:
-
ファイアウォールの背後で複数のメトリック収集方法を使用して複数のホストを監視している場合。 プロキシはホストからデータを収集し、それをZabbixサーバーに転送するため、複数のファイアウォールポートを開く必要がなくなります。
-
リモート拠点、支店、および/またはネットワークを監視している場合。 Zabbixサーバーとリモート拠点間のネットワークが中断された場合でも、リモート拠点に配備されたZabbixプロキシはデータ収集を継続し、ネットワーク接続が復旧した際に収集したデータをZabbixサーバーに送信します。
-
大規模な導入を行っており、Zabbixサーバーの負荷を軽減し、パフォーマンスを向上させたい場合。 大規模な導入の定義は非常に幅広く、ホスト数だけでなく、1秒あたりに収集される値の数にも依存します。
シークレットマクロ
シークレットユーザーマクロを、シークレットテキストまたはシークレットボールトマクロとして使用することができます。
シークレットボールトマクロを使用する場合、セキュリティを強化するために、ZabbixサーバーとZabbixプロキシがそれぞれ独立してマクロ値を取得するように設定することを推奨します。デフォルトでは、シークレットマクロの値はZabbixサーバーによって取得され、Zabbixプロキシに伝播されます。