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 die für die eingehende Verbindung verwendete Adresse genutzt. Wenn kein Portwert empfangen wird, wird 10050 verwendet.
Es ist möglich anzugeben, 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 Metadaten-Informationen des Hosts ändern:
- weil sich HostMetadata geändert hat 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 der Zabbix Server in der Konfigurationsdatei des Agenten - zabbix_agentd.conf - angegeben ist:
ServerActive=10.0.0.1
Sofern Sie in zabbix_agentd.conf nicht ausdrücklich einen Hostname definieren, wird der System-Hostname des Standorts des Agenten vom Server zur Benennung des Hosts verwendet.
Der System-Hostname unter Linux kann mit dem Befehl hostname ermittelt werden.
Wenn Hostname in der Konfiguration des Zabbix Agenten als durch Kommas getrennte Liste von Hosts definiert ist, werden für alle aufgeführten Hostnamen Hosts erstellt.
Starten Sie den Agenten nach allen Änderungen an der Konfigurationsdatei neu.
Aktion für die Autoregistrierung aktiver Agenten
Wenn der Server eine Autoregistrierungsanforderung von einem Agent empfängt, ruft er eine Aktion auf.
Für die Autoregistrierung von Agenten muss eine Aktion mit der Ereignisquelle "Autoregistration" konfiguriert werden.
Das Einrichten von Netzwerkerkennung ist nicht erforderlich, damit sich aktive Agenten automatisch registrieren.
Gehen Sie im Zabbix-Frontend zu Alerts → Actions, wählen Sie Autoregistration actions und klicken Sie auf Create action:
- Geben Sie auf der Registerkarte Action Ihrer Aktion einen Namen.
- Optional können Sie Bedingungen angeben.
Sie können in den Bedingungen für Hostname/Host-Metadaten eine Teilzeichenfolgen- oder reguläre Ausdrucksübereinstimmung verwenden.
Wenn Sie die Bedingung "Host metadata" verwenden möchten, lesen Sie den nächsten Abschnitt. - Fügen Sie auf der Registerkarte Operations die relevanten Operationen hinzu, z. B. 'Add host', 'Add to host group' (zum Beispiel Discovered hosts), 'Link templates' usw.
Wenn die Hosts, die sich automatisch registrieren, wahrscheinlich nur für aktives Monitoring unterstützt werden (z. B. Hosts, die durch eine Firewall vom Zabbix-Server getrennt sind), sollten Sie möglicherweise eine spezielle Vorlage wie Template_Linux-active erstellen, mit der verknüpft werden kann.
Erstellte Hosts werden der Gruppe Discovered hosts hinzugefügt (standardmäßig, konfigurierbar unter Administration > General > Other).
Wenn Sie möchten, dass Hosts einer anderen Gruppe hinzugefügt werden, fügen Sie eine Operation Remove from host group hinzu (mit Angabe von "Discovered hosts") und zusätzlich eine Operation Add to host group (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.
Verwendung von DNS als Standard-Schnittstelle
HostInterface und HostInterfaceItem Konfigurationsparameter ermöglichen es, während der automatischen Registrierung einen benutzerdefinierten Wert für die Host-Schnittstelle anzugeben.
Genauer gesagt sind sie nützlich, wenn der Host mit einem DNS-Namen als standardmäßiger Agent-Schnittstelle statt mit seiner IP-Adresse automatisch registriert werden soll. In diesem Fall sollte der DNS-Name als Wert von entweder HostInterface oder HostInterfaceItem angegeben oder zurückgegeben werden. Wenn sich der Wert eines dieser Parameter ändert - beispielsweise von einer IP-Adresse zu einem DNS-Namen oder umgekehrt - wird die Standard-Schnittstelle des automatisch registrierten Hosts entsprechend aktualisiert. Diese Aktualisierung wird auf den vorhandenen Host angewendet und nicht durch das Erstellen eines neuen Hosts. 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 umgekehrte DNS-Abfrage der IP-Adresse des Agent 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 nicht aus, damit der Zabbix-Server erkannte Hosts unterscheiden kann. 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
Die Beschreibung der Optionen finden Sie über den obigen Link.
Der Parameter HostMetadataItem kann bis zu 65535 UTF-8-Codepoints zurückgeben. Ein längerer Wert wird abgeschnitten.
Beachten Sie, dass unter MySQL die effektive maximale Länge in Zeichen geringer ist, wenn der zurückgegebene Wert mehrbyteige Zeichen enthält. Ein Wert, der nur 3-Byte-Zeichen enthält, ist beispielsweise insgesamt auf 21844 Zeichen begrenzt, während ein Wert, der nur 4-Byte-Zeichen enthält, auf 16383 Symbole begrenzt ist.
Ein Autoregistrierungsversuch erfolgt jedes Mal, wenn ein aktiver Agent eine Anfrage zum Aktualisieren aktiver Prüfungen an den Server sendet. 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.