2 Aktive Agent-Autoregistrierung

Übersicht

Es ist möglich, die automatische Registrierung aktiver Zabbix-Agenten zu erlauben, woraufhin der Server mit ihrer Überwachung beginnen kann. Auf diese Weise können neue Hosts zur Überwachung hinzugefügt werden, ohne sie manuell auf dem Server zu konfigurieren.

Die automatische Registrierung kann erfolgen, wenn ein zuvor unbekannter aktiver Agent Prüfungen anfordert.

Diese Funktion kann für die automatische Überwachung neuer Cloud-Knoten sehr nützlich sein. Sobald Sie einen neuen Knoten in der Cloud haben, beginnt Zabbix automatisch mit der Erfassung von Leistungs- und Verfügbarkeitsdaten des Hosts.

Die automatische Registrierung aktiver Agenten unterstützt auch die Überwachung hinzugefügter Hosts mit passiven Prüfungen. Wenn der aktive Agent Prüfungen anfordert und in seiner Konfigurationsdatei die Konfigurationsparameter ListenIP oder ListenPort definiert sind, werden diese ebenfalls an den Server gesendet. Wenn mehrere IP-Adressen angegeben sind, wird die erste an den Server gesendet.

Der Server verwendet beim Hinzufügen des neu automatisch registrierten Hosts die empfangene IP-Adresse und den Port, um den Agent zu konfigurieren. Wenn kein IP-Adresswert empfangen wird, wird der für die eingehende Verbindung verwendete Wert genutzt. Wenn kein Portwert empfangen wird, wird 10050 verwendet.

Es ist möglich festzulegen, dass der Host mit einem DNS-Namen als Standard-Agent-Schnittstelle automatisch registriert werden soll.

Die automatische Registrierung wird erneut ausgeführt:

  • wenn sich die Informationen zu den Host-Metadaten ändern:
    • weil HostMetadata geändert und der Agent neu gestartet wurde
    • weil sich der von HostMetadataItem zurückgegebene Wert geändert hat
  • für manuell erstellte Hosts, bei denen Metadaten fehlen
  • wenn ein Host manuell so geändert wird, dass er von einem anderen Zabbix-Proxy überwacht wird
  • wenn die automatische Registrierung für denselben Host von einem neuen Zabbix-Proxy kommt

Der Heartbeat der automatischen Registrierung aktiver Agenten für Zabbix Server und Zabbix Proxy beträgt 120 Sekunden. Falls also ein entdeckter Host gelöscht wird, wird die automatische Registrierung nach 120 Sekunden erneut ausgeführt.

Konfiguration

Server angeben

Stellen Sie sicher, dass Sie den Zabbix Server in der Agent-Konfigurationsdatei - zabbix_agentd.conf - angegeben haben:

ServerActive=10.0.0.1

Sofern Sie in zabbix_agentd.conf nicht ausdrücklich einen Hostname definieren, verwendet der Server den System-Hostnamen des Standorts des Agent zur Benennung des Host. Den System-Hostnamen unter Linux können Sie mit dem Befehl hostname ermitteln.

Wenn Hostname in der Zabbix-Agent-Konfiguration als kommagetrennte Liste von Hosts definiert ist, werden Hosts für alle aufgeführten Hostnamen erstellt.

Starten Sie den Agent nach allen Änderungen an der Konfigurationsdatei neu.

Aktion für die aktive Agent-Autoregistrierung

Wenn der Server eine Autoregistrierungsanfrage von einem Agent empfängt, ruft er eine Aktion auf. Für die Agent-Autoregistrierung muss eine Aktion mit der Ereignisquelle „Autoregistrierung“ konfiguriert werden.

Die Einrichtung der Netzwerkerkennung ist nicht erforderlich, damit sich aktive Agents automatisch registrieren.

Gehen Sie im Zabbix Frontend zu Benachrichtigungen → Aktionen, wählen Sie Autoregistrierungsaktionen aus und klicken Sie auf Aktion erstellen:

  • Geben Sie im Reiter „Aktion“ Ihrer Aktion einen Namen.
  • Geben Sie optional Bedingungen an. Sie können in den Bedingungen eine Teilzeichenfolgenübereinstimmung oder einen regulären Ausdruck für Hostname/Host-Metadaten verwenden. Wenn Sie die Bedingung „Host-Metadaten“ verwenden möchten, lesen Sie den nächsten Abschnitt.
  • Fügen Sie im Reiter „Operationen“ die entsprechenden Operationen hinzu, z. B. „Host hinzufügen“, „Zu Hostgruppe hinzufügen“ (zum Beispiel Discovered hosts), „Vorlagen verknüpfen“ usw.

Wenn die Hosts, die automatisch registriert werden, voraussichtlich nur für aktives Monitoring unterstützt werden (z. B. Hosts, die durch eine Firewall von Ihrem Zabbix Server getrennt sind), sollten Sie möglicherweise eine spezielle Vorlage wie Template_Linux-active zum Verknüpfen erstellen.

Erstellte Hosts werden zur Gruppe Discovered hosts hinzugefügt (standardmäßig, konfigurierbar unter Administration > Allgemein > Andere). Wenn Sie möchten, dass Hosts zu einer anderen Gruppe hinzugefügt werden, fügen Sie eine Operation Aus Hostgruppe entfernen hinzu (mit Angabe von „Discovered hosts“) und zusätzlich eine Operation Zu Hostgruppe hinzufügen (mit Angabe einer anderen Hostgruppe), da ein Host zu einer Hostgruppe gehören muss.

Sichere Autoregistrierung

Eine sichere Methode der Autoregistrierung ist durch die Konfiguration einer PSK-basierten Authentifizierung mit verschlüsselten Verbindungen möglich.

Die Verschlüsselungsstufe wird global unter Administration > General > Autoregistration konfiguriert. Es ist möglich, keine Verschlüsselung, TLS-Verschlüsselung mit PSK-Authentifizierung oder beides auszuwählen (sodass sich einige Hosts ohne Verschlüsselung registrieren können, während andere über Verschlüsselung registriert werden).

Die Authentifizierung per PSK wird vom Zabbix Server überprüft, bevor ein Host hinzugefügt wird. Bei erfolgreicher Prüfung wird der Host hinzugefügt und Connections from/to host werden ausschließlich auf 'PSK' gesetzt, wobei Identität/Pre-shared Key mit den globalen Einstellungen für die Autoregistrierung übereinstimmen.

Um die Sicherheit der Autoregistrierung in Installationen mit Proxys zu gewährleisten, sollte die Verschlüsselung zwischen Zabbix Server und Proxy aktiviert werden.

DNS als Standardschnittstelle verwenden

Mit den Konfigurationsparametern HostInterface und HostInterfaceItem kann während der automatischen Registrierung ein benutzerdefinierter Wert für die Host-Schnittstelle angegeben werden.

Genauer gesagt sind sie nützlich, wenn der Host bei der automatischen Registrierung mit einem DNS-Namen als Standard-Agent-Schnittstelle statt mit seiner IP-Adresse registriert werden soll. In diesem Fall sollte der DNS-Name als Wert des Parameters HostInterface oder HostInterfaceItem angegeben oder zurückgegeben werden. Wenn sich der Wert eines dieser Parameter ändert – zum Beispiel von einer IP-Adresse zu einem DNS-Namen oder umgekehrt –, wird die Standardschnittstelle des automatisch registrierten Hosts entsprechend aktualisiert. Diese Aktualisierung wird auf den bestehenden Host angewendet, ohne einen neuen zu erstellen. Um den neuen Wert zu senden, muss der Agent neu gestartet werden, damit er den Prozess der automatischen Registrierung erneut initiiert.

Wenn die Parameter HostInterface oder HostInterfaceItem nicht konfiguriert sind, wird stattdessen der Parameter listen_dns verwendet. Dieser Wert wird durch eine Reverse-DNS-Abfrage der IP-Adresse des Agenten ermittelt. Wenn Reverse DNS nicht korrekt konfiguriert ist oder einen ungültigen Namen zurückgibt, kann dies aufgrund eines ungültigen Schnittstellenwerts zu einer fehlerhaften oder fehlgeschlagenen automatischen Registrierung führen.

Verwendung von Host-Metadaten

Wenn der Agent eine Autoregistrierungsanfrage an den Server sendet, übermittelt er seinen Hostnamen. In einigen Fällen (zum Beispiel bei Amazon-Cloud-Knoten) reicht ein Hostname für den Zabbix Server nicht aus, um entdeckte Hosts zu unterscheiden. Host-Metadaten können optional verwendet werden, um weitere Informationen von einem Agent an den Server zu senden.

Host-Metadaten werden in der Konfigurationsdatei des Agent konfiguriert – zabbix_agentd.conf. Es gibt 2 Möglichkeiten, Host-Metadaten in der Konfigurationsdatei anzugeben:

HostMetadata
HostMetadataItem

Siehe die Beschreibung der Optionen im obigen Link.

Der Parameter HostMetadataItem kann bis zu 65535 UTF-8-Codepunkte zurückgeben. Ein längerer Wert wird abgeschnitten.

Beachten Sie, dass unter MySQL die tatsächlich maximale Länge in Zeichen geringer ist, wenn der zurückgegebene Wert Multibyte-Zeichen enthält. Beispielsweise ist ein Wert, der nur 3-Byte-Zeichen enthält, insgesamt auf 21844 Zeichen begrenzt, während ein Wert, der nur 4-Byte-Zeichen enthält, insgesamt auf 16383 Symbole begrenzt ist.

Ein Autoregistrierungsversuch erfolgt jedes Mal, wenn ein aktiver Agent eine Anfrage an den Server sendet, um aktive Prüfungen zu aktualisieren. Die Verzögerung zwischen den Anfragen wird im Parameter RefreshActiveChecks des Agent angegeben. Die erste Anfrage wird unmittelbar nach dem Neustart des Agent gesendet.

Beispiele

Automatische Registrierung nach Betriebssystem mit HostMetadata

Angenommen, Sie möchten, dass die Hosts durch den Zabbix Server automatisch registriert werden. In Ihrem Netzwerk sind aktive Zabbix Agents vorhanden (siehe Abschnitt „Konfiguration“ oben). In Ihrem Netzwerk gibt es Windows-Hosts und Linux-Hosts, und in Ihrem Zabbix Frontend sind die Vorlagen „Linux by Zabbix agent“ und „Windows by Zabbix agent“ verfügbar. Bei der Host-Registrierung soll also die passende Linux-/Windows-Vorlage auf den registrierten Host angewendet werden. Standardmäßig wird bei der automatischen Registrierung nur der Hostname an den Server gesendet, was möglicherweise nicht ausreicht. Um sicherzustellen, dass die richtige Vorlage auf den Host angewendet wird, sollten Sie Host-Metadaten verwenden.

Frontend-Konfiguration

Als Erstes ist das Frontend zu konfigurieren. Erstellen Sie 2 Aktionen. Die erste Aktion:

  • Name: Linux-Host-Autoregistrierung
  • Bedingungen: Host-Metadaten enthalten Linux
  • Operationen: Vorlagen verknüpfen: Linux by Zabbix Agent

In diesem Fall können Sie die Operation „Host hinzufügen“ überspringen. Zum Verknüpfen einer Vorlage mit einem Host muss der Host zuerst hinzugefügt werden, daher übernimmt der Server dies automatisch.

Die zweite Aktion:

  • Name: Windows-Host-Autoregistrierung
  • Bedingungen: Host-Metadaten enthalten Windows
  • Operationen: Vorlagen verknüpfen: Windows by Zabbix Agent

Agent-Konfiguration

Nun müssen Sie die Agenten konfigurieren. Fügen Sie die folgende Zeile zu den Agent-Konfigurationsdateien hinzu:

HostMetadataItem=system.uname

Auf diese Weise stellen Sie sicher, dass die Host-Metadaten je nach Host, auf dem ein Agent ausgeführt wird, „Linux“ oder „Windows“ enthalten. Ein Beispiel für Host-Metadaten in diesem Fall:

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

Vergessen Sie nicht, den Agent nach Änderungen an der Konfigurationsdatei neu zu starten.

Verwendung von HostMetadata zur Steuerung der automatischen Registrierung und von Vorlagen

Schritt 1 - Registrierung mit HostMetadata schützen

Verwenden Sie Host-Metadaten, um einen grundlegenden Schutz gegen die Registrierung unerwünschter Hosts zu ermöglichen.

Frontend-Konfiguration

Erstellen Sie im Frontend eine Aktion und verwenden Sie dabei einen schwer zu erratenden geheimen Code, um unerwünschte Hosts auszuschließen:

  • Name: Autoregistrierungsaktion Linux
  • Bedingungen:
    • Berechnungstyp: UND
    • Bedingung (A): Host-Metadaten enthalten //Linux//
    • Bedingung (B): Host-Metadaten enthalten //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
  • Operationen:
    • Nachricht an Benutzer senden: Admin über alle Medien
    • Zu Host-Gruppen hinzufügen: Linux-Server
    • Vorlagen verknüpfen: Linux by Zabbix agent

Bitte beachten Sie, dass diese Methode allein keinen starken Schutz bietet, da Daten im Klartext übertragen werden. Damit Änderungen sofort wirksam werden, ist ein Neuladen des Konfigurationscaches erforderlich.

Agent-Konfiguration

Fügen Sie die folgende Zeile zur Agent-Konfigurationsdatei hinzu:

HostMetadata=Linux    21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

wobei „Linux“ eine Plattform ist und der Rest der Zeichenfolge der schwer zu erratende geheime Text ist.

Vergessen Sie nicht, den Agent nach Änderungen an der Konfigurationsdatei neu zu starten.

Schritt 2 - Vorlage zu registriertem Host hinzufügen

Es ist möglich, zusätzliche Vorlagen für einen bereits registrierten Host hinzuzufügen. In diesem Fall wird die Vorlage MySQL by Zabbix agent nur mit Hosts verknüpft, deren HostMetadata das Token MySQL enthält.

Frontend-Konfiguration

Aktualisieren Sie die Aktion im Frontend:

  • Name: Autoregistrierungsaktion Linux
  • Bedingungen:
    • Berechnungstyp: UND
    • Bedingung (A): Host-Metadaten enthalten Linux
    • Bedingung (B): Host-Metadaten enthalten 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
    • Bedingung (C): Host-Metadaten enthalten MySQL
  • Operationen:
    • Nachricht an Benutzer senden: Admin über alle Medien
    • Zu Host-Gruppen hinzufügen: Linux-Server
    • Vorlagen verknüpfen: Linux by Zabbix agent
    • Vorlagen verknüpfen: MySQL by Zabbix Agent

Agent-Konfiguration

Aktualisieren Sie die folgende Zeile in der Agent-Konfigurationsdatei:

HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

Vergessen Sie nicht, den Agent nach Änderungen an der Konfigurationsdatei neu zu starten.