Das verteilte Überwachungssystem Zabbix verwendet SNMP- und JMX-Kanäle zum Sammeln von Daten

Das verteilte Überwachungssystem Zabbix verwendet SNMP- und JMX-Kanäle zum Sammeln von Daten

Im vorherigen Artikel haben wir etwas über die passive, aktive und Webüberwachung von Zabbix gelernt. Weitere Informationen finden Sie unter https://www.jb51.net/article/200679.htm. Heute lernen wir etwas über Zabbix, das SNMP- und JMX-Kanäle zum Sammeln von Daten verwendet.

1. Einführung in das SNMP-Protokoll

SNMP ist die Abkürzung des "einfachen Netzwerkverwaltungsprotokolls". Geräte, Geräte, die von verschiedenen Herstellern erzeugt werden, und Geräte mit verschiedenen Modellen, damit Administratoren ein einheitliches Erscheinungsbild verwalten können, können Geräte in verschiedenen physischen Räumen verwaltet werden. Durch die Internet-Architektur (IAB) wurde die Einfachheit von SNMP in der Internet-Ära entwickelt.

SNMP v1 verwendet die Community-Name-Authentifizierung. Der Community-Name wird verwendet, um die Beziehung zwischen dem SNMP-NMS und dem SNMP-Agenten zu definieren. Wenn der in der SNMP-Nachricht enthaltene Community-Name vom Gerät nicht erkannt wird, wird die Nachricht verworfen. Der Community-Name spielt eine ähnliche Rolle wie ein Passwort, um den Zugriff des SNMP-NMS auf den SNMP-Agenten zu beschränken.

SNMP v2c verwendet auch die Community-Name-Authentifizierung. Es ist mit SNMP v1 kompatibel und erweitert die Funktionen von SNMP v1. Es bietet mehr Operationstypen (GetBulk und InformRequest), unterstützt mehr Datentypen (Counter64 usw.), bietet ausführlichere Fehlercodes und kann Fehler genauer unterscheiden.

SNMP v3 bietet einen Authentifizierungsmechanismus, der auf dem benutzerbasierten Sicherheitsmodell (USM) basiert. Benutzer können Authentifizierungs- und Verschlüsselungsfunktionen festlegen. Die Authentifizierung wird verwendet, um die Legitimität des Nachrichtenabsenders zu überprüfen und den Zugriff durch illegale Benutzer zu verhindern. Die Verschlüsselung wird verwendet, um die Übertragungsnachrichten zwischen dem NMS und dem Agenten zu verschlüsseln und so Abhören zu verhindern. Durch die Kombination von Authentifizierungs- und Verschlüsselungsfunktionen kann die Kommunikation zwischen dem SNMP-NMS und dem SNMP-Agent sicherer gemacht werden.

2. SNMP-Arbeitsmechanismus

SNMP-Arbeitsmechanismus SNMP-Netzwerkelemente werden in zwei Typen unterteilt: NMS und Agent. NMS (Network Management Station) ist eine Workstation, die das SNMP-Clientprogramm ausführt und eine sehr benutzerfreundliche Mensch-Computer-Interaktionsschnittstelle bereitstellen kann, um Netzwerkadministratoren die Erledigung der meisten Netzwerkverwaltungsaufgaben zu erleichtern. Ein Agent ist ein auf dem Gerät laufender Prozess, der für den Empfang und die Verarbeitung von Anforderungsnachrichten vom NMS zuständig ist. In einigen Notfallsituationen, etwa wenn sich der Schnittstellenstatus ändert, benachrichtigt der Agent das NMS auch proaktiv. NMS ist der Manager des SNMP-Netzwerks und Agent ist das verwaltete Gerät des SNMP-Netzwerks. NMS und Agent tauschen Verwaltungsinformationen über das SNMP-Protokoll aus.

3. SNMP-Dateninteraktion

Um Informationen auszutauschen, haben der SNMP-Verwaltungsprozess und der Agentenprozess zuvor fünf Nachrichtentypen definiert:

Get-Request-Vorgang: Ruft einen oder mehrere Parameterwerte vom Proxy-Prozess ab.

Get-Next-Request-Vorgang: Ruft den nächsten Parameterwert eines oder mehrerer Parameter aus dem Proxy-Prozess ab.

Set-Request-Vorgang: Legen Sie einen oder mehrere Parameterwerte des Agentenprozesses fest.

Get-Response-Vorgang: Gibt einen oder mehrere Parameterwerte zurück. Dieser Vorgang wird vom Agentenprozess ausgegeben.

Trap-Vorgang: Der Agentenprozess sendet aktiv eine Nachricht, um den Verwaltungsprozess darüber zu benachrichtigen, dass etwas passiert ist.

SNMP-Dateninteraktionsdiagramm

4. SNMP-Organisationsstruktur

Ein vollständiges SNMP-System umfasst hauptsächlich die folgenden Aspekte: SNMP-Nachrichtenprotokoll. SMI (Structure of Management Information), ein Satz allgemeiner Strukturen und Darstellungssymbole. Management Information Base (MIB): Die Management Information Base enthält alle Parameter, die für alle Agentenprozesse abgefragt und geändert werden können. OID (Object Identifiers), eine OID ist ein eindeutiges Schlüssel-Wert-Paar, das zur Identifizierung bestimmter Informationen (Objektkennung) eines bestimmten Geräts verwendet wird, wie z. B. Portinformationen, Gerätename usw.

5. SNMP-MIB

Die sogenannte (MIB) Management Information Base ist eine Sammlung von Informationen, die in allen Agentenprozessen enthalten sind und vom Managementprozess abgefragt und festgelegt werden können. MIB basiert auf einem Objektkennungsbaum. Eine Objektkennung ist eine Folge von Ganzzahlen, die durch "." getrennt sind. Diese Ganzzahlen bilden eine Baumstruktur, ähnlich dem DNS- oder Unix-Dateisystem. MIB ist in mehrere Gruppen unterteilt, z. B. System-, Schnittstellen-, At- (Adressübersetzung) und IP-Gruppen. Die Kennung iso.org.dod.internet.private.enterprises (1.3.6.1.4.1) ist für Herstelleranpassungen reserviert. Huawei hat beispielsweise die Kennung 1.3.6.1.4.1.2011 und H3C die Kennung 1.3.6.1.4.1.25506.

Einige häufig verwendete OIDs in Centos

6. Aktivieren Sie SNMP unter Linux

[root@node05 ~]# yum install -y net-snmp

Tipp: Die obige Installation dient der Installation des SNMP-Agenten, der auf dem überwachten Ende ausgeführt wird.

Installieren Sie das SNMP-Client-Tool

[root@node05 ~]# yum install -y net-snmp-utils

Konfigurieren Sie SNMP, um Clients in bestimmten Communities den Datenabruf zu ermöglichen, und welche Berechtigungen SNMP erteilt werden, um den Zugriff auf bestimmte Daten zu ermöglichen.

Tipp: Die obige Konfiguration bedeutet, dass der Community -Name zuerst einem Sicherheitsnamen nicht konfigurieren wird. Zweitens wird der Sicherheitsname nicht konfigurieren, und die Sicherheitsmodi V1 und V2C sind der Gruppe hinzugefügt. Knoten oder Unterbälde dürfen zu dieser Ansicht hinzugefügt werden. EE ist die Kennung (OID) des Datenobjekts, das wir erhalten möchten.

Beispiel: Autorisieren Sie die Systemansicht, 1 Minute lang Daten zur CPU-Auslastung des Betriebssystems abzurufen

Tipp: Fügen Sie einfach die entsprechende OID der 1-Minuten-CPU-Auslastung zur Systemansicht hinzu.

Starten Sie snmpd

[root@node05 ~]# systemctl start snmpd.service
[root@node05 ~]# ss -unl
Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port  
UNCONN 0 0 *:161 *:*   
UNCONN 0 0 127.0.0.1:323 *:*   
UNBEFESTIGT 0 0 ::1:323 :::*   
[root@node05 ~]#

Tipp: Bitte stellen Sie sicher, dass der UDP-Port 161 normal lauscht;

Überprüfung: Verwenden Sie das Tool snmpget, um die CPU-Auslastungsdaten für 1 Minute auf node05 abzurufen

[root@node05 ~]# snmpget -c public -v 2c node05 .1.3.6.1.4.1.2021.10.1.3.1
UCD-SNMP-MIB::laLoad.1 = STRING: 0,00
[root@node05 ~]# Betriebszeit
 20:57:49, 35 Minuten aktiv, 1 Benutzer, durchschnittliche Auslastung: 0,00, 0,02, 0,05
[root@node05 ~]#

Tipp: Sie können sehen, dass die vom SNMPGET-Tool erhaltenen Daten dieselben sind wie die vom Uptime-Befehl erhaltenen Daten. Sie können oid verwenden, um die zu erhaltenden Daten anzugeben, oder Sie können mib verwenden, um sie zu erhalten.

[root@node05 ~]# snmpget -c public -v 2c node05 UCD-SNMP-MIB::laLoad.1
UCD-SNMP-MIB::laLoad.1 = STRING: 0,00
[root@node05 ~]#

Verwenden Sie das Tool snmpwalk, um alle Daten unter Nicht-Blattknoten abzurufen

Autorisieren Sie zunächst SNMP, den entsprechenden Teilbaum anzuzeigen

Tipp: Der Inhalt im roten Feld oben zeigt an, dass die Systemansicht den Teilbaum .1.3.6.1.2.1.25 enthält, was bedeutet, dass alle Teilbäume und Blattknoten darunter angezeigt werden können.

Starten Sie snmpd neu.

[root@node05 ~]# systemctl snmpd.service neu starten
[root@node05 ~]# ss -unl
Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port  
UNCONN 0 0 *:161 *:*   
UNCONN 0 0 127.0.0.1:323 *:*   
UNBEFESTIGT 0 0 ::1:323 :::*   
[root@node05 ~]#

Holen Sie sich die Systemprozessliste

[root@node05 ~]# snmpwalk -c public -v 2c node05 .1.3.6.1.2.1.25.4.2.1.2
HOST-RESOURCES-MIB::hrSWRunName.1 = STRING: "systemd"
HOST-RESOURCES-MIB::hrSWRunName.2 = STRING: "kthreadd"
HOST-RESOURCES-MIB::hrSWRunName.3 = STRING: "ksoftirqd/0"
HOST-RESOURCES-MIB::hrSWRunName.5 = STRING: "kworker/0:0H"
HOST-RESOURCES-MIB::hrSWRunName.7 = STRING: "migration/0"
HOST-RESOURCES-MIB::hrSWRunName.8 = STRING: "rcu_bh"
HOST-RESOURCES-MIB::hrSWRunName.9 = STRING: "rcu_sched"
HOST-RESOURCES-MIB::hrSWRunName.10 = STRING: "watchdog/0"
HOST-RESOURCES-MIB::hrSWRunName.11 = STRING: "watchdog/1"
HOST-RESOURCES-MIB::hrSWRunName.12 = STRING: "migration/1"
HOST-RESOURCES-MIB::hrSWRunName.13 = STRING: "ksoftirqd/1"
HOST-RESOURCES-MIB::hrSWRunName.14 = STRING: "kworker/1:0"
HOST-RESOURCES-MIB::hrSWRunName.15 = STRING: "kworker/1:0H"
HOST-RESOURCES-MIB::hrSWRunName.17 = STRING: "kdevtmpfs"
HOST-RESOURCES-MIB::hrSWRunName.18 = STRING: "netns"
HOST-RESOURCES-MIB::hrSWRunName.19 = STRING: "khungtaskd"
HOST-RESOURCES-MIB::hrSWRunName.20 = STRING: "Rückschreiben"
HOST-RESOURCES-MIB::hrSWRunName.21 = STRING: "kintegrityd"
HOST-RESOURCES-MIB::hrSWRunName.22 = STRING: "bioset"
HOST-RESOURCES-MIB::hrSWRunName.23 = STRING: "kblockd"
HOST-RESOURCES-MIB::hrSWRunName.24 = STRING: "md"
HOST-RESOURCES-MIB::hrSWRunName.25 = STRING: "kworker/0:1"
HOST-RESOURCES-MIB::hrSWRunName.30 = STRING: "kswapd0"
HOST-RESOURCES-MIB::hrSWRunName.31 = STRING: "ksmd"
HOST-RESOURCES-MIB::hrSWRunName.32 = STRING: "khugepaged"
HOST-RESOURCES-MIB::hrSWRunName.33 = STRING: "Krypto"
HOST-RESOURCES-MIB::hrSWRunName.41 = STRING: "kthrotld"
HOST-RESOURCES-MIB::hrSWRunName.42 = STRING: "kworker/u256:1"
HOST-RESOURCES-MIB::hrSWRunName.43 = STRING: "kmpath_rdacd"
HOST-RESOURCES-MIB::hrSWRunName.44 = STRING: "kworker/1:1"
HOST-RESOURCES-MIB::hrSWRunName.45 = STRING: "kpsmoused"
HOST-RESOURCES-MIB::hrSWRunName.47 = STRING: "ipv6_addrconf"
HOST-RESOURCES-MIB::hrSWRunName.66 = STRING: "deferwq"
HOST-RESOURCES-MIB::hrSWRunName.98 = STRING: "kauditd"
HOST-RESOURCES-MIB::hrSWRunName.265 = STRING: "kworker/1:2"
HOST-RESOURCES-MIB::hrSWRunName.282 = STRING: "ata_sff"
HOST-RESOURCES-MIB::hrSWRunName.283 = STRING: "scsi_eh_0"
HOST-RESOURCES-MIB::hrSWRunName.284 = STRING: "scsi_tmf_0"
HOST-RESOURCES-MIB::hrSWRunName.285 = STRING: "scsi_eh_1"
HOST-RESOURCES-MIB::hrSWRunName.286 = STRING: "scsi_tmf_1"
HOST-RESOURCES-MIB::hrSWRunName.289 = STRING: "mpt_poll_0"
HOST-RESOURCES-MIB::hrSWRunName.290 = STRING: "mpt/0"
HOST-RESOURCES-MIB::hrSWRunName.298 = STRING: "scsi_eh_2"
HOST-RESOURCES-MIB::hrSWRunName.299 = STRING: "scsi_tmf_2"
HOST-RESOURCES-MIB::hrSWRunName.300 = STRING: "ttm_swap"
HOST-RESOURCES-MIB::hrSWRunName.375 = STRING: "kdmflush"
HOST-RESOURCES-MIB::hrSWRunName.376 = STRING: "bioset"
HOST-RESOURCES-MIB::hrSWRunName.387 = STRING: "kdmflush"
HOST-RESOURCES-MIB::hrSWRunName.388 = STRING: "bioset"
HOST-RESOURCES-MIB::hrSWRunName.401 = STRING: "bioset"
HOST-RESOURCES-MIB::hrSWRunName.402 = STRING: "xfsalloc"
HOST-RESOURCES-MIB::hrSWRunName.403 = STRING: "xfs_mru_cache"
HOST-RESOURCES-MIB::hrSWRunName.404 = STRING: "xfs-buf/dm-0"
HOST-RESOURCES-MIB::hrSWRunName.405 = STRING: "xfs-data/dm-0"
HOST-RESOURCES-MIB::hrSWRunName.406 = STRING: "xfs-conv/dm-0"
HOST-RESOURCES-MIB::hrSWRunName.407 = STRING: "xfs-cil/dm-0"
HOST-RESOURCES-MIB::hrSWRunName.408 = STRING: "xfs-reclaim/dm-"
HOST-RESOURCES-MIB::hrSWRunName.409 = STRING: "xfs-log/dm-0"
HOST-RESOURCES-MIB::hrSWRunName.410 = STRING: "xfs-eofblocks/d"
HOST-RESOURCES-MIB::hrSWRunName.411 = STRING: "xfsaild/dm-0"
HOST-RESOURCES-MIB::hrSWRunName.467 = STRING: "kworker/1:1H"
HOST-RESOURCES-MIB::hrSWRunName.468 = STRING: "kworker/0:1H"
HOST-RESOURCES-MIB::hrSWRunName.482 = STRING: "systemd-journal"
HOST-RESOURCES-MIB::hrSWRunName.506 = STRING: "lvmetad"
HOST-RESOURCES-MIB::hrSWRunName.511 = STRING: "systemd-udevd"
HOST-RESOURCES-MIB::hrSWRunName.544 = STRING: "xfs-buf/sda1"
HOST-RESOURCES-MIB::hrSWRunName.545 = STRING: "xfs-data/sda1"
HOST-RESOURCES-MIB::hrSWRunName.546 = STRING: "xfs-conv/sda1"
HOST-RESOURCES-MIB::hrSWRunName.547 = STRING: "xfs-cil/sda1"
HOST-RESOURCES-MIB::hrSWRunName.548 = STRING: "xfs-reclaim/sda"
HOST-RESOURCES-MIB::hrSWRunName.549 = STRING: "xfs-log/sda1"
HOST-RESOURCES-MIB::hrSWRunName.550 = STRING: "xfs-eofblocks/s"
HOST-RESOURCES-MIB::hrSWRunName.551 = STRING: "xfsaild/sda1"
HOST-RESOURCES-MIB::hrSWRunName.554 = STRING: "nfit"
HOST-RESOURCES-MIB::hrSWRunName.598 = STRING: "kworker/u257:0"
HOST-RESOURCES-MIB::hrSWRunName.599 = STRING: "hci0"
HOST-RESOURCES-MIB::hrSWRunName.600 = STRING: "hci0"
HOST-RESOURCES-MIB::hrSWRunName.602 = STRING: "kworker/u257:2"
HOST-RESOURCES-MIB::hrSWRunName.624 = STRING: "auditd"
HOST-RESOURCES-MIB::hrSWRunName.648 = STRING: "rsyslogd"
HOST-RESOURCES-MIB::hrSWRunName.649 = STRING: "systemd-logind"
HOST-RESOURCES-MIB::hrSWRunName.650 = STRING: "polkitd"
HOST-RESOURCES-MIB::hrSWRunName.651 = STRING: "dbus-daemon"
HOST-RESOURCES-MIB::hrSWRunName.653 = STRING: "chronyd"
HOST-RESOURCES-MIB::hrSWRunName.660 = STRING: "NetzwerkManager"
HOST-RESOURCES-MIB::hrSWRunName.662 = STRING: "irqbalance"
HOST-RESOURCES-MIB::hrSWRunName.669 = STRING: "crond"
HOST-RESOURCES-MIB::hrSWRunName.674 = STRING: "agetty"
HOST-RESOURCES-MIB::hrSWRunName.877 = STRING: "abgestimmt"
HOST-RESOURCES-MIB::hrSWRunName.976 = STRING: "sshd"
HOST-RESOURCES-MIB::hrSWRunName.1029 = STRING: "zabbix_agentd"
HOST-RESOURCES-MIB::hrSWRunName.1030 = STRING: "zabbix_agentd"
HOST-RESOURCES-MIB::hrSWRunName.1031 = STRING: "zabbix_agentd"
HOST-RESOURCES-MIB::hrSWRunName.1032 = STRING: "zabbix_agentd"
HOST-RESOURCES-MIB::hrSWRunName.1033 = STRING: "zabbix_agentd"
HOST-RESOURCES-MIB::hrSWRunName.1034 = STRING: "zabbix_agentd"
HOST-RESOURCES-MIB::hrSWRunName.1074 = STRING: "Master"
HOST-RESOURCES-MIB::hrSWRunName.1075 = STRING: "Abholung"
HOST-RESOURCES-MIB::hrSWRunName.1076 = STRING: "qmgr"
HOST-RESOURCES-MIB::hrSWRunName.1240 = STRING: "sshd"
HOST-RESOURCES-MIB::hrSWRunName.1242 = STRING: "bash"
HOST-RESOURCES-MIB::hrSWRunName.1333 = STRING: "kworker/u256:2"
HOST-RESOURCES-MIB::hrSWRunName.1666 = STRING: "kworker/0:0"
HOST-RESOURCES-MIB::hrSWRunName.1732 = STRING: "anacron"
HOST-RESOURCES-MIB::hrSWRunName.1883 = STRING: "kworker/0:2"
HOST-RESOURCES-MIB::hrSWRunName.1960 = STRING: "snmpd"
HOST-RESOURCES-MIB::hrSWRunName.1970 = STRING: "snmpwalk"
[root@node05 ~]#

Konfigurieren Sie Zabbix Web so, dass der SNMP-Kanal zum Sammeln von Daten auf node05 verwendet wird, und verknüpfen Sie die Vorlage OS Linux SNMPv2

Link-Vorlage

Überprüfen Sie die Hostliste, um zu sehen, ob der SNMP-Kanal, der Knoten05 entspricht, grün wird.

SNMP-Element hinzufügen

Tipps: Suchen Sie das Element auf dem entsprechenden Host in der Hostliste, klicken Sie dann auf „Element erstellen“, geben Sie den Elementnamen ein und wählen Sie „SNMP v2-Agent“ aus. Der Schlüssel dient hier nur zur Identifikation. Versuchen Sie, den vorhandenen integrierten Schlüssel und den benutzerdefinierten Schlüssel nicht zu wiederholen. Das Wichtigste ist, die SNMP-Abhör-IP-Adresse und den Port des entsprechenden Hosts sowie die OID oder MIB und den Community-Namen der zu erfassenden Daten einzugeben. Der Community-Name kann als Makro geschrieben werden. Der Standardwert ist {$SNMP_COMMUNITY}, dessen Wert öffentlich ist. Das Aufrufen des entsprechenden Makros ist ebenfalls möglich.

Lassen Sie uns überprüfen, ob das von uns definierte Element Daten gesammelt hat.

Oben sehen Sie die Konfiguration und Demonstration von Zabbix, wie es den SNMP-Kanal zum Sammeln von Daten verwendet. Als Nächstes sprechen wir über Zabbix, wie es den JMX-Kanal zum Überwachen von Java-Programmen verwendet.

jmx ist die Abkürzung für Java Management Extensions und ermöglicht die flexible Entwicklung nahtlos integrierter System-, Netzwerk- und Service-Management-Anwendungen über verschiedene Plattformen hinweg. Verwenden Sie den JMX-Kanal auf Zabbix, um relevante Indikatordaten des entsprechenden Java-Programms zu sammeln. Erstens unterstützt Zabbix JMX nicht nativ, sondern verlässt sich auf den Dienst Zabbix-Java-Gateway. Zweitens muss die JMX-Funktion für das Java-Programm aktiviert werden, das auf dem überwachten Host ausgeführt wird. Zabbix-Java-Gateway kann als Proxy-Dienst von Zabbix JMX verstanden werden, der dafür verantwortlich ist, den Zabbix-Server zum Sammeln von Daten über den JMX-Kanal an ihn zu delegieren und die gesammelten Daten an den Zabbix-Server zu senden. Wenn Sie also den JMX-Kanal zum Sammeln von Daten verwenden möchten, müssen wir zuerst den Zabbix-Java-Gateway-Dienst installieren und starten, dann den Zabbix-Server konfigurieren, dem Zabbix-Server die Adresse und den Port des Java-Gateway-Dienstes mitteilen und schließlich JMX am entsprechenden überwachten Ende aktivieren.

Installieren Sie Zabbix Java Gateway

[root@node04 ~]# yum install -y zabbix-java-gateway

Tipp: Dieser Dienst kann auf dem Zabbix-Server, auf einem separaten Server oder auf dem überwachten Ende installiert werden; kurz gesagt, der Zabbix-Server kann normal damit kommunizieren;

Zabbix Java Gateway konfigurieren

[root@node04 ~]# grep -Ei "^[az]" /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5
TIMEOUT=3
[root@node04 ~]#

Tipp: Oben ist die Standardkonfiguration von Java Gateway. Sie können die Standardkonfiguration beibehalten. Wenn Sie der Meinung sind, dass der Poller von Java Gateway fehlt, können Sie ihn ändern.

Starten Sie das Zabbix Java Gateway

[root@node04 ~]# systemctl start zabbix-java-gateway.service
[root@node04 ~]# ss -tnl
Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port  
HÖREN 0 128 *:6379 *:*   
HÖREN 0 128 *:80 *:*   
HÖREN 0 128 *:22 *:*   
LISTEN 0 100 127.0.0.1:25 *:*   
LISTEN 0 128 *:10050 *:*   
HÖREN 0 128 :::80 :::*   
HÖREN 0 128 :::22 :::*   
HÖREN 0 100 ::1:25 :::*   
HÖREN 0 50 :::10052 :::*   
[root@node04 ~]#

Tipp: Standardmäßig lauscht Java Gateway auf Port 10052. Bitte stellen Sie sicher, dass der Port nach dem Start lauscht.

Zabbix-Server konfigurieren

Tipp: Suchen Sie in der Konfigurationsdatei des Zabbix-Servers nach der Konfiguration des Java-Gateways. Konfigurieren Sie die IP-Adresse, den Port, die Anzahl der gestarteten Poller und das Timeout des Java-Gateways.

Starten Sie den Zabbix-Server neu.

[root@node03 ~]# systemctl zabbix-server.service neu starten
[root@node03 ~]# ss -tnl
Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port  
HÖREN 0 128 *:22 *:*   
LISTEN 0 100 127.0.0.1:25 *:*   
LISTEN 0 128 *:10050 *:*   
LISTEN 0 128 *:10051 *:*   
HÖREN 0 128 :::22 :::*   
HÖREN 0 100 ::1:25 :::*   
HÖREN 0 128 :::10051 :::*   
[root@node03 ~]#

Tipp: Stellen Sie sicher, dass der Zabbix-Server normal gestartet werden kann und der entsprechende Port sich normal im Abhörzustand befindet.

Installieren Sie den Tomcat-Dienst auf Node05

[root@node05 ~]# yum install -y tomcat-admin-webapps tomcat-webapps tomcat-docs-webapp tomcat

JMX-Funktion von Tomcat aktivieren

Vollständiger Inhalt der Konfigurationsdatei

[root@node05 ~]# grep -Ei "^[az]" /etc/tomcat/tomcat.conf
TOMCAT_CFG_LOADED="1"
TOMCATS_BASE="/var/lib/tomcats/"
JAVA_HOME="/usr/lib/jvm/jre"
CATALINA_HOME="/usr/share/tomcat"
CATALINA_TMPDIR="/var/cache/tomcat/temp"
CATALINA_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.0.45"
JAVA_OPTS="-Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory"
SECURITY_MANAGER="falsch"
[Wurzel@Knoten05 ~]

Starten Sie Tomcat

[root@node05 ~]# systemctl starte Tomcat
[root@node05 ~]# ss -tnl
Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port  
HÖREN 0 128 *:80 *:*   
HÖREN 0 128 *:22 *:*   
LISTEN 0 100 127.0.0.1:25 *:*   
LISTEN 0 128 *:10050 *:*   
LISTEN 0 128 127.0.0.1:199 *:*   
HÖREN 0 100 :::8080 :::*   
HÖREN 0 128 :::80 :::*   
HÖREN 0 128 :::22 :::*   
HÖREN 0 50 :::12345 :::*   
HÖREN 0 100 ::1:25 :::*   
HÖREN 0 128 :::10050 :::*   
LISTEN 0 1 ::ffff:127.0.0.1:8005 :::*   
HÖREN 0 50 :::44229 :::*   
HÖREN 0 50 :::35589 :::*   
HÖREN 0 100 :::8009 :::*   
[root@node05 ~]#

Tipp: Bitte stellen Sie sicher, dass sich die entsprechenden Ports im Listening-Status befinden. Der Port, den wir gerade für jmx angegeben haben, ist 12345, und der in Zabbix verwendete Standardport ist ebenfalls 12345, sodass die beiden Ports konsistent sein können.

Fügen Sie node05 im Zabbix-Web hinzu und geben Sie die Verwendung der JMX-Schnittstelle zum Sammeln von Daten an.

Link-Vorlage

Prüfen, ob der JMX-Kanal auf Knoten05 grün wird?

Prüfen Sie, ob die Überwachungselementdaten der entsprechenden Vorlage erfasst werden.

Tipp: Sie können sehen, dass die von uns verlinkte Vorlage Daten für viele Überwachungselemente erfasst hat. Das bedeutet, dass es kein Problem ist, jmx zum Sammeln von Daten zu konfigurieren. Es ist zu beachten, dass nicht alle Überwachungselemente Daten erfassen können, selbst wenn wir die Vorlage verlinken.

Dies ist das Ende dieses Artikels über das verteilte Überwachungssystem Zabbix, das SNMP- und JMX-Kanäle zum Sammeln von Daten verwendet. Weitere verwandte Inhalte zum verteilten Überwachungssystem Zabbix finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So legen Sie den Standard-Mobilfunkkanal in Android fest (50 und 60 sowie Unterstützung für Dual-SIM-Karten)
  • Detaillierte Erläuterung der gemeinsamen Codierung zweier Quellen und Kanäle basierend auf Deep Learning

<<:  Ausführliche Erläuterung der InnoDB-Sperren in der MySQL-Technologie

>>:  Java-Programmierung zum Schreiben eines äußerst praktischen JavaScript-Tabellen-Plugins

Artikel empfehlen

Docker View JVM-Speichernutzung

1. Rufen Sie den Hostcomputer des Docker-Containe...

Eine kurze Diskussion darüber, ob zu viele MySQL-Datenabfragen OOM verursachen

Inhaltsverzeichnis Auswirkungen eines vollständig...

MySQL 8.0.19 Win10 - Schnellinstallations-Tutorial

Dieses Tutorial enthält das Installationstutorial...

Detaillierte Einführung und Verwendungsbeispiele für Map-Tag-Parameter

Karten-Tags müssen paarweise vorkommen, d. h. <...

So erstellen Sie geplante Aufgaben mit dem Crond-Tool in Linux

Vorwort Crond ist ein Tool zur geplanten Ausführu...

Zusammenfassung der Vue Watch-Überwachungsmethoden

Inhaltsverzeichnis 1. Die Rolle der Uhr in Vue is...

Linux verwendet den Befehl lsof, um den Status des Dateiöffnens zu überprüfen

Vorwort Wir alle wissen, dass unter Linux „alles ...

Lösung für die hohe CPU-Auslastung des Tomcat-Prozesses

Inhaltsverzeichnis Fall Kontextwechsel-Overhead? ...

Detaillierte Diskussion der InnoDB-Sperren (Record-, Gap-, Next-Key-Sperre)

Die Datensatzsperre sperrt einen einzelnen Indexd...

So erstellen Sie einen SVN-Server unter Linux

1: SVN installieren yum install -y Subversion 2. ...

Zusammenfassung gängiger Nginx-Techniken und Beispiele

1. Priorität mehrerer Server Wenn beispielsweise ...

So installieren Sie Graphviz und beginnen mit dem Tutorial unter Windows

Herunterladen und installierenUmgebungsvariablen ...