1 Netzwerk-Erkennung
Überblick
Zabbix bietet eine automatische Netzwerkerkennung, die effektiv und sehr flexibel ist.
Bei korrekt eingerichteter Netzwerkerkennung können Sie:
- die Bereitstellung von Zabbix beschleunigen.
- die Administration vereinfachen.
- Zabbix in sich schnell ändernden Umgebungen ohne übermäßigen Verwaltungsaufwand einsetzen.
Die Zabbix-Netzwerkerkennung basiert auf den folgenden Informationen:
- IP-Bereiche
- Verfügbarkeit externer Dienste (FTP, SSH, WEB, POP3, IMAP, TCP usw.)
- Informationen, die vom Zabbix Agent empfangen werden (nur unverschlüsselter Modus wird unterstützt)
- Informationen, die vom SNMP-Agent empfangen werden
Sie bietet KEINE Erkennung der Netzwerktopologie.
Die Netzwerkerkennung besteht im Wesentlichen aus zwei Phasen: Erkennung und Aktionen.
Discovery
Zabbix durchsucht regelmäßig die in den Netzwerk-Discovery-Regeln definierten IP-Bereiche. Die Häufigkeit der Prüfung ist für jede Regel individuell konfigurierbar.
Jede Regel verfügt über einen Satz definierter Dienstprüfungen, die für den IP-Bereich ausgeführt werden.
Discovery-Regeln werden vom Discovery-Manager verarbeitet. Der Discovery-Manager erstellt für jede Regel einen Job mit einer Liste von Aufgaben (Netzwerkprüfungen). Netzwerkprüfungen werden parallel von den verfügbaren Discovery-Workern ausgeführt (die Anzahl ist im Frontend pro Regel konfigurierbar). Die Ausnahme sind SNMPv3-Prüfungen, die von einem einzelnen Worker verarbeitet werden. Nur Prüfungen mit derselben IP und demselben Port werden sequenziell geplant, da einige Geräte keine parallelen Verbindungen über denselben Port akzeptieren.
Die Größe der Warteschlange für Netzwerkprüfungen ist auf 2000000 oder ungefähr 4 GB Speicher begrenzt.
Wenn die Warteschlange voll wird, wird die Discovery-Regel übersprungen und eine Warnmeldung im Log ausgegeben.
Sie können das interne Datenpunkt zabbix[discovery_queue] verwenden, um die Anzahl der Discovery-Prüfungen in der Warteschlange zu überwachen.
Discovery-Prüfungen werden unabhängig von den anderen Prüfungen verarbeitet. Wenn bei einer Prüfung kein Dienst gefunden wird (oder sie fehlschlägt), werden die anderen Prüfungen dennoch verarbeitet.
Wenn eine Discovery-Regel während der Ausführung geändert wird, wird die aktuelle Discovery-Ausführung abgebrochen.
Jede Prüfung eines Dienstes und eines Hosts (IP), die vom Netzwerk-Discovery-Modul durchgeführt wird, erzeugt ein Discovery-Ereignis.
| Ereignis | Ergebnis der Dienstprüfung |
|---|---|
| Dienst entdeckt | Der Dienst ist 'up', nachdem er 'down' war, oder wurde zum ersten Mal entdeckt. |
| Dienst up | Der Dienst ist 'up', nachdem er bereits 'up' war. |
| Dienst verloren | Der Dienst ist 'down', nachdem er 'up' war. |
| Dienst down | Der Dienst ist 'down', nachdem er bereits 'down' war. |
| Host entdeckt | Mindestens ein Dienst eines Hosts ist 'up', nachdem alle Dienste dieses Hosts 'down' waren, oder ein Dienst wird entdeckt, der zu einem nicht registrierten Host gehört. |
| Host up | Mindestens ein Dienst eines Hosts ist 'up', nachdem mindestens ein Dienst bereits 'up' war. |
| Host verloren | Alle Dienste eines Hosts sind 'down', nachdem mindestens einer 'up' war. |
| Host down | Alle Dienste eines Hosts sind 'down', nachdem sie bereits 'down' waren. |
Aktionen
Discovery-Ereignisse können die Grundlage für relevante Aktionen sein, wie zum Beispiel:
- Benachrichtigungen senden
- Hosts hinzufügen/entfernen
- Hosts aktivieren/deaktivieren
- Hosts zu einer Gruppe hinzufügen
- Hosts aus einer Gruppe entfernen
- Tags zu einem Host hinzufügen
- Tags von einem Host entfernen
- Eine Vorlage mit Hosts verknüpfen/eine Vorlage von Hosts trennen
- Remote-Skripte ausführen
Diese Aktionen können in Bezug auf Gerätetyp, IP, Status, Uptime/Downtime usw. konfiguriert werden. Vollständige Details zur Konfiguration von Aktionen für auf Netzwerk-Discovery basierende Ereignisse finden Sie auf den Seiten zu operation und conditions von Aktionen.
Da Aktionen der Netzwerk-Discovery ereignisbasiert sind, werden sie sowohl ausgelöst, wenn ein entdeckter Host online ist, als auch wenn er offline ist. Es wird dringend empfohlen, eine Aktions-condition Discovery status: up hinzuzufügen, um zu vermeiden, dass Aktionen wie Add host bei Ereignissen vom Typ Service Lost/Service Down ausgelöst werden. Andernfalls erzeugt ein entdeckter Host, wenn er manuell entfernt wird, weiterhin Service Lost/Service Down-Ereignisse und wird während des nächsten Discovery-Zyklus erneut erstellt.
Das Verknüpfen von Vorlagen mit einem entdeckten Host schlägt insgesamt fehl, wenn eine der verknüpfbaren Vorlagen eine eindeutige Entität (z. B. einen Datenpunkt-Schlüssel) besitzt, die mit einer eindeutigen Entität (z. B. einem Datenpunkt-Schlüssel) identisch ist, die bereits auf dem Host oder auf einer anderen der verknüpfbaren Vorlagen vorhanden ist.
Host-Erstellung
Ein Host wird hinzugefügt, wenn die Operation Host hinzufügen ausgewählt ist. Ein Host wird auch dann hinzugefügt, wenn die Operation Host hinzufügen fehlt, sofern Sie Operationen auswählen, die Aktionen auf einem Host auslösen. Solche Operationen sind:
- Host aktivieren.
- Host deaktivieren.
- Host zu einer Hostgruppe hinzufügen.
- Vorlage mit einem Host verknüpfen.
Erstellte Hosts werden der Gruppe Entdeckte Hosts hinzugefügt (standardmäßig, konfigurierbar unter Administration > Allgemein > Andere). Wenn Sie möchten, dass Hosts einer anderen Gruppe hinzugefügt werden, fügen Sie eine Operation Aus Hostgruppen entfernen hinzu (mit der Angabe "Entdeckte Hosts") und fügen Sie außerdem eine Operation Zu Hostgruppen hinzufügen hinzu (mit der Angabe einer anderen Hostgruppe), da ein Host zu einer Hostgruppe gehören muss.
Die IP-Adresse des entdeckten Geräts wird zusammen mit der Entdeckungsquelle (Zabbix Server, Zabbix Proxy oder Proxy-Gruppe) und dem Schnittstellentyp als Kriterium verwendet, um einen Host im System zu finden. Wenn bereits ein Host mit derselben IP-Adresse, demselben Schnittstellentyp und derselben Entdeckungsquelle vorhanden ist, wird dieser Host als Ziel für die Ausführung der Operationen verwendet. Wenn sich die Entdeckungsquelle unterscheidet, wird das entdeckte Objekt als anderer Host behandelt, und es kann ein neuer Host erstellt werden.
Wenn die IP-Adresse des entdeckten Hosts geändert wird oder die Schnittstelle gelöscht wird, wird bei der nächsten Entdeckung ein neuer Host erstellt.
Benennung von Hosts
Beim Hinzufügen von Hosts ist ein Host-Name das Ergebnis einer Reverse-DNS-Abfrage oder die IP-Adresse, falls die Reverse-Abfrage fehlschlägt. Die Abfrage wird vom Zabbix Server oder Zabbix Proxy durchgeführt, je nachdem, welcher die Discovery ausführt. Wenn die Abfrage auf dem Proxy fehlschlägt, wird sie nicht auf dem Server erneut versucht. Wenn bereits ein Host mit einem solchen Namen existiert, wird an den nächsten Host _2 an den Namen angehängt, dann _3 und so weiter.
Es ist auch möglich, die DNS-/IP-Abfrage zu überschreiben und stattdessen einen Datenpunktwert für den Host-Namen zu verwenden, zum Beispiel:
- Sie können mehrere Server mit laufendem Zabbix Agent mithilfe eines Zabbix-Agent-Datenpunkts für die Discovery erkennen und ihnen automatisch passende Namen zuweisen, basierend auf dem von diesem Datenpunkt zurückgegebenen Zeichenfolgenwert
- Sie können mehrere SNMP-Netzwerkgeräte mithilfe eines SNMP-Agent-Datenpunkts für die Discovery erkennen und ihnen automatisch passende Namen zuweisen, basierend auf dem von diesem Datenpunkt zurückgegebenen Zeichenfolgenwert
Wenn der Host-Name mithilfe eines Datenpunktwerts festgelegt wurde, wird er bei den folgenden Discovery-Prüfungen nicht aktualisiert. Wenn es nicht möglich ist, den Host-Namen mithilfe eines Datenpunktwerts festzulegen, wird der Standardwert (DNS-Name) verwendet.
Wenn bereits ein Host mit der erkannten IP-Adresse existiert und sich die Discovery-Quelle (Zabbix Server, Proxy oder Proxy-Gruppe) nicht geändert hat, wird kein neuer Host erstellt. Wenn sich die Discovery-Quelle unterscheidet, wird die erkannte Entität als eigenständig behandelt und es kann ein neuer Host erstellt werden. Wenn die Discovery-Aktion jedoch Operationen enthält (Vorlage verknüpfen, zu Host-Gruppe hinzufügen usw.), werden diese auf dem vorhandenen Host ausgeführt, der anhand von IP-Adresse, Schnittstellentyp und Discovery-Quelle übereinstimmt.
Entfernen von Hosts
Hosts, die durch eine Netzwerkerkennungsregel erkannt wurden, werden automatisch aus Monitoring > Discovery entfernt, wenn sich eine erkannte Entität nicht mehr im IP-Bereich der Regel befindet. Hosts werden sofort entfernt.
Schnittstellenerstellung beim Hinzufügen von Hosts
Wenn Hosts infolge einer Netzwerkerkennung hinzugefügt werden, werden für sie Schnittstellen gemäß den folgenden Regeln erstellt:
- Die erkannten Dienste - zum Beispiel, wenn eine SNMP-Prüfung erfolgreich war, wird eine SNMP-Schnittstelle erstellt.
- Wenn ein Host sowohl auf Zabbix-Agent- als auch auf SNMP-Anfragen reagiert hat, werden beide Schnittstellentypen erstellt.
- Wenn die Eindeutigkeitskriterien Zabbix-Agent- oder SNMP-zurückgegebene Daten sind, wird die erste für einen Host gefundene Schnittstelle als Standard-Schnittstelle erstellt. Andere IP-Adressen werden als zusätzliche Schnittstellen hinzugefügt. Die Bedingungen der Aktion (z. B. Host IP) haben keinen Einfluss auf das Hinzufügen von Schnittstellen. Hinweis: Dies funktioniert, wenn alle Schnittstellen durch dieselbe Erkennungsregel erkannt werden. Wenn eine andere Erkennungsregel eine andere Schnittstelle desselben Hosts erkennt, wird ein zusätzlicher Host hinzugefügt.
- Wenn ein Host nur auf Agent-Prüfungen reagiert hat, wird er nur mit einer Agent-Schnittstelle erstellt. Wenn er später auf SNMP reagieren sollte, würden zusätzliche SNMP-Schnittstellen hinzugefügt.
- Wenn zunächst 3 separate Hosts erstellt wurden, die anhand der Eindeutigkeitskriterien "IP" erkannt wurden, und die Erkennungsregel dann so geändert wird, dass die Hosts A, B und C identische Ergebnisse für die Eindeutigkeitskriterien haben, werden B und C als zusätzliche Schnittstellen für A, den ersten Host, erstellt. Die einzelnen Hosts B und C bleiben erhalten. In Monitoring > Discovery werden die hinzugefügten Schnittstellen in der Spalte "Discovered device" in schwarzer Schrift und eingerückt angezeigt, während die Spalte "Monitored host" nur A, den zuerst erstellten Host, anzeigt. "Uptime/Downtime" wird für IPs, die als zusätzliche Schnittstellen betrachtet werden, nicht gemessen.
Ändern der Proxy-Einstellung
Die von verschiedenen Proxys erkannten Hosts werden nicht immer als unterschiedliche Hosts behandelt. Erkennung und Eindeutigkeitsprüfungen hängen von der Struktur der Proxy-Gruppe ab: Wenn ein Proxy eine Erkennungsregel ausführt und einen Host erstellt, wird dieser Host der übergeordneten Proxy-Gruppe des Proxys hinzugefügt und nicht dem Proxy selbst zugewiesen. Wenn Zabbix während der Erkennung die IP-Eindeutigkeit bewertet, prüft es Hosts, die von der übergeordneten Proxy-Gruppe überwacht werden. Hosts, die von einzelnen Proxys innerhalb dieser Gruppe überwacht werden, einschließlich des Proxys, der die Erkennung ausgeführt hat, werden bei der Eindeutigkeitsprüfung ignoriert, was zu doppelten Hosts führen kann, wenn mehrere Proxys überlappende Subnetze überwachen.
Während dieses Verhalten es ermöglicht, dass die Erkennung über überlappende IP-Bereiche hinweg funktioniert, die von verschiedenen Subnetzen verwendet werden, ist das Ändern des einem bereits überwachten Subnetz zugewiesenen Proxys komplizierter, da Proxy-Änderungen konsistent auf erkannte Hosts und auf die Mitgliedschaft der übergeordneten Proxy-Gruppe angewendet werden müssen, um Duplikate zu vermeiden.
Beispiel: Schritte zum Ersetzen des Proxys in einer Erkennungsregel:
- Erkennungsregel deaktivieren.
- Proxy-Konfiguration synchronisieren.
- Proxy in der Erkennungsregel ersetzen.
- Proxy für alle von dieser Regel erkannten Hosts ersetzen (stellen Sie sicher, dass Hosts in der übergeordneten Proxy-Gruppe und alle von einzelnen Proxys in dieser Gruppe überwachten Hosts aktualisiert werden, um Duplikate zu vermeiden).
- Erkennungsregel aktivieren.