Aktive Agent-Autoregistrierung
Übersicht
Es ist möglich, die automatische Registrierung aktiver Zabbix Agenten zuzulassen, woraufhin der Server mit deren Ü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 nach Prüfungen fragt.
Diese Funktion kann für die automatische Überwachung neuer Cloud-Knoten sehr nützlich sein. Sobald Sie einen neuen Knoten in der Zabbix 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 nach Prüfungen fragt und die Konfigurationsparameter ListenIP oder ListenPort in der Konfigurationsdatei definiert sind, werden diese an den Server übermittelt.
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 Agenten 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 standardmäßiger Agent-Schnittstelle automatisch registriert werden soll.
Die automatische Registrierung wird erneut ausgeführt:
- wenn sich die Host-Metadaten ändern:
- aufgrund einer Änderung von HostMetadata und eines Neustarts des Agenten
- aufgrund einer Änderung des von HostMetadataItem zurückgegebenen Werts
- 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 für die automatische Registrierung aktiver Agenten für Zabbix Server und Zabbix Proxy beträgt 120 Sekunden. Falls also ein erkannter 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 automatische Registrierung aktiver Agenten
Wenn der Server eine Anfrage zur automatischen Registrierung von einem Agenten erhält, ruft er eine Aktion auf. Für die automatische Registrierung von Agenten muss eine Aktion mit der Ereignisquelle „Autoregistrierung“ konfiguriert werden.
Das Einrichten der Netzwerkerkennung ist nicht erforderlich, damit sich aktive Agenten automatisch registrieren.
Im Zabbix Frontend:
- Gehen Sie zu Alerts > Actions.
- Wählen Sie Autoregistration actions.
- Klicken Sie auf Create action.
- Geben Sie auf der Registerkarte Action einen Namen für Ihre Aktion ein.
- Geben Sie optional Bedingungen an. In den Bedingungen für Hostnamen/Host-Metadaten können Sie eine Teilzeichenfolgen- oder reguläre Übereinstimmung verwenden. Wenn Sie den Bedingungstyp Host metadata verwenden möchten, lesen Sie Host-Metadaten verwenden.
- Fügen Sie auf der Registerkarte Operations relevante Vorgänge hinzu, z. B. Add host, Add to host group (beispielsweise Discovered hosts), Link templates usw.
Wenn die Hosts, die automatisch registriert werden, voraussichtlich nur für die aktive Überwachung 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 erstellen, mit der sie verknüpft werden.
Erstellte Hosts werden der Gruppe Discovered hosts hinzugefügt (standardmäßig konfigurierbar unter Administration > General > Other). Wenn Hosts einer anderen Gruppe hinzugefügt werden sollen, fügen Sie einen Vorgang Remove from host group (mit Angabe von „Discovered hosts“) und zusätzlich einen Vorgang Add to host group (mit Angabe einer anderen Hostgruppe) hinzu, da ein Host einer Hostgruppe angehören muss.
Sichere automatische Registrierung
Eine sichere automatische Registrierung ist möglich, indem eine PSK-basierte Authentifizierung mit verschlüsselten Verbindungen konfiguriert wird.
Die Verschlüsselungsstufe wird global unter Administration > Allgemein > Automatische Registrierung konfiguriert. Es kann keine Verschlüsselung, TLS-Verschlüsselung mit PSK-Authentifizierung oder beides ausgewählt werden (sodass sich einige Hosts ohne Verschlüsselung registrieren können, während andere eine verschlüsselte Verbindung verwenden).
Die PSK-Authentifizierung wird vom Zabbix Server überprüft, bevor ein Host hinzugefügt wird. Bei erfolgreicher Überprüfung wird der Host hinzugefügt und Verbindungen vom/zum Host werden ausschließlich auf „PSK“ gesetzt, wobei Identität und vorab gemeinsam genutzter Schlüssel mit den Werten der globalen Einstellung für die automatische Registrierung übereinstimmen.
Um die Sicherheit der automatischen Registrierung 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.