Zabbix: Die Netzwerktopologie ist klar und automatisch

Ein größeres Netzwerk als ein Localhost verwalten? Nicht kontrollieren, sondern lernen wollen? Wir laden Sie zum Kurs „Linux. Level 5. Zabbix. Überwachung der IT-Infrastruktur eines Unternehmens . Auf dem kostenlosen Seminar des Fachschulungszentrums der Staatlichen Technischen Universität Bauman Moskau lernen Sie, wie Sie Zabbix beibringen, das Netzwerk automatisch zu überwachen: Bestehende Knoten finden und neue hinzufügen, Topologie zeichnen und aktualisieren.



Das Seminar wird vom führenden Lehrer des "Specialist" -Zentrums an der Bauman MSTU, dem Hauptsystemadministrator des MSTU-Netzwerks, gehalten. N.E. Bauman Vyacheslav Aleksandrovich Lokhturov. Melden Sie sich für unsere kostenlosen Seminare an (oder sehen Sie sich die Aufzeichnungen an) .

Hallo alle zusammen! Ich heiße Vyacheslav Lokhturov. Ich arbeite als Ingenieur an der Staatlichen Technischen Universität Bauman in Moskau. Seit meinem Abschluss im Jahr 1997 arbeite ich als Ingenieur. Gleichzeitig unterrichte ich im Ausbildungszentrum Nr. 1 "Specialist" - einer Firma, die MSTU freundlich ist. Viele andere Lehrer und Mitarbeiter arbeiten dort.

Das Thema des Webinars wird Teil meiner Arbeit als Ingenieur sein - ein wunderbares Überwachungssystem ...

Netzwerktopologie: Hintergrund, Baumanka Wikipedia, Quellen


Die Aufzeichnung des Webinars kann unter folgendem Link eingesehen werden: https://wiki.val.bmstu.ru - ein Wiki-Format. Meine E-Mail-Adressen lauten: val@bmstu.ru, val@specialist.ru. Dieses Tutorial benutze ich als Ingenieur. Es gibt viele verschiedene Materialien. Wenn es Ihnen nicht gefällt, finden Sie bei uns viele Materialien zu Ihrem Thema im Internet („Zabbix“).

Unter dem Gesichtspunkt des Unterrichtsmaterials und des Unterrichts verwende ich den Abschnitt "Materialien zur Methodik des Lesens von Kursen":



Und es gibt einen Abschnitt mit Webinaren. Für jede Lesung von mir gibt es hier eine Aufzeichnung:



Ich sagte sofort: „Wenn wir das tun, machen wir das Coolste! Lassen Sie uns zeigen, wie die Netzwerktopologie in Zabbix automatisch erstellt wird. In 45 Minuten muss ich das sagen.
In Bezug auf die Netzwerktopologie: bei Bauman MSTU ein riesiges Netzwerk; Dementsprechend ist die Netzwerktopologie das, was wir lange Zeit wirklich brauchten. In der Vergangenheit war Zabbix nicht das System, das wir in der Anfangsphase verwendet haben. Wie alle Leute aus Abteilungen wie Informatik, Management, Computersystem, Komplex und Netzwerk haben wir uns alle gerne selbst programmiert, und jetzt haben wir programmiert ...

Wir haben eine kleine Wikipedia, die für die Arbeit verwendet wird. Und unter den Elementen dieser Wikipedia gibt es einen Abschnitt, der sich mit Netzwerkvermittlung befasst. Der Zugriff auf diese Wikipedia wird weiterhin durch ein kleines VPN geschlossen:



Ich zeige Ihnen jetzt, wie die Netzwerktopologie an unserer Universität aussieht. Es lohnt sich zu sehen; und dann mit dem Ergebnis vergleichen:



Mir scheint, dass alles klar ist: alle Schalter und ihr Weg zum Root-Schalter; Wenn etwas fehlt, werden wir uns schnell von dieser Textdatei erholen. Die Netzwerktopologie wird täglich erstellt. Alles ist gut, aber natürlich nicht spektakulär. Es ist schwer zu verkaufen. Deshalb haben wir ein solches Programm an der Universität.

Die Netzwerktopologie wird benötigt, wenn ein Switch verschwunden ist. Um zu verstehen, wo er verbunden war


Wir werden versuchen, etwas Spektakuläreres zu sehen. Und ein gewisser Hinweis darauf, was wir tun werden, ist dieser Artikel im Forum:





Er sagt, dass es eine Art wundervolles Skript gibt, das in meiner früheren Lieblingssprache Perl geschrieben ist und nach dem die Netzwerkgeräte-Umfragen einige machen Schlussfolgerungen und füttert Zabbix auf wundersame Weise mit den Ergebnissen. Aber wir werden kein Perl verwenden, sondern etwas anderes.

Wir verabschieden uns von dem, was wir haben. Lass uns weiter üben.



Ich würde mich freuen, wenn Sie dies alles zu Hause reproduzieren und versuchen könnten, sich auf alles Mögliche vorzubereiten. Nach dem Webinar möchten Sie alles wiederholen und mit der Tatsache beginnen, dass Sie Zabbix, eine virtuelle Maschine, ein Netzwerk bereitstellen müssen. Wie macht man das?

Zu Hause geben Sie den Befehl ipconfig ein und sehen, dass Sie zu Hause ein solches IP-Netzwerk haben (vielleicht ein anderes, aber meistens dieses): Ich habe hier die



fünfte Adresse (192.168.1.5) und Sie können die 20. oder 30. haben ... Sicher gibt es einen WLAN-Router, der diese Adressen ausgibt. Daher werde ich jetzt eine Topologie zeichnen, die auf dem basiert, was sich in Ihrem Haus befindet, damit Sie sie reproduzieren können:



  • Sie haben einen WIFI-Router.
  • Das System, in dem Sie das Webinar spielen möchten.
  • 192.168.1/24 – 1- WI-FI-, 5-, , – .
    . , – , 2, 10, 20 , . , linux-, «». , 100. , 192.168.1.100.

Wo bekomme ich ein Auto? Nichts hindert daran, die Linux-Distribution zu übernehmen. Ich bin ein großer Fan dieser Distribution. Wir werden keine Holivars züchten - ich liebe ihn, ich wähle ihn, ich benutze ihn in Kursen. Sie können von dieser Site aus installieren:



Damit wir nicht 45 Minuten mit der Installation von Debian verbringen, werde ich ein vorgefertigtes Image erstellen. Wer es braucht - schreiben Sie an die Mail, ich werde Ihnen dieses Bild senden, obwohl nichts Besonderes darin ist (nur um keine Zeit mit der Installation zu verschwenden):



Während der Installation können Sie den Abschnitt im Handbuch sehen ...

Standbereitstellung


Es gibt eine Geschichte über den Befehl ipconfig:



Und wenn sich der Computer dann umdreht:



Sie können in den Einstellungen einen Namen angeben , ihm mehr RAM geben: Es



gibt verschiedene Virtualisierungen - VirtualBox ist gut für den Heimgebrauch. Im Unternehmen verwenden wir und meine Freunde VSphere (wir sind sehr zufrieden mit dem Produkt von VMware), aber es gibt mehr als genug Kurse für VirtualBox.

Netzwerk:



Da wir sagen, dass dieser Computer mit unserem Netzwerk verbunden wird, können wir damit arbeiten - er muss über eine Brücke mit einem physischen Adapter verbunden sein. Ich werde die Mac-Adresse neu generieren. Ich starte unsere virtuelle Maschine:



Und nach dem Start mache ich eine Konfiguration. Das Handbuch listet die Dateien auf, die bearbeitet werden müssen: Geben Sie dem Computer einen Namen. Es ist wünschenswert, die Hosts-Datei, die resolv.conf (verantwortlich für den DNS-Client) und die von uns ausgewählte IP-Adresse zu bearbeiten. Diese vier Dateien müssen bearbeitet werden. Ich werde versuchen, es so schnell wie möglich zu tun.

Zabbix-Bereitstellung


Das Passwort dieses Benutzers (root) wird sofort im Bild festgelegt - in der Praxis niemals verwenden! Um Zeit zu sparen, verwende ich ein privilegiertes Konto:



Das Handbuch listet die Dateien auf, die bearbeitet werden müssen.



Als nächstes gebe ich unserem Computer (Zabbix-Überwachungsserver) den Namen:



Hosts-Datei:



Ändern Sie die Adresse in den 100. und den Namen unserer erfundenen Domain (jeder Listener in unseren Kursen hat seine eigene, individuelle, wie ein Netzwerk mit einer Domain):



Was bleibt noch übrig? Resolv.conf (DNS-Client):



Corp1.un wird an Kurznamen andocken, und Ihr WIFI-Router funktioniert normalerweise als DNS-Server:



Was bleibt übrig? Die wichtigste, große Datei ist Netzwerk / Schnittstellen. Hier ist eine Vorlage für verschiedene Kurse, viele Schnittstellen:



Aber unser Auto wird eine Schnittstelle haben. Es wird ein Überwachungsserver mit der 100. Adresse sein und über die 1. ins Internet gehen:



Vielleicht ist es nicht notwendig, aber schneller, alle Dateien zu verwenden - starten Sie den Computer neu.

Installieren und Starten eines Dienstes in Debian


Zabbiks können auf verschiedene Arten installiert werden. Laut Zabbix gibt es eine ausgezeichnete Website mit Dokumentation (auf Russisch wird übrigens der aktive Bereich unterstützt). Dementsprechend werden hier verschiedene Optionen angeboten. Ich bin ein großer Befürworter der Installation von Software aus einem regulären Repository. Es ist kein Zufall, dass ich mich für Debian entschieden habe:





Wenn übrigens alles gut gemacht ist, sollte ich jetzt in der Lage sein, eine Verbindung zu meinem System herzustellen. Lass es uns versuchen. Ich nehme meinen Lieblings-SSH-Client und verbinde mich mit dem 192.168.1.100-System:



Lucky:



Auch hier ist es nicht sehr richtig, dass root hier erlaubt ist:



Mach das niemals in einem Unternehmen! Hier wird nur Zeit gespart.



Jetzt müssen wir Zabbix installieren. Als großer Liebhaber und Befürworter der Verwendung von Basissoftware und Gegner der Verbindung von Repositorys von Drittanbietern werde ich die Version in diesem Debian veröffentlichen. Nochmals, danke an die Autoren von "Debian" - wählen Sie einfach die Installation eines solchen Pakets: Ich



erinnerte mich an eine weitere Sache! Wir haben gerade das System installiert - wir müssen das Repository synchronisieren (apt update):



Daher reicht es aus, den Installationsbefehl zabbix-server mit Unterstützung für die Datenbank (DB) Ihrer Informationen in SQL einzugeben, da viele Komponenten installiert werden (einige Minuten sollten für die Installation benötigt werden). ::



Woraus besteht Zabbix?


Zabbix besteht aus folgenden Komponenten:

  • "Zabbix" -Server;
  • Er arbeitet aktiv an der Konfiguration, die wir manuell und automatisch konfigurieren werden.
  • , ; MySQL ( – ), ( «» – PostgreSQL, Oracle ).

Damit wir mit Zabbix arbeiten können, wird das sogenannte Frontend verwendet. Frontend Zabbix ist eine Anwendung, die wahrscheinlich in PHP geschrieben wurde (vielleicht nicht alles, aber die meisten). Dementsprechend verwendet die Anwendung selbst einen Webserver. Bisher wurde nur dieses Teil eingestellt (jetzt warten wir auf seine Installation):



Fertig. Da Zabbix die Datenbank verwendet, müssen wir sie anhand der Dokumentation erstellen. Um eine Datenbank zu erstellen, verwende ich ein einfaches Skript:



Ich werde nicht detailliert beschreiben, welche Befehle was bedeuten. Wenn jemand mit dem DBMS gearbeitet hat, wird ihm etwas Vertrautes angezeigt - der Name der Datenbank usw.



Mit diesem Skript erstelle ich die Datenbank:



Und füllen Sie diese Datenbank mit Metadaten. Es gibt mehrere Dateien, die beschreiben, welche Tabellen, welche Attribute, Parameter usw. sein sollen (dies alles wird wiederum gemäß der Dokumentation durchgeführt):



Das heißt, jetzt stapeln wir in MySQL Metadaten, die Zabbix zum Speichern der Konfiguration und der Ergebnisse verwendet:



Nicht Ich werde Zeit damit verbringen, mir anzusehen, was er dort erstellen wird (es wird eine große Anzahl von Tabellen erstellt). Zabbix als Produkt entwickelt sich seit mehr als zehn Jahren und ist ständig bemüht, immer besser zu werden, daher ist die Datenstruktur dort ziemlich schwer. Aber das alles ist "unter der Haube". Wir als Administratoren werden mit einer externen Front-End-Anwendung arbeiten, mit der alles einfach, klar und zugänglich ist.

Laut Dokumentation aus irgendeinem Grund mehrere Dateien. Aber seitdem wissen sie, was sie brauchen! Die Datenbank ist bereit:



Gemäß der Dokumentation muss diese Komponente nun erklärt werden:



Erklären Sie, dass sie mit der Datenbank funktionieren soll, indem Sie eine Verbindung unter einem bestimmten Login und Passwort herstellen. Dies geschieht über die Konfigurationsdatei:



Ganz am Ende der Datei einfügen:





Hier beschreiben wir, dass sich der Datenbankserver hier unter unserem Konto befindet:



"Debian" -Paket für "Zabbix" bedeutet nicht Autostart. Hier ist ein Team des großen und schrecklichen SystemD, über das es sehr viele Holivars gibt:



Es macht den Start von Zabbix automatisch, nachdem der Server gestartet wurde. Zabbix starten:



Diese beiden Komponenten werden ausgeführt:



Sie können die Konfiguration bereits überwachen und ausfüllen. Aber es ist schwer, etwas Gutes zu tun, bis das Frontend festgelegt ist ... Zunächst jedoch - die verpasste Phase ...

Zabbix-Bereitstellung Zeitzonenlokalisierung


Ich habe das Bild entfaltet und die falsche Zeit darin: Das



Datum ist korrekt. Unsere Zeitzone ist falsch, also habe ich sie auf einen Schlag korrigiert:



Zum Frontend gelangen. Installieren und Starten der Weboberfläche


Debian sollte ein solches Paket installieren (nachdem der Apache-Webserver installiert wurde):



PHP, eine Bibliothek zum Verbinden von in PHP geschriebenen Programmen mit MySQL, wird installiert. Im Allgemeinen starte ich:



Sie müssen lange Zeit keine Aktionen ausführen, alles wird automatisch erledigt:



Jetzt setzen wir diese Komponente hier ein - das Zabbix-Frontend; einen Webserver, und wir werden ihm erklären, dass er mit dem Zabbix-Server und DBMS arbeiten muss:



Über den Webserver werden wir den Zabbix verwalten und durch ihn sehen, was er dort überwacht hat.

Es ist fast etabliert, und jetzt werden wir sehen, dass es eine enge Beziehung zu unserem Land hat. Es wurde als Anwendung einer Person entwickelt, die in einer Bank arbeitete. Er beschloss, die Überwachung einzurichten, nahm sie und schrieb sein Programm, anstatt das fertige zu verwenden. Er hat in Riga gearbeitet, und Sie und ich sind in Moskau:



In dieser Datei ↑ ist eine PHP-Initialisierung erforderlich ↓, um dies zu tun:





Ich werde nicht näher darauf eingehen, wie die Webanwendung in Debian konfiguriert ist. Es reicht aus, die Konfiguration aus dem Zabbix-Paket zu verbinden und den Apache-Webserver neu zu starten:



Stellen Sie eine Verbindung zum Frontend her, um Zabbix zu konfigurieren


Fast bereit, sich mit dem Frontend zu verbinden. Es bleibt ihm nur zu erklären, wo sich der Datenbankserver befindet. Es gibt zwei Möglichkeiten, die wir über den Assistenten ausführen. Dazu benötigen Sie eine Datei, in die die Konfigurationen geschrieben werden:



Ein Webserver muss über Schreibberechtigungen für diese Datei verfügen:



Anschließend können Sie versuchen, eine Verbindung in einem Browser herzustellen. Sie können nach IP-Adresse. Mein DNS ist konfiguriert, daher werde ich diese Gelegenheit nutzen:



Wir haben den Zabbix-Assistenten, in dem ich auf Weiter klicke, da die meisten ihn bereits installiert haben:













Unser Zabbix ist bereit, eine Verbindung herzustellen. Wir geben den Benutzernamen und das Passwort ein:



Konfiguration, Hosts ... Überwacht keine Hosts - "Zabbix" ist bisher nur bereit, sich selbst zu überwachen, wenn wir den Zabbix-Agenten installieren:



Erweitern Sie die Switch-Cloud


Für unser Webinar gibt es jedoch keine Zabbix-Agenten. Es ist zu einfach und uninteressant! Sie und ich werden ein verteiltes Netzwerk überwachen, Ketten von Kommunikationsschaltern, also brauchen wir diese Kette von Schaltern. Wo bekommt man sie?

Ich schlug die Verwendung der Virtual Box-Virtualisierung vor. Sie können damit PCs (Computer) emulieren, und jetzt stelle ich Ihnen einen anderen Emulator vor, der ebenfalls in unseren Kursen verwendet wird. Ein großartiges Produkt heißt Graphical Network Simulator (GNS): Mit



diesem Emulator können Sie Cisco-Geräte emulieren. Hier werden wir unsere Switch-Cloud bereitstellen. Es wird notwendig sein, den Namen des Projekts erneut einzugeben (speichern wir die Konfiguration, was ist, wenn morgen benötigt wird):



Wenn Sie lernen möchten, wie Sie zu Hause mit Cisco-Geräten arbeiten, installieren Sie dieses GNS selbst und machen Sie es wie auf dem Seminar. Wir werden jetzt eine Cloud von Switches bereitstellen. Das Problem ist, dass GNS keine Switches hat (hier gibt es keine Emulation) - nur Router-Emulation. Deshalb müssen wir den Router setzen (mit dem Mauszeiger ziehen):



Und irgendwie einen Schalter daraus machen. Wie mache ich eine Switch-Emulation in GNS? Wir müssen den Router der 36. Serie nehmen. Sie können es einen Schalter nennen (Rechtsklick auf den Schalter):



Sie können einen Schalter zeichnen:







Sieht aus wie? Aber es wird nur dann zu einem echten Schalter, wenn Sie dort ein solches Board hinzufügen:



In diese Reihe von Cisco-Routern können Sie eine Ethernet-Karte mit 16 Ports einbauen. Und für eine Vielzahl von Laborarbeiten im Zusammenhang mit Schaltern ist diese Platine gut geeignet.
Wir müssen eine Wolke von Schaltern haben, also mache ich jetzt diese Wolke (ändere den Namen, das Bild und füge die Tafel ein). Beginnen wir mit drei Schaltern. Wenn wir Zeit haben, fügen wir einen vierten hinzu:



Wir verbinden uns und zielen nicht besonders darauf ab, wohin. Unsere Topologie muss automatisch erstellt werden:





Fertig:



Jetzt beginne ich mit diesem Geschäft:



Herzlichen Glückwunsch an diejenigen, die zum ersten Mal beobachten, wie Cisco funktioniert - damit Sie den Cisco-Switch schnell konfigurieren können. In der Zwischenzeit starten sie mit uns ...

Dies ist unser Windows-System (Windows 7) und Debian:



Hier GNS3-Virtualisierung und die Switch-Cloud:



Jetzt ist klar, was passiert: Zwei Virtualisierungssysteme werden im Rahmen einer Maschine verwendet. Virtualisierung von PC-Systemen (rechts) und Virtualisierung von Cisco-Systemen (links):



Es ist notwendig, dass der Server die Geräte überwacht:



Und damit er sie überwachen kann, sollten diese Geräte Adressen im selben Netzwerk haben:



Daher, ohne lange darüber nachzudenken, ich Ich habe beschlossen, diesen Schaltern Adressen zu geben (Punkte 101, 102, 103 für den 1., 2. und 3. Schalter). 100. ist unser Linux:



Sie können dies wie folgt konfigurieren: Besuchen Sie einen autorisierten Cisco-Kurs und er wird Sie für kostengünstig informieren.

Damit der Switch für die Verwaltung zugänglich ist, müssen Sie die folgenden Einstellungen vornehmen: Wechseln Sie in den Konfigurationsmodus, geben Sie einen geeigneten Namen ein, weisen Sie der Schnittstelle eine IP-Adresse zu und kopieren Sie das Ergebnis in das Langzeitgedächtnis:



Ich werde den Fisch vorbereiten, um nicht viel Zeit damit zu verbringen. Der erste Switch heißt switch1, die IP-Adresse ist die 101 .. Ich kopiere diese Konfiguration auf den Switch:



Doppelklicken Sie auf den gewünschten Switch (jetzt - Switch1):





Richten Sie Switch1 ein. Nun - die Konfiguration für den zweiten Switch: Switch2 genannt, IP-102:





Dementsprechend handeln wir mit dem dritten Switch.

Nun, es wird sehr cool sein, wenn nicht nur unser Server von unserem Windows-Computer verfügbar ist, sondern auch das, was wir jetzt konfiguriert haben:



GNS3 ist ein gutes System. Ich mache einen solchen Schwerpunkt, weil es genug Probleme damit gibt: Es ist ein bisschen fehlerhaft, ein bisschen ... Aber um zu lernen, ist es genug. Diese Pause ist alarmierend für mich - ich hoffe, dass alles klappt und unser Schalter nach einiger Zeit antwortet: Aber



nein, er wird nicht antworten, egal wie lange ich warte! Die Kommunikation zwischen unserem Computer und GNS reicht nicht aus. GNS selbst, daher fehlt ein weiteres Element:



Cloud verbinden


Damit diese Switches verfügbar werden, müssen Sie das Cloud-Objekt verwenden:



Heute verwendet Cloud es in einem völlig anderen Sinne. GNS-Autoren als Internetdienstanbieter. In den Einstellungen dieses Objekts kann ich es mit meiner Netzwerkkarte verbinden:



Es sieht beängstigend aus, aber dies ist dieselbe Netzwerkkarte:





Ich habe Cloud eingesetzt. Jetzt müssen Sie einen der Switches mit der Cloud verbinden (erst dann wird möglicherweise eine Verbindung hergestellt): Ich



vermute, dass es in unserem Fall schneller ist, den Switch neu zu starten, damit alles in Betrieb ist. Das einzige, was ich sicherstellen möchte, dass seine Konfiguration gespeichert wird. Übrigens sollten die Ping-Schalter schon gehen:



Real Cisco! Das erste Paket verschwindet, alles andere ist da:



Eigentlich wird hier nicht die natürliche Emulation verwendet, sondern iOS. Daher stoppe ich den ersten Switch und starte erneut:





Wenn alles in Ordnung ist, sollten wir die Verbindung über die Cloud sehen - mein Windows 7 wird über eine Netzwerkkarte mit diesem Gerät verbunden (das Gerät hat IP-Adressen im selben Netzwerk wie Windows). . Im Allgemeinen ist dies der Verbindungspunkt zwischen GNS und Windows. Lassen Sie uns



überprüfen, ob es einen Zusammenhang gibt: Mal sehen, wie er sich fühlt ... Von hier aus antwortet er: Fuck



! Sie sehen, die Verbindung ist aufgetaucht:



Ich liebe GNS, weil es kostenlos ist, es funktioniert ... Aber nicht alles ist einfach! Hier ist eine lustige Situation: Unser Linux reagiert auf das Windows-System, unser Switch reagiert auf Windows, aber der Switch reagiert nicht auf das Linux-System:



So kann der Lehrer grau werden! Sie führen eine Lektion durch, aber der Stand funktioniert nicht für Menschen ... Nun, nichts, wir werden überzeugen! Kostenlos, billig und fröhlich.

Die Erfahrung hat gezeigt: Damit die Verbindung zwischen allen drei Elementen (von Windows - zu Linux, von Linux - zu GNS) hergestellt werden kann, müssen Sie zu den Netzwerkkarteneinstellungen gehen und die seltsame Option auswählen - "Unhörbarer Modus" ("Alle zulassen"):





Kommen Sie zu Virtualisierung! Dieser wahllose Modus ist in allen Entscheidungen (und auch in der "Sphäre"). Es ist mit der Weitergabe von Ethernet-Paketen, Mac-Adressen usw. verbunden. Kommen Sie auf Kurs zur Virtualisierung, die Details sind da.

Wir starten unser System erneut in der Hoffnung, dass die Konnektivität wiederhergestellt wird:



Erst jetzt ist es möglich, die Überwachung unserer Switches von Zabbix aus zu konfigurieren. Mal sehen, wie das passiert:



Der Grundstein wird gelegt. Wenn wir jetzt eine Verbindung haben, ist alles bereit. In "Zabbix" viele "Tsiska", geschickt miteinander verbunden - Sie können mit der Überwachung beginnen. Wir stellen mit einem Passwort eine Verbindung zum Root-Benutzer her und überprüfen den Ping:





Alles ist fertig:



Als Administrator des lokalen DNS habe ich auch das Senden per Ping-Namen ermöglicht.

Wie kann Zabbix Cisco-Geräte überwachen?


Der Agent kann nicht auf Cisco-Geräten installiert werden. Viele von Ihnen wissen, dass Cisco-Geräte mithilfe von SNMP perfekt überwacht werden. Jetzt werden wir die Voraussetzungen dafür schaffen.

Jetzt werden wir die Voraussetzungen dafür schaffen. Um Geräte mithilfe des SNMP-Protokolls zu überwachen, müssen Sie zunächst die SNMP-Unterstützung auf dem Überwachungsserver selbst installieren:



Zabbix bietet diese Unterstützung nicht an, sondern verwendet externe Bibliotheken, die in diesen Paketen enthalten sind:



Ich werde Ihnen nicht sagen, um welche Verwaltungsinformationsbasis es sich handelt - Kommen Sie zu Kursen über die Interaktion von Lunux und Cisco, dort wird es ausführlich beschrieben. Und jetzt stellen wir nur die Pakete bereit, die für die Überwachung unter Linux erforderlich sind:





Und wir fügen unserem Cisco Konfigurationselemente hinzu, mit denen wir sie nacheinander überwachen können.



Hier beginnt der SNMP-Server einfach mit dem folgenden Kennwort:



Und wir tun dies auf allen drei Switches:



Nach diesen Schritten prüfen wir, ob unser Überwachungsserver über SNMP auf Cisco-Geräte (einen dieser Switches) zugreifen kann, und beispielsweise etwas herausfinden. Hier gibt es Testmöglichkeiten:



Sie können unsere Switches mit den sogenannten OIDs (Object Identifiers) abfragen. Hier fragen wir den Schalter ab (wir fordern die Werte des Parameters switch1 an):



Und wir sehen, dass sich diese Oid auf den Namen des Schalters bezieht, dh wir können seinen Namen aus jedem Schalter herausziehen (es ist sehr nützlich für die Topologie):



Und Sie können menschlichere, textuellere verwenden - Wir fordern sysName vom Switch an (dasselbe kann von switch2 usw. angefordert werden):



Installieren Sie die SNMP-Konsole


Eine andere Aktion ist nicht offensichtlich:







Gemäß der Lizenzvereinbarung müssen Sie die Zeilen in dieser Datei auskommentieren ... Dies ist ein wunderbarer "Specht" -Befehl, der den Inhalt der Datei löschte und lautete: "Um die Lizenz zu bestätigen, kommentieren Sie alles aus, was vorhanden ist."

Dementsprechend muss der Zabbix-Server neu gestartet werden, da wir die Bibliotheken installiert haben, die von ihm verwendet werden:





Viele Menschen wissen, dass es jetzt ausreicht, den Abschnitt Host zu betreten, einen Host zu erstellen und das SNMP-Protokoll auszuwählen. IP-Adresse angeben:





Dafür sind wir aber nicht hier. Versuchen wir, Zabbix dazu zu bringen, alle unsere Schalter automatisch zu finden. Wir haben drei von ihnen, und in Baumanka gibt es mehr als hundert (120, wie es scheint). Es würde nicht so viel Spaß machen, 100 Schalter hinzuzufügen, also ist es ein Bonus: Wir werden sehen, wie Zabbix unsere Schalter findet.

Fügen Sie Zabbix automatisch Geräte hinzu


Seite "Automatisches Hinzufügen von Geräten zu Zabbix":



Dazu gehen wir zum Abschnitt "Konfiguration" (Unterabschnitt "Ermittlung") und erstellen dort keine neue Regel, sondern verwenden die vorhandene:

  • Dies besagt korrekt, dass Sie dieses Netzwerk scannen müssen ... Erkennen Sie unser Netzwerk? Um nicht lange zu warten, werde ich einen begrenzten Bereich von 100-110 angeben (genug für mich).
  • Einmal pro Stunde zu scannen ist ein bisschen viel; setzen - alle 60 Sekunden.
  • Auf gescannten Geräten sucht unser Zabbix jetzt nach einem Zabbix-Agenten. Ich habe versprochen, dass Sie und ich keine Agenten haben werden, also lösche ich es.
  • Und ich sage, dass unser Gerät tatsächlich über SNMPv2, Community - Public, zugänglich ist. Wir haben eine solche OID angefordert:
  • , . , . ( ):

Jetzt durchläuft Zabbix jede Minute diese IP-Adressen und fragt per SNMP nach dem Namen des Geräts. Wenn ein Gerät vorhanden ist und das SNMP-Protokoll unterstützt, wird Folgendes beantwortet:



Dies reicht nicht aus, damit unsere Geräte in dieser Liste angezeigt werden : Sie



müssen Aktionen konfigurieren. Wir werden ein neues erstellen (ich werde es benennen und aus dem Schulungshandbuch kopieren):





Bedingung: Die Anforderung muss die Information zurückgeben, dass dies ein Schalter ist. Durch „glücklichen Zufall“ haben wir alle Schalter, die als Schalter (Schalter1, Schalter2, Schalter3) bezeichnet werden, sodass der empfangene Wert wie (wie) auf dem Schalter aussehen sollte:



All dies steht im Trainingshandbuch. Es bleibt abzuwarten, was damit zu tun ist - „Operationen“:



Zunächst müssen Sie es einer Gruppe hinzufügen. Ich werde die vorgefertigte Gruppe Discovered Hosts verwenden:





Im Folgenden müssen wir erklären, was an diesem Gerät zu überwachen ist. In diesem Fall verwenden wir eine vorgefertigte Vorlage, die für eine große Anzahl verschiedener SNMP-Geräte geeignet ist:















Wenn alles richtig gemacht wurde, erscheinen nach einiger Zeit auf wundersame Weise 3 Schalter in unserem Zabbix. Wir warten. Sie werden im Bereich Hosts angezeigt. Es besteht eine Verbindung (nur für den Fall überprüft):



Erscheint:



Wenn wir 100 Schalter hätten, würden 100 Schalter erscheinen. Jetzt können wir über das Hauptthema sprechen - den automatischen Aufbau der Netzwerktopologie.

Erstellen Sie eine Netzwerkkarte


In "Zabbix" im Abschnitt "Überwachung" - Unterabschnitt "Netzwerkkarten". Sie können Ihre eigene Karte mit einem beliebigen Namen erstellen (ich nenne es wie in den Handbüchern - Schalterkarte):







Sie können dieser Karte Geräte hinzufügen:



Wir haben eine ziemlich langweilige Operation, um hier unsere gesamten hundert Schalter hinzuzufügen: Ich füge ein



neues Element hinzu und sage dem System, dass es eingeschaltet ist tatsächlich der Host, den Sie überwachen; Host-Switch1:





Die Leute fragen oft, ob dieser Prozess automatisch durchgeführt werden kann. Antwort: "Es ist möglich!". Aber dann müssen wir das faszinierende Problem lösen: "Wie verstehen wir, wo welche Schalter zu platzieren sind?" Das ist die Geometrie. Eine mögliche Lösung: Sie können im Schalter eine Geolokalisierungsmarke angeben (ein Parameter wie „Sie stehen im 6. Stock, AZLK-Gebäude, 666. Auditorium), das Gebäude des Bildungslabors und sein gesamtes Publikum zeichnen ... Im Allgemeinen ist dies ein guter Schüler für den 4. Schüler Computerkurs. Wir haben keine Pläne dafür!

Ich werde jetzt alle 3 Schalter manuell hinzufügen, aber ich verspreche, dass ich keine Kommunikationslinien zwischen ihnen ziehen werde. Wenn Sie den 101. Schalter hinzufügen, fügen wir ihn automatisch zu Zabbix hinzu - wenn Sie ihn bitte mit Stiften in die Karte zeichnen. Ein unangenehmer Moment, aber es gibt einen Ort, an dem man sein kann. Es gibt keine einfache Lösung für dieses Problem, sicher für 45 Minuten. Und was wir bekommen, wird mir interessant erscheinen.

Ich füge schnell 3 Schalter hinzu:



Ich sagte, dass ich keine Zeilen hinzufügen werde? Ich werde es tun, aber nur damit wir später verstehen können, wie man sie zeichnet. Ich werde diese beiden Schalter verbinden (wir



verbinden nicht den 1. mit dem 3.): Ich werde sie verbinden (Schalter1 und Schalter3 sind hervorgehoben):



Unser System muss dieses Problem beheben:



Es ist wichtig, nicht zu vergessen, das Ergebnis zu speichern:





Übrigens, über GNS - Sie können es wunderbar machen ... Verstecken Sie den Hostnamen, machen Sie ihn zu einem Schalter und legen Sie ihn untereinander, wodurch eine Wolke von Schaltern entsteht:











Wie erstellen wir eine Topologie? Konfigurieren Sie die automatische Erstellung und Aktualisierung von Kommunikationsleitungen


Damit die Topologie automatisch erstellt wird, müssen wir automatisch Informationen darüber erhalten. An der Universität verwenden wir Cisco-Geräte. Daher haben wir das Protokoll namens Cisco Discovery Protocol schon lange geliebt. Geben Sie einfach show cdp neighbours auf einem beliebigen Gerät ein und Sie erfahren, dass switch1 mit der 5. Schnittstelle verbunden ist:





Alternative zu cdp ist lldp (wir haben ein Segment) Schalter der "gruseligen" Firma Nortel - dort lldp). Sie sehen, es gibt zwei Schalter:



Der Zabbix-Server muss diese Informationen irgendwie herausholen (ich sehe sie auf Cisco selbst). Es gibt viele Wege. Eine der schnellsten, aber dümmsten ist die Verwendung des RSH-Protokolls. Ein sehr dichtes Protokoll, von dem ich nur aufgrund meines Alters weiß:





Normale RSH-Leute wissen es nicht, aber Sie können es schnell verwenden, um aus der Ferne etwas mit Cisco zu tun. Wenn es sich um ein Management-Netzwerk handelt, in dem es keinen Fremden gibt, können Sie es in der Produktion verwenden. Sicherheitspunkte sind jedoch immer noch eine vollständige Naht!

Daher habe ich die Unterstützung für den Zugriff auf das RSH-Protokoll auf meine Cisco-Server von dieser IP-Adresse aus eingerichtet:



Jetzt kann ich den RSH-Client auf dem Server installieren ...





... und zeigen, wie einfach es jetzt ist, den Anweisungen zu folgen, die wir gerade befolgt haben, indem ich eine direkte Verbindung zu Cisco-Geräten herstelle Von der Management Station - auf Switch1 folge ich dieser Anweisung:





Dementsprechend sollte sie auf Switch2 erscheinen:



Verbindung vom Überwachungsserver


Des Weiteren. Manager schreiben mir: „Wjatscheslaw, eine Anfrage vom Hörer ist eingetroffen. Er möchte tief in Bash, Csh, Sed und Awk eintauchen. “ Dies sind dichte Unix-Dienstprogramme, die die Leute in einem zotteligen Jahr kannten. Im Moment wird es ein bisschen dichtes Unix geben. Wir werden dieses Paket installieren (wir müssen die Ausgabe so formatieren, dass sie besser strukturiert ist):



Und das gesamte Team wird so aussehen:



Ich werde nicht sagen, wie sich der Rückkehrcode in Dos von Unix unterscheidet. Als nächstes werde ich nur die Zeilen herausfiltern, die den Schalter enthalten, die zusätzlichen Leerzeichen löschen und die erforderlichen Felder durch die Leerzeichen schneiden:





Lassen Sie uns das Ergebnis sehen und Sie werden sehen, wie es sich vom vorherigen unterscheidet. Ein bisschen mehr "magisches" Unix. Verarbeitung der Umwandlung von Informationen in strukturierte (z. B. switch2). Anstelle dieser unstrukturierten Informationen (viele Leerzeichen, einige seltsame Tasten):



Die Ausgabe erscheint:



Switch2 ist über die Schnittstellen Fas 0/6 (von Switch2) und Fas 0/5 (von Switch3) mit Switch3 verbunden. Die Tabelle stellt sich heraus: eine Art Schalter, mit dem sie über welche Schnittstellen verbunden ist.
Während dieses Protokolls verlassen RSH und CDP. Nachdem wir diese Informationen erhalten haben, zeichnen wir diese Links auf allen Schaltern. Dazu benötigen wir Informationen darüber, zu welchen Switches eine Verbindung hergestellt werden soll. Sie können eine Textdatei erhalten, in der alle Schalter aufgelistet sind ... Aber es ist kein Sport!

Wir müssen den Schalter nur physisch hinzufügen, und er sollte vom Zabbix automatisch erkannt werden. Wir haben bereits eine Datenbank mit Schaltern in Zabbix. Wie kann eine Anwendung Informationen über Switches von Zabbix erhalten?

Zabbix API


Die Zabbix-API wird mit dem "wunderbaren" JSON-Protokoll geschrieben. Ich habe die Programmierung in jenen Tagen beendet, als JSON noch nicht vorhanden war, daher für mich wie für den Administrator ... Heutzutage gab es keinen solchen Müll! Hier ist eine Textdatei für mich - das ist normal, aber JSON ... (
nur ein Scherz ) JSON ist so JSON!

JSON ist das Format für den Datenaustausch mit dem Webserver. Das Dienstprogramm cURL ist eines dieser praktischen Dienstprogramme, mit denen Sie Anfragen an den Webserver senden können:





Ich werde nicht näher auf die POST-Anfrage, die GET-Anfrage und die GET-Anfrage eingehen Ich werde kurz sagen. In Zabbix, das hier funktioniert:



Diese Anwendung kommt herein:



Welches ist bereit, eine solche Anfrage in "beängstigenden" geschweiften Klammern anzunehmen (dies ist JSON):



Diese Anfrage gibt an, was ich mit Zabbix machen möchte, die Parameter werden angezeigt:



Ein Zabbix gibt eine Antwort. Hier ist ein Beispiel mit der Aufschrift "Zabbix". Bitte geben Sie mir eine Authentifizierungszeichenfolge, damit ich Ihnen weitere Anfragen senden kann. " Ich bestätige meine Anmeldeinformationen mit Login und Passwort:



Eine solche JSON-Anfrage gibt jetzt eine JSON-Antwort an uns zurück:



In dieser JSON-Antwort wird eine solche Zeile angezeigt:



Dies ist ein Authentifikator, der für die verbleibenden Anfragen verwendet werden kann.

Arbeiten Sie mit Hostobjekten


Wir erinnern uns, warum wir angefangen haben, JSON zu studieren: Wir möchten die Switch-Datenbank von Zabbix erhalten. Welche Schalter sollen abgefragt werden? Lass es uns rausholen!

Lernen Sie kennen: Die Zabbix-API enthält unter anderem die Methode host.get:



Host - das sind unsere Hosts. Holen ist ein Geben. Dann weise ich darauf hin: gib mir Gastgeberinformationen!



In den Parametern sage ich: Geben Sie alles aus, was Sie über Hosts wissen:



Aber ich muss meine Anfrage mit dieser Zeile begleiten:



Lassen Sie uns demonstrieren. Um es mir bequem zu machen, werde ich diese Anfrage



kopieren : Und ich werde den Authentifikator einfügen, den Zabbix mir zurückgegeben hat:



Also, Zabbix Api: Wir haben uns angesehen, wie man den Zabbix um einen Authentifikator für den Zugriff bittet. Und dann zeige ich, wie man diesen Authentifikator verwendet, um eine Antwort zu erhalten:



Ich denke alles ist klar. Sie können sogar sehen, ob Sie eine Lupe nehmen. Erkennst du switch1? Irgendwo gibt es einen Schalter2 ...



Ich habe mir lange die Augen gebrochen und mich dann entschlossen zu lesen, wie man mit diesem JSON in der Kommandozeile arbeitet. Und eine der Empfehlungen war: Verwenden Sie JSON Query. Sie ist sehr gesund, hellt die Antwort auf, siehe:





Erstens ist alles gefärbt - es ist schon gut; zweitens sind hier switch2, switch1 deutlich sichtbar:



Wenn wir ein wenig an JSON Query basteln, werden wir viele interessante Dinge sehen. Und um diese „Krokodile“ nicht jedes Mal aus dem Notizbuch zu kopieren, schlage ich vor, festzulegen, auf was wir die Arbeit mit unserem „Zabbix“ programmieren werden. Es gibt eine Zabbix-API - dies ist JSON, es gibt eine Reihe von Programmiersprachen. JSON scheint sich auf ein Java-Skript zu beziehen, aber tatsächlich werden am häufigsten andere Sprachen verwendet, um mit Zabbix zu arbeiten - zum Beispiel Perl, ein Perl-Skript, das etwas tut.

Anfragen in Form von Bash-Skripten stellen


Perl ist heute keine modische Sprache, veraltet. Wenn ich wieder von vorne anfangen würde, würde ich wahrscheinlich anfangen, Pyton zu lernen. Und es ist definitiv bekannt, dass es unter "Python" eine praktische Bibliothek für die Arbeit mit "Zabbix" gibt. Aber da wir uns hier versammelt haben und keine Sprachen bevorzugen, verwende ich diese Sprache:



Die Sprache des Systemadministrators, das heißt ich - Bash! Deshalb werde ich diese Anfragen an Zabbix richten: Ich werde



sie in Form von Skripten ausstellen: Die



Skripte sind fertig, ich werde sie kopieren. Sie sehen höllisch aus. Ich denke, guter Python-Code wird viel besser lesbar sein. Da ich selbst "Python" nicht kenne und keine Präferenz geben möchte, werde ich über das schreiben, was dem Systemadministrator am Herzen liegt:



Ich werde Ihnen nicht sagen, was diese Rückschläge sind (und Gott segne sie). Die Authentifizierungszeichenfolge wird jedoch in Form einer Variablen gerahmt, die wir zuvor exportieren müssen:





Welchen Wert hatte sie für uns? Und jetzt, anstatt die langen Zeilen zu kopieren, kann ich einfach das Skript ausführen:



Das Skript gibt eine vollständige Naht zurück. Mit JSON Query können Sie Folgendes erreichen:





Denken Sie an die Aufgabe: Holen Sie sich die Datenbank der Switches in Zabbix!

Ich werde das Ergebnis sofort zeichnen. Ich werde lange nicht erzählen und im Kreisverkehr, was hier ist und wie. Unsere Aufgabe ist entmutigend:



Hier ist ein solches Ergebnis, schauen Sie, was es enthält. Hier steht, dass wir solche Schalter in Zabbix haben, und dies (10105, 10106, 10107) ist die interne Schalterkennung „Zabbiksk“:



Das Ergebnis war eine flache Datei. Wenn Sie jeden neuen Switch hinzufügen, müssen Sie dieses Skript ausführen, um eine Datei zu erstellen. Damit wir keine solchen "Krokodile" haben, werde ich diese Zeile in das Skript selbst aufnehmen:





Und es wird eine ordentliche Tabellenansicht mit uns zurückgeben. Jetzt werde ich zeigen. Ich führe das Skript aus, es zeigt diese Datei an und speichert sie sofort:



Das Dienstprogramm tee ist ein gutes Dienstprogramm, das das Ergebnis in eine Datei schreibt und das Ergebnis ausgibt. Wir haben jetzt 3 Schalter und wir haben eine Textdatei, in der alle Schalter aufgelistet sind:



Jetzt können Sie jeden dieser Schalter über RSH abfragen und herausfinden, wer mit was verbunden ist.
Also haben wir die Switch-Datenbank. Unser oberstes Ziel sind Karten!

Eine Liste der Karten und ihrer Elemente von Zabbix erhalten


Wie arbeite ich mit Karten? Lassen Sie uns lernen, wie man Informationen über Karten von Zabbix liest. Ich werde dieses Skript kopieren:





Wer es mag, kann alle diese Skripte verwenden. Ich habe versucht, sie so weit wie möglich zu vereinfachen - es geht nicht einfacher. Wenn Sie herausfinden, wie Sie es vereinfachen können, schreiben Sie, ich werde es korrigieren:



Dieses Skript ↑ wendet sich mit einer map.get-Anfrage an Zabbix und sagt: „Erzählen Sie mir von den Links und erzählen Sie mir von den Elementen, die diese Links miteinander verbinden.“

Jetzt führe ich dieses Skript aus:



Und ich zeige das Ergebnis:



Genau wie Informationen über Hosts ist es sehr einfach, Informationen über Karten von Zabbix zu erhalten. Jede Karte hat ihren Namen: Die



folgenden Elemente sind in dieser Karte enthalten. Erkennst du die Nummer? Dies ist das interne Element von Zabbix:



Das Unangenehmste ist, dass in Zabbix die Elemente wieder nummeriert werden. Links ist das ID-Element, rechts ist die Nummerierung des Elements in der Karte:



Das heißt, in Zabbix hat jeder Host eine Nummer, und auf der Karte gibt es eine andere Nummer - diese Kette wird erhalten. Das heißt, der Schalter switch1 wird im Zabbix 10105 und auf der Karte 2 genannt (eine leichte Komplikation der Aufgabe wird erhalten).

Wir bringen alles über CDP und RSH zusammen und finden heraus, wie Switches mit Schnittstellen verbunden sind


Der letzte Teil dieses Skripts ist, dass ich Informationen erhalten muss, welche Bezeichner von Zabbix mit welchen Bezeichnern auf der Karte verknüpft sind. Schauen Sie, in "Zabbix" ist hier diese Kennung (10105, 10106 usw.) und auf der Karte - 2, 3 usw.:



Traditionell werde ich dies in einer Textdatei speichern:



Jetzt haben wir fast alles. Es gibt Informationen darüber, welche Schalter in dieser Datei enthalten sind (welche Kennungen in Zabbix werden verwendet):



Und wir haben Informationen darüber, welche Kennung auf der Karte mit welcher Zabbix-Kennung verknüpft ist (z. B. hat Schalter1 die Nummer 10105 in Zabbix und so weiter) Kartennummer 10105 hat die Kennung 2):





Ich bin unschuldig! Die Jungs haben das in Zabbix geschrieben. Aber ich bin mir sicher, dass es einen Grund gibt, warum sie keine direkten Bezeichner auf der Karte verwenden. Möglicherweise, weil dasselbe Objekt mehrmals auf der Karte angezeigt werden kann und eine eindeutige Kennung haben muss. Daher ist die Kette länger.

Und hier werde ich wahrscheinlich dieses höllische kleine kommentieren. Play it:



In der Schleife lese ich die Zeilen, die beschreiben, mit welchem ​​Switch mit welcher Zabbix-Kennung



:



Ich verbinde mich über RSH mit jedem Switch vom Zabbix: Ich lese, mit welchen Hosts er verbunden ist. Ich leite dieses Ergebnis in einen anderen Zyklus um: Dieser



liest wiederum die Bezeichner und findet heraus, wer mit wem verbunden ist: Ich werde



die Ergebnisse dieses Skripts zeigen (chmod + x):



Auf der Karte ist der zweite Schalter über die entsprechenden Schnittstellen (Fas 0/5 - für den zweiten, Fas 0/6 - für den dritten ↑) mit dem dritten verbunden (denken Sie daran, dass die Bezeichner auf der Karte). Wir müssen diese Namen auf die Links zeichnen, erstellen.

Wenn wir bis zu diesem Moment nur Informationen von Zabbix lesen (Hosts, Karten wurden gelesen usw.), müssen wir jetzt Informationen an Zabbix schreiben.

Speichern wir das Ergebnis:



Kommunikationslinien in Zabbix zeichnen


Ich habe beschlossen, ein einfaches Skript zu schreiben, das etwas in Zabbix ändert. Ehrlich gesagt habe ich die API auf diese Weise studiert - es war mir wichtig, dass etwas Einfaches funktioniert:





Das erste Skript bezieht sich nicht auf Aufgaben - es ändert den Namen der Karte (um zu sehen, wie es gemacht wird). Wenn wir etwas in Zabbix ändern möchten, müssen wir es auch über die POST-Anforderung anwenden und in JSON beschreiben, jedoch unter Verwendung der map.update-Methode. Unter den Parametern müssen wir explizit angeben: MAPID, die die gewünschte Karte findet, und MAPNAME, die den Namen der Karte ändert:



Dies ist der minimale Parametersatz. Diese Parameter selbst:



Übergeben Sie durch die Variablen die Skriptargumente. Ich mache das Skript ausführbar (chmod + x): Ich führe es aus



, wie im Trainingshandbuch beschrieben. Wenn alles korrekt ist, sollte die Karte Super MAP heißen:



Überwachung - Karten - voila:



Einfach zu ändern - Super MAP2:



Alles funktioniert:



Aber unsere Aufgabe ist kompliziert - Kommunikationsleitungen zu ändern!



Es ist erforderlich, JSON zu generieren, das unsere Karte und alle Kommunikationsleitungen beschreibt. Dazu





erstelle ich ein anderes Skript: Die Tatsache, dass ich viele Skripte habe, bedeutet nicht, dass dies im Unternehmen durchgeführt werden sollte. Im Unternehmen müssen Sie eine normale Sprache verwenden, die Sie kennen ("Python", "Pearl" oder etwas anderes), und das, was hier ist, mit einer normalen Sprache programmieren. Diese Steine, von denen jeder einfach ist, ermöglichen es zu verstehen, was, warum und wie es geht.

Ein weiteres Skript, das mehr dazu dient, zu verstehen, was zu tun ist, und nicht zu kopieren (ich werde Ihnen das fertige Produkt hier nicht verkaufen):





Dieses Skript liest diese Datei:



Welches gibt an, welches Element auf der Karte mit welchem ​​Element auf der Karte über welche Schnittstellen verbunden ist? Genauer gesagt nehmen wir ein Element auf der Karte, ein Element auf der Karte und eine Beschriftung. Dies ist ein Element auf der Karte:



Und diese Signatur sollte lauten:



Ich lese diese Datei. Ich sortiere alle Elemente auf der Karte: Ich



programmiere Links - Beschreibung von Links in Form von JASON. Die letzte Anfrage sieht folgendermaßen aus: Karte aktualisieren (Kartennummer ↓):



Links werden in dieser Variablen beschrieben:



Die in diesem Zyklus gebildete (alle Elemente und Signaturen der Karten wurden aufgezählt):



Auch hier haben wir eine entmutigende Aufgabe und beschreiben sie detailliert auf Shell ... Sicherlich haben viele von Ihnen nicht auf Shell programmiert. Sie müssen sich nur diese Texte ansehen und programmieren, was für Sie am bequemsten ist.

Ich habe die Erwartung, dass jetzt alles passieren sollte. Startete ein Skript:



Laden Sie die Kartenseite neu:



Nun, wie? Zumindest funktioniert es! Fügen wir einen weiteren Schalter hinzu und führen Sie das Skript erneut aus.

Wir nehmen den Schalter, nennen ihn switch4:



Wir zeichnen, dass es der Schalter ist:





Konfigurieren : Wir verbinden



ihn wie wir wollen (mit einem Sternchen können Sie eine Wurst zeichnen): Wir konfigurieren den



Schalter. Ich beginne:



Alles, was wir zuvor getan haben (ändern Sie einfach auf switch4 und die Adresse lautet 104):



Doppelklicken Sie auf den Switch (fügen Sie das ein, was Sie kopiert haben):



Auch hier ist es schneller, den dritten Switch (switch3) neu zu starten und die Konfiguration zu speichern:



In der Zwischenzeit wird es neu gestartet. Überprüfen Sie, ob es auf unserem neuen Switch über SNMP verfügbar ist. Wenn Zabbik es findet, ist das erste, was zu fragen ist, der Hostname SNMP. Deshalb fügen wir dieses Design unserem neuen Switch hinzu:





Jetzt warten wir darauf, dass der Switch verfügbar ist. Die 101., 102. sind verfügbar, die 103. startet neu:



Die 103. hat



geantwortet : die 104. hat geantwortet. Überprüfen Sie, ob SNMP über SNMP4



verfügbar ist: Verfügbar! Wir haben jede Chance, es in der Liste der Gastgeber zu sehen. Warten wir eine Minute (jede Minute, in der ein Netzwerk gescannt wird):



Sobald es angezeigt wurde, kehren wir zum ersten Skript zurück. Er hat Informationen von uns entladen, die im Allgemeinen wechseln:



Ihre Kabelmänner liefen, sie steckten einen neuen Schalter fest, Sie hoben den Link auf und er erschien automatisch in Zabbix. Dementsprechend sollten wir hier sehen, dass der vierte Schalter erschienen ist:



Unsere Datenbank wird automatisch gefüllt.

Wir reparieren das Material (add switch4), führen das endgültige Skript aus


Dann müssen Sie leider weglaufen und unseren Schalter auf der Karte anzeigen:



Nicht nur Ihre Kabelmänner sind gelaufen, Sie haben nicht nur den Link konfiguriert - Sie müssen immer noch hierher gehen und sagen: „Wir fügen einen neuen Schalter hinzu.“



Suchen Sie, wo es sein soll, und geben Sie an, dass wir einen Host haben, switch4, und zeichnen Sie auch, dass es sich um einen Switch handelt:



Und aktualisieren Sie (wir zeichnen noch keine Kommunikationslinie!): Denken Sie



jetzt daran, dass unsere Kommunikationsleitungsskripte auf der Grundlage des CDP-Protokolls erstellt wurden. Um CDP-Informationen vom Switch zu erhalten, müssen Sie den RSH-Zugriff darauf konfigurieren. Erinnerst du dich, ich habe mich für diese Methode entschieden?





Wenn alles in Ordnung ist, kann ich es versuchen, dann kann ich RSH versuchen - Informationen über die Verbindung vom 4. Switch anfordern. Hier sagt er: "Ich bin mit der dritten verbunden, auf meiner Seite - der zehnten, andererseits - der achten Schnittstelle."



Sie haben es der Karte hinzugefügt, und wir haben eine Korrespondenztabelle zwischen den Kennungen im Zabbix und den Kennungen auf der Karte (siehe, es ist die fünfte auf der Karte): Sie





haben RSH erhöht. Jetzt können wir eine Verbindung herstellen: Welche Switches sind über welche Links verbunden (wir haben die Textdatei erhalten):





Versuchen wir, das endgültige Skript auszuführen, das diese Textdatei liest und eine JASON-Anforderung zum Aktualisieren der Karten generiert und alle Links auf der Karte neu







zeichnet : Nun, wie? Beeindruckend? Ich habe es in 45 geplanten Minuten nicht geschafft, aber immer noch schnell (ca. 75 Minuten) - wahrscheinlich wird es nicht schneller funktionieren.

Alle! Ich bin sehr glücklich Freunde - es hat geklappt. Das Trainingshandbuch finden Sie hier: https://wiki.val.bmstu.ru . Wenn Sie es nicht finden, schreiben Sie an die Mail: val@bmstu.ru, val@specialist.ru - Ich werde es gerne senden. Ein Webinar wird auf specialist.ru erscheinen - ich werde dies sicher überprüfen.

Und vor allem, meine Freunde, dass dies alles nicht umsonst war, sondern mit dem listigen Ziel, Sie oder Ihre Kollegen zu unserem zweitägigen Kurs zu überreden, der eine Vielzahl von Aufgaben im Zusammenhang mit Zabbix versteht: Erkennung und Abstimmung auf niedriger Ebene ... Nicht oben, wie es jetzt ist, aber im Detail, mit Labor - Sie werden es tun: Bis Sie es tun, werde ich Sie nicht rauslassen.
Ich freue mich, Sie, Ihre Kollegen, zu sehen! Briefe schreiben.

Bis bald!


Ein bisschen Werbung :)


Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Ihren Freunden Cloud-basiertes VPS für Entwickler ab 4,99 US-Dollar empfehlen , ein einzigartiges Analogon von Einstiegsservern, das von uns für Sie erfunden wurde: Die ganze Wahrheit über VPS (KVM) E5-2697 v3 (6 Kerne) 10 GB DDR4 480 GB SSD 1 Gbit / s ab 19 $ oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).

Dell R730xd 2-mal günstiger im Equinix Tier IV-Rechenzentrum in Amsterdam? Nur wir haben 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2,6 GHz 14C 64 GB DDR4 4 x 960 GB SSD 1 Gbit / s 100 TV von 199 US-Dollar in den Niederlanden!Dell R420 - 2x E5-2430 2,2 GHz 6C 128 GB DDR3 2x960 GB SSD 1 Gbit / s 100 TB - ab 99 US-Dollar! Lesen Sie mehr über den Aufbau eines Infrastrukturgebäudes. Klasse C mit Dell R730xd E5-2650 v4-Servern für 9.000 Euro pro Cent?

Source: https://habr.com/ru/post/undefined/


All Articles