アクティブZabbixエージェントの自動登録を許可することができ、その後サーバーはそれらの監視を開始できます。この方法では、新しいホストをサーバー上で手動で設定することなく監視に追加できます。
自動登録は、以前に知られていなかったアクティブエージェントがチェックを要求したときに発生する可能性があります。
この機能は、新しいクラウドノードの自動監視に非常に便利です。クラウドに新しいノードが追加されると、Zabbixは自動的にそのホストのパフォーマンスおよび可用性データの収集を開始します。
アクティブエージェントの自動登録は、パッシブチェックによる追加ホストの監視もサポートしています。アクティブエージェントがチェックを要求する際、設定ファイルで「ListenIP」または「ListenPort」構成パラメータが定義されていれば、それらもサーバーに送信されます。 (複数のIPアドレスが指定されている場合は、最初のものがサーバーに送信されます。)
サーバーは、新しく自動登録されたホストを追加する際、受信したIPアドレスとポートを使用してエージェントを設定します。IPアドレス値が受信されない場合は、着信接続に使用されたものが使用されます。ポート値が受信されない場合は、10050が使用されます。
ホストがDNS名でデフォルトのエージェントインターフェースとして自動登録されるように指定することも可能です。
自動登録は以下の場合に再実行されます:
ZabbixサーバーおよびZabbixプロキシのアクティブエージェント自動登録のハートビートは120秒です。そのため、検出されたホストが削除された場合、自動登録は120秒後に再実行されます。
エージェント設定ファイル - zabbix_agentd.conf でZabbixサーバーが識別されていることを確認してください
zabbix_agentd.confでホスト名を明確に定義しない限り、エージェントの場所のシステムホスト名がサーバーによってホストの命名に使用されます。 Linuxのシステムホスト名はhostnameコマンドを実行することで取得できます。
ホスト名がZabbixエージェント設定でホストのコンマ区切りリストとして定義されている場合、リストされているすべてのホスト名に対してホストが作成されます。
設定ファイル変更後、エージェントを再起動します。
サーバーがエージェントから自動登録リクエストを受信すると、アクションを呼び出します。エージェントの自動登録には、イベントソース「自動登録」のアクションを設定する必要があります。
アクティブエージェントを自動登録するためにネットワークディスカバリを設定する必要はありません。
Zabbixフロントエンドで、アラート → アクションに移動し、自動登録アクションを選択してアクションの作成をクリックします:
自動登録されるホストがアクティブ監視専用でサポートされる可能性が高い場合(たとえば、Zabbixサーバーからファイアウォールで保護されているホストなど)、Template_Linux-activeのような特定のテンプレートを作成してリンクすることを検討してください。
作成されたホストは検出されたホストグループに追加されます(デフォルト、管理 → 一般 → その他で設定可能)。ホストを別のグループに追加したい場合は、ホストグループから削除オペレーション(「検出されたホスト」を指定)とホストグループへの追加オペレーション(別のホストグループを指定)を追加してください。ホストは必ずホストグループに所属する必要があります。
暗号化された接続でPSKベースの認証を設定することで、自動登録をセキュアに行うことができます。
暗号化のレベルは、管理 → 一般 → 自動登録 でグローバルに設定します。 暗号化なし、PSK認証によるTLS暗号化、または両方を選択できます(暗号化なしで登録するホストと、暗号化で登録するホストの両方を許可できます)。
PSKによる認証は、ホストを追加する前にZabbixサーバーによって検証されます。 認証に成功すると、ホストが追加され、ホストから/への接続 はグローバルな自動登録設定と同じID/事前共有キーで「PSK」のみに設定されます。
プロキシを使用するインストールで自動登録のセキュリティを確保するには、Zabbixサーバーとプロキシ間の暗号化を有効にする必要があります。
HostInterfaceおよびHostInterfaceItem設定パラメータを使用すると、自動登録時にホストインターフェースのカスタム値を指定できます。
より具体的には、ホストをIPアドレスではなくDNS名をデフォルトのエージェントインターフェースとして自動登録したい場合に便利です。 その場合、DNS名をHostInterfaceまたはHostInterfaceItemパラメータの値として指定または返す必要があります。 これらのパラメータのいずれかの値が変更された場合(たとえば、IPアドレスからDNS名、またはその逆)、自動登録されたホストのデフォルトインターフェースもそれに応じて更新されます。 この更新は既存のホストに適用され、新しいホストが作成されるわけではありません。 新しい値を送信するには、エージェントを再起動して自動登録プロセスを再実行する必要があります。
HostInterfaceまたはHostInterfaceItemパラメータが設定されていない場合は、代わりにlisten_dnsパラメータが使用されます。 この値は、エージェントのIPアドレスの逆引きDNSルックアップを実行することで決定されます。 逆引きDNSが正しく設定されていない場合や無効な名前を返す場合、無効なインターフェース値が原因で自動登録が正しく行われない、または失敗する可能性があります。
エージェントがサーバーに自動登録リクエストを送信する際、ホスト名を送信します。場合によっては(例えば、Amazonクラウドノードなど)、Zabbixサーバーが検出したホストを区別するためにはホスト名だけでは不十分です。ホストメタデータを使用することで、エージェントからサーバーに他の情報を送信することができます。
ホストメタデータは、エージェントの設定ファイル(zabbix_agentd.conf)で設定します。設定ファイルでホストメタデータを指定する方法は2つあります。
各オプションの説明については、上記リンクを参照してください。
HostMetadataItemパラメータは最大65535のUTF-8コードポイントを返すことができます。これより長い値は切り捨てられます。
MySQLの場合、返される値にマルチバイト文字が含まれていると、実際の最大文字数は少なくなります。例えば、3バイト文字のみを含む値の場合、最大21844文字、4バイト文字のみを含む値の場合は最大16383文字に制限されます。
自動登録の試行は、アクティブエージェントがアクティブチェックの更新リクエストをサーバーに送信するたびに行われます。リクエスト間の遅延は、エージェントのRefreshActiveChecksパラメータで指定します。最初のリクエストは、エージェントの再起動直後に送信されます。
ホストメタデータを使用してLinuxホストとWindowsホストを区別します。
ホストをZabbixサーバーによって自動登録したいとします。 ネットワーク上にアクティブなZabbixエージェント(上記の"設定"セクションを参照)があります。 ネットワーク上にWindowsホストとLinuxホストがあり、Zabbixフロントエンドで"Linux by Zabbix agent"と"Windows by Zabbix agent"のテンプレートを使用したいとします。 その場合、ホストの登録時に適切なLinux/Windowsテンプレートを適用する必要があります。 デフォルトでは、自動登録時にホスト名のみがサーバーに送信されますが、これでは不十分な場合があります。 適切なテンプレートがホストに適用されていることを確認するには、ホストメタデータを使用する必要があります。
フロントエンドの設定
最初に行うべきことは、フロントエンドの設定です。2つのアクションを作成します。 最初のアクション:
この場合、「ホストの追加」操作は省略できます。テンプレートをホストにリンクするには、最初にホストを追加する必要があるため、サーバーが自動的にそれを行います。
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
ホストメタデータを使用して、不要なホストの登録に対する基本的な保護を行います。
フロントエンドの設定
フロントエンドでアクションを作成し、推測しにくいシークレットコードを使用して不要なホストを拒否します。
この方法だけではデータが平文で送信されるため、強力な保護は提供されないことに注意してください。変更を即座に反映させるには、設定キャッシュのリロードが必要です。
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.
フロントエンドの設定
フロントエンドでアクションを更新します:
エージェントの設定
エージェントの設定ファイルの次の行を更新します。
設定ファイルを変更した後は、エージェントの再起動を忘れないでください。