サーバが監視を開始可能になった後は、アクティブな Zabbix エージェントの自動登録が可能です。自動登録によって、サーバ上で手動で設定をしなくても新しいホストを監視対象として追加できます。
前に認知されていないアクティブエージェントがチェックを求めたときに、自動登録がおこなわれます。
この機能は、新しいクラウドのノードの自動監視にとってとても便利です。クラウド環境で新しいノードをもつと同時に、Zabbix が自動的にそのホストのパフォーマンスと可用性のデータの収集を開始します。
アクティブエージェントの自動登録は、パッシブチェックで追加されたホストの監視もサポートしています。アクティブエージェントがチェックを求めたとき、自動登録をおこなうと、設定ファイルで定義された「ListenIP」または「ListenPort」設定のパラメータをもつことになり、これらはサーバに送信されます。(複数のIPアドレスが指定されている場合は、最初のものがサーバに送信されます。)
新しい自動登録ホストを追加したとき、サーバは受信したIPアドレスとポート番号をエージェントの設定に使用します。IPアドレスの値が1つも受信されない場合は、接続に使用されたアドレスが使用されます。ポート番号が1つも受信されない場合は、10050が使用されます。
デフォルトのエージェントインターフェイスとしてDNS名を使用してホストを自動登録するように指定できます。
次の場合は自動登録が再実行されます。
エージェント設定ファイル - zabbix_agentd.conf でZabbixサーバーが識別されていることを確認してください
zabbix_agentd.confでホスト名を明確に定義しない限り、エージェントの場所のシステムホスト名がサーバーによってホストの命名に使用されます。 Linuxのシステムホスト名はhostnameコマンドを実行することで取得できます。
ホスト名がZabbixエージェント設定でホストのコンマ区切りリストとして定義されている場合、リストされているすべてのホスト名に対してホストが作成されます。
設定ファイル変更後、エージェントを再起動します。
サーバーは、エージェントから自動登録要求を受信すると、アクションを呼び出します。イベントソース"自動登録"のアクションは、エージェントの自動登録用に設定する必要があります。
ネットワーク検出を設定するために、アクティブなエージェントを自動登録する必要はありません。
Zabbixフロントエンドで、設定→アクションに移動し、イベントソースとして自動登録を選択して、アクションの作成をクリックします。
自動登録されるホスト(Zabbixサーバーからファイアウォールで保護されているホストなど)がアクティブモニタリングのみでサポートされる可能性が高い場合は、リンク用にTemplate_Linux-active等、特定のテンプレートを作成することをお勧めします。
作成されたホストはDiscovered hostsグループに追加されます。(デフォルトでは管理→一般→その他で設定可能です)ホストを別のグループに追加する場合は、ホストグループから削除操作(Discovered hostsを指定)を追加し、ホストグループに追加操作(Discovered hosts以外の別ホストグループを指定)も追加します。これは、ホストはホストグループに属している必要があるためです。
暗号化された接続を使用してPSKベース認証を設定することにより、安全な自動登録が可能になります。
暗号化レベルは、右側のドロップダウンからアクセスできる[自動登録]セクションの[管理]→一般*でグローバルに設定でき、暗号化なし、PSK認証を使用したTLS暗号化、またはその両方を選択できます。(一部のホストは暗号化なしで登録、他のホストは暗号化を介して登録などもできます)
PSKによる認証は、ホストを追加する前にZabbixサーバーによって検証されます。検証が成功すると、ホストが追加され、ホスト から/へ 接続がグローバル自動登録設定と同じID/事前共有キーでのみPSKに設定されます。
プロキシ経由での自動登録のセキュリティを確保するには、Zabbixサーバーとプロキシ間の暗号化を有効にする必要があります。
HostInterfaceおよびHostInterfaceItemパラメーターを使用すると、自動登録にホストインターフェイスのカスタム値を指定できます。
具体的には、ホストをIPアドレスではなくデフォルトのエージェントインターフェイスとしてDNS名で自動登録する必要がある場合に役立ちます。その場合、DNS名はHostInterfaceまたはHostInterfaceItemどちらかのパラメーターの値として指定または返される必要があります。2つのパラメータのいずれかの値が変更されると、自動登録されたホストインターフェイスが更新されることに注意してください。上記からデフォルトのインターフェースを別のDNS名に変更したり、IPアドレスに変更したりすることもできます。ただし、変更を有効にするには、エージェントを再起動する必要があります。
エージェントがサーバーに自動登録要求を送信すると、エージェントはホスト名も送信しますが、場合によっては(たとえばAmazonクラウドノード)ホスト名はZabbixサーバーが検出されたホストを区別するのに十分では無いこともあります。オプションでホストメタデータを使用してエージェントからサーバーに他の情報を送信することもできます。
ホストメタデータはエージェント設定ファイル - zabbix_agentd.confで設定されます。ホストメタデータの指定箇所は方法は2つあります。
上記リンクのオプションの説明を参照してください。
自動登録の試行は、アクティブエージェントがアクティブチェックの更新要求をサーバーに送信するたびに発生します。リクエスト間の遅延は、エージェントのRefreshActiveChecksパラメーターで指定されます。最初の要求は、エージェントが再起動された直後に送信されます。
ホストメタデータを使用してLinuxホストとWindowsホストを区別します。
ホストをZabbixサーバーによって自動登録したいとします。 ネットワーク上にアクティブなZabbixエージェント(上記の"設定"セクションを参照)があります。 ネットワーク上にWindowsホストとLinuxホストがあり、Zabbixフロントエンドで"Linux by Zabbix agent"と"Windows by Zabbix agent"のテンプレートを使用したいとします。 その場合、ホストの登録時に適切なLinux/Windowsテンプレートを適用する必要があります。 デフォルトでは、自動登録時にホスト名のみがサーバーに送信されますが、これでは不十分な場合があります。 適切なテンプレートがホストに適用されていることを確認するには、ホストメタデータを使用する必要があります。
最初に行うことはフロントエンドを構成することです。今回は2つのアクションを作成します。
まず
この場合は「ホストの追加」操作をスキップできます。本来テンプレートにリンクするには、サーバーが自動的にそれを行うように、最初にホストを追加する必要があります。
次に
次にエージェントを設定する必要があります。次の行をエージェント設定ファイルに追加します。
このようにしてエージェントが実行されているホストに応じて、ホストメタデータに"Linux"または"Windows"が含まれるようにします。この場合のホストメタデータの例は以下です。
Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32設定ファイル変更後、エージェントの再起動を忘れないでください。
ステップ 1
ホストメタデータを使用して、不要ホストの登録回避を可能にします。
推測しにくい秘密のコードを使用してフロントエンドでアクションを作成し、不要なホストを禁止します。
* Type of calculation: AND
* Condition (A): Host metadata contains //Linux//
* Condition (B): Host metadata contains //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
* Operations:
* Send message to users: Admin via all media
* Add to host groups: Linux servers
* Link to templates: Linuxデータはプレーンテキストで送信されるため、この方法だけでは強力な保護は提供されないことに注意してください。変更をすぐに有効にするには、設定キャッシュのリロードが必要です。
Frontend configuration
Create an action in the frontend, using some hard-to-guess secret code to disallow unwanted hosts:
Please note that this method alone does not provide strong protection because data is transmitted in plain text. Configuration cache reload is required for changes to have an immediate effect.
次の行をエージェント構成ファイルに追加します。
ここでの"Linux"はプラットフォームであり、文字列の残りの部分は推測しにくい秘密のテキストです。
設定ファイル変更後は、エージェントを再起動することを忘れないでください。
ステップ 2
すでに登録されているホストの監視を追加することができます。
Step 2 - Add template to registered host
It is possible to add additional templates for an already registered host. In this case the MySQL by Zabbix agent template will be linked only to hosts whose HostMetadata contains the token MySQL.
フロントエンドのアクションを更新します。
* Type of calculation: AND
* Condition (A): Host metadata contains Linux
* Condition (B): Host metadata contains 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
* Operations:
* Send message to users: Admin via all media
* Add to host groups: Linux servers
* Link to templates: Linux
* Link to templates: MySQL by Zabbix Agentエージェント構成ファイルの次の行を更新します。
設定ファイル変更後は、エージェントの再起動を忘れないでください。