2 設定のベストプラクティス
概要
このセクションでは、最適なパフォーマンスと使いやすさを実現するためにZabbixを設定する際のベストプラクティスを概説します。
これらの推奨事項は、Zabbix開発者の助言と、Zabbixトレーナーおよびサポートエンジニアの実務経験に基づいています。
すべてのZabbixインストール環境は固有であり、これらのガイドラインの一部はお使いの特定の設定には適さない場合があります。
ただし、一般的によくある潜在的な問題を回避するため、可能な限りこれらのガイドラインに従うことをお勧めします。
このページはさらに改善できると思われる場合は、ぜひご意見をお聞かせください。該当するテキストを選択し、ctrl+Enter を押して、誤りの報告やフィードバックの共有を行ってください。
ホストとアイテム
ホストの定義
Zabbixにおけるホストは、物理マシンやデバイスではなく、論理的なエンティティです。 監視の目的に応じて、データベースや、たとえば仮想マシン用に個別のホストを作成できます。 あるいは、John's laptop のような汎用的なホストを作成し、そのホスト配下ですべてのメトリクスを監視することもできます。
ベストプラクティスとしては、仮想マシン、データベース、コンテナ、ネットワークスイッチなど、それぞれ独立したインスタンスごとに個別のホストを作成することです。この方法を採用することで、次のことが可能になります。
-
ホストごとに個別のアイテム、トリガー、アラート通知を持たせることで、監視データの煩雑化を防ぐことができます。
-
ユーザーアクセスレベルをきめ細かく調整できます。 user-roles を設定して、特定のホストの表示および/または設定のみにアクセスを許可できます。 あわせて、最小権限の原則 も参照してください。
重複したアイテムを持つホスト
Network switch 1 や Network switch 2 のように、類似したホストが複数ある場合、Zabbix にはホストをすばやく再作成するための複数の方法が用意されています。
Clone ボタンを押すだけで、すべてのメトリクスを含めてホストを簡単に複製できますが、この場合、後でアイテムを更新する必要が生じた際には、各ホストで手動で更新しなければなりません。
ベストプラクティスは、必要なすべてのメトリクスを含むテンプレートを作成することです。たとえば、Network switch template です。
次に、類似したホストをホストグループにまとめます。上記の例では、Network switches などにできます。
これで、データ収集 -> ホスト セクションでホストグループによってすべてのホストをフィルタリングし、Mass update ボタンを使用して、すべてのネットワークスイッチにテンプレートをリンクできます。
依存アイテム
対象エンティティへのリクエスト数を最小限に抑えるため、Zabbixではマスターアイテムと依存アイテムを作成できます。
この場合、マスターアイテムは1回のリクエストで大量の情報を収集します。
その後、依存アイテムを設定して、前処理によってその収集結果から特定のデータを抽出し、個別のメトリクスとして保存できます。
例えば、マスターアイテムは複数のメトリクスを含むJSONまたはXMLレスポンスを収集したり、複数列のデータを返すデータベースクエリ(例: オープン接続数、中断された接続数、同時接続の最大許容数、起動以降の累積総接続数)を実行したりできます。依存アイテムは、必要な各値を個別に解析して保存します。
この構成におけるベストプラクティスは、収集直後にマスターアイテムの履歴を破棄し、依存アイテムのデータのみを保持することです。
サーバーとプロキシ
すべてのホストがZabbixサーバーと同じローカルネットワーク内にあり、スケーラビリティやパフォーマンスに関する懸念がない場合は、プロキシは不要なことがあります。 より大規模または複雑な環境では、Zabbixサーバーでホストを直接監視するだけでは不十分な場合があります。 プロキシを追加し、ホストの一部をそのプロキシに割り当てることで、負荷をより均等に分散できます。
ベストプラクティスとして、次の場合はZabbixプロキシを追加します。
-
ファイアウォールの内側にある複数のホストを、さまざまなメトリクス収集方法を使用して監視している場合。 プロキシがホストからデータを収集してZabbixサーバーに転送するため、複数のファイアウォールポートを開放する必要性を減らせます。
-
リモート拠点、支店、またはネットワークを監視している場合。 Zabbixサーバーとリモート拠点の間でネットワーク障害が発生した場合でも、リモート拠点に配置されたZabbixプロキシは引き続きデータを収集し、ネットワーク接続が復旧すると収集済みデータをZabbixサーバーに送信します。
-
大規模な導入環境で、Zabbixサーバーの負荷を軽減し、パフォーマンスを向上させたい場合。 大規模な導入環境の定義は非常に幅広く、ホスト数だけでなく、1秒あたりに収集される値の数にも依存します。
シークレットマクロ
secret ユーザーマクロは、シークレットテキストまたはシークレットvaultマクロとして使用できます。
シークレットvaultマクロを使用する際のセキュリティを強化するには、マクロ値がZabbixサーバーおよびZabbixプロキシによって個別に取得されるように設定することを推奨します。デフォルトでは、シークレットマクロの値はZabbixサーバーによって取得され、Zabbixプロキシに伝播されます。