Detailliertes Tutorial zur Überwachung von Nginx/Tomcat/MySQL mit Zabbix

Detailliertes Tutorial zur Überwachung von Nginx/Tomcat/MySQL mit Zabbix

Zabbix überwacht Nginx

Maschine A: Zabbix-Server (192.168.234.128) Maschine B: Zabbix-Client (192.168.234.125)

Vorgang auf Maschine B (Zabbix-Client):

Bearbeiten Sie die Konfigurationsdatei des virtuellen Nginx-Hosts:

[root@centos ~]# vi /etc/nginx/conf.d/default.conf

Fügen Sie den folgenden Inhalt innerhalb von server{} hinzu:

 Standort /nginx_status
 {
  stub_status ein;
  Zugriff_Abmeldung;
  127.0.0.1 zulassen;
  alles leugnen;
 }

Nginx-Konfiguration neu laden:

[root@centos ~]# nginx -s neu laden

prüfen:

[root@centos ~]# curl http://127.0.0.1/nginx_status
Aktive Verbindungen: 1 
Server akzeptiert bearbeitete Anfragen
 3 3 3 
Lesen: 0 Schreiben: 1 Warten: 0

#nginx Statusinformationen werden angezeigt

Statusbeschreibung:

Überwachungsskript hinzufügen:

vi /usr/local/sbin/ngx_status.sh

Fügen Sie den folgenden Inhalt hinzu:

#!/bin/bash
url="http://127.0.0.1/nginx_status"
curl=/usr/bin/curl

# Überprüfen Sie, ob der Nginx-Prozess existiert. Funktion Ping {
 /sbin/pidof nginx | ​​​​wc -l 
}
# Überprüfen Sie die Leistung der Nginx-Funktion aktiv {
 $curl $url 2>/dev/null| grep 'Aktiv' | awk '{print $NF}'
}
Funktion Lesen {
 $curl $url 2>/dev/null| grep 'Lesen' | awk '{print $2}'
}
Funktion schreiben {
 $curl $url 2>/dev/null| grep 'Schreiben' | awk '{print $4}'
}
Funktion warten {
 $curl $url 2>/dev/null| grep 'Warten' | awk '{print $6}'
}
Funktion akzeptiert {
 $curl $url 2>/dev/null| awk NR==3 | awk '{print $1}'
}
Funktion behandelt
 $curl $url 2>/dev/null| awk NR==3 | awk '{print $2}'
}
Funktionsanforderungen {
 $curl $url 2>/dev/null| awk NR==3 | awk '{print $3}'
}
1 Dollar

Fügen Sie Berechtigungen hinzu:

[root@centos ~]# chmod 755 /usr/local/sbin/ngx_status.sh

Bearbeiten Sie die Konfigurationsdatei zabbix_agent:

[root@centos ~]# vi /etc/zabbix/zabbix_agentd.conf

Option hinzufügen: UserParameter: UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1

Bildbeschreibung hier einfügen

Starten Sie den Dienst neu:

[root@centos ~]# systemctl starte zabbix-agent neu

Test auf Maschine A (Server):

[root@zabbix ~]# zabbix_get -s 192.168.234.125 -k 'nginx.status[akzeptiert]'
6

Erstellen Sie auf Ihrem lokalen Computer eine XML-Datei und fügen Sie den folgenden Inhalt hinzu: (passen Sie den Dateinamen an)

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
 <version>4.0</version>
 <Datum>2019-02-11T07:29:29Z</Datum>
 <Gruppen>
  <Gruppe>
   <name>Vorlagen</name>
  </Gruppe>
 </Gruppen>
 <Vorlagen>
  <Vorlage>
   <template>Vorlagen-App NGINX</template>
   <name>Vorlagen-App NGINX</name>
   <Beschreibung/>
   <Gruppen>
    <Gruppe>
     <name>Vorlagen</name>
    </Gruppe>
   </Gruppen>
   <Anwendungen>
    <Anwendung>
     <Name>nginx</Name>
    </Anwendung>
   </Anwendungen>
   <Artikel>
    <Element>
     <name>nginx-Statusserver akzeptiert</name>
     <Typ>0</Typ>
     <snmp_community/>
     <snmp_oid/>
     <key>nginx.status[akzeptiert]</key>
     <Verzögerung>60</Verzögerung>
     <historie>90d</historie>
     <trends>365d</trends>
     <status>0</status>
     <Werttyp>3</Werttyp>
     <erlaubte_Hosts/>
     <Einheiten/>
     <snmpv3_Kontextname/>
     <snmpv3_sicherheitsname/>
     <snmpv3_sicherheitslevel>0</snmpv3_sicherheitslevel>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privpassphrase/>
     <params/>
     <ipmi_sensor/>
     <authtype>0</authtype>
     <Benutzername/>
     <Passwort/>
     <öffentlicherSchlüssel/>
     <privaterSchlüssel/>
     <port/>
     <description>akzeptiert</description>
     <inventory_link>0</inventory_link>
     <Anwendungen>
      <Anwendung>
       <Name>nginx</Name>
      </Anwendung>
     </Anwendungen>
     <Wertezuordnung/>
     <logtimefmt/>
     <Vorverarbeitung>
      <Schritt>
       <Typ>10</Typ>
       <params/>
      </Schritt>
     </Vorverarbeitung>
     <jmx_endpoint/>
     <Zeitüberschreitung>3 Sek.</Zeitüberschreitung>
     <URL/>
     <Abfragefelder/>
     <Beiträge/>
     <status_codes>200</status_codes>
     <follow_redirects>1</follow_redirects>
     <Beitragstyp>0</Beitragstyp>
     <http_proxy/>
     <header/>
     <Abrufmodus>0</Abrufmodus>
     <Anfragemethode>0</Anfragemethode>
     <Ausgabeformat>0</Ausgabeformat>
     <allow_traps>0</allow_traps>
     <SSL-Zertifikatsdatei/>
     <SSL-Schlüsseldatei/>
     <SSL-Schlüssel_Passwort/>
     <verify_peer>0</verify_peer>
     <verify_host>0</verify_host>
     <master_item/>
    </item>
    <Element>
     <name>nginx Statusverbindungen aktiv</name>
     <Typ>0</Typ>
     <snmp_community/>
     <snmp_oid/>
     <key>nginx.status[aktiv]</key>
     <Verzögerung>60</Verzögerung>
     <historie>90d</historie>
     <trends>365d</trends>
     <status>0</status>
     <Werttyp>3</Werttyp>
     <erlaubte_Hosts/>
     <Einheiten/>
     <snmpv3_Kontextname/>
     <snmpv3_sicherheitsname/>
     <snmpv3_sicherheitslevel>0</snmpv3_sicherheitslevel>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privpassphrase/>
     <params/>
     <ipmi_sensor/>
     <authtype>0</authtype>
     <Benutzername/>
     <Passwort/>
     <öffentlicherSchlüssel/>
     <privaterSchlüssel/>
     <port/>
     <description>aktiv</description>
     <inventory_link>0</inventory_link>
     <Anwendungen>
      <Anwendung>
       <Name>nginx</Name>
      </Anwendung>
     </Anwendungen>
     <Wertezuordnung/>
     <logtimefmt/>
     <Vorverarbeitung/>
     <jmx_endpoint/>
     <Zeitüberschreitung>3 Sek.</Zeitüberschreitung>
     <URL/>
     <Abfragefelder/>
     <Beiträge/>
     <status_codes>200</status_codes>
     <follow_redirects>1</follow_redirects>
     <Beitragstyp>0</Beitragstyp>
     <http_proxy/>
     <header/>
     <Abrufmodus>0</Abrufmodus>
     <Anfragemethode>0</Anfragemethode>
     <Ausgabeformat>0</Ausgabeformat>
     <allow_traps>0</allow_traps>
     <SSL-Zertifikatsdatei/>
     <SSL-Schlüsseldatei/>
     <SSL-Schlüssel_Passwort/>
     <verify_peer>0</verify_peer>
     <verify_host>0</verify_host>
     <master_item/>
    </item>
    <Element>
     <name>nginx-Status-Server verarbeitet</name>
     <Typ>0</Typ>
     <snmp_community/>
     <snmp_oid/>
     <key>nginx.status[behandelt]</key>
     <Verzögerung>60</Verzögerung>
     <historie>90d</historie>
     <trends>365d</trends>
     <status>0</status>
     <Werttyp>3</Werttyp>
     <erlaubte_Hosts/>
     <Einheiten/>
     <snmpv3_Kontextname/>
     <snmpv3_sicherheitsname/>
     <snmpv3_sicherheitslevel>0</snmpv3_sicherheitslevel>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privpassphrase/>
     <params/>
     <ipmi_sensor/>
     <authtype>0</authtype>
     <Benutzername/>
     <Passwort/>
     <öffentlicherSchlüssel/>
     <privaterSchlüssel/>
     <port/>
     <description>behandelt</description>
     <inventory_link>0</inventory_link>
     <Anwendungen>
      <Anwendung>
       <Name>nginx</Name>
      </Anwendung>
     </Anwendungen>
     <Wertezuordnung/>
     <logtimefmt/>
     <Vorverarbeitung>
      <Schritt>
       <Typ>10</Typ>
       <params/>
      </Schritt>
     </Vorverarbeitung>
     <jmx_endpoint/>
     <Zeitüberschreitung>3 Sek.</Zeitüberschreitung>
     <URL/>
     <Abfragefelder/>
     <Beiträge/>
     <status_codes>200</status_codes>
     <follow_redirects>1</follow_redirects>
     <Beitragstyp>0</Beitragstyp>
     <http_proxy/>
     <header/>
     <retrieve_mode>0</retrieve_mode>
     <Anfragemethode>0</Anfragemethode>
     <Ausgabeformat>0</Ausgabeformat>
     <allow_traps>0</allow_traps>
     <SSL-Zertifikatsdatei/>
     <SSL-Schlüsseldatei/>
     <SSL-Schlüssel_Passwort/>
     <verify_peer>0</verify_peer>
     <verify_host>0</verify_host>
     <master_item/>
    </item>
    <Element>
     <name>nginx-Status-PING</name>
     <Typ>0</Typ>
     <snmp_community/>
     <snmp_oid/>
     <Schlüssel>nginx.status[ping]</Schlüssel>
     <Verzögerung>60</Verzögerung>
     <Verlauf>30 Tage</Verlauf>
     <trends>365d</trends>
     <status>0</status>
     <Werttyp>3</Werttyp>
     <erlaubte_Hosts/>
     <Einheiten/>
     <snmpv3_Kontextname/>
     <snmpv3_sicherheitsname/>
     <snmpv3_sicherheitslevel>0</snmpv3_sicherheitslevel>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privpassphrase/>
     <params/>
     <ipmi_sensor/>
     <authtype>0</authtype>
     <Benutzername/>
     <Passwort/>
     <öffentlicherSchlüssel/>
     <privaterSchlüssel/>
     <port/>
     <description>ist live</description>
     <inventory_link>0</inventory_link>
     <Anwendungen>
      <Anwendung>
       <Name>nginx</Name>
      </Anwendung>
     </Anwendungen>
     <Wertezuordnung>
      <name>Dienststatus</name>
     </Wertekarte>
     <logtimefmt/>
     <Vorverarbeitung/>
     <jmx_endpoint/>
     <Zeitüberschreitung>3 Sek.</Zeitüberschreitung>
     <URL/>
     <Abfragefelder/>
     <Beiträge/>
     <status_codes>200</status_codes>
     <follow_redirects>1</follow_redirects>
     <Beitragstyp>0</Beitragstyp>
     <http_proxy/>
     <header/>
     <Abrufmodus>0</Abrufmodus>
     <Anfragemethode>0</Anfragemethode>
     <Ausgabeformat>0</Ausgabeformat>
     <allow_traps>0</allow_traps>
     <SSL-Zertifikatsdatei/>
     <SSL-Schlüsseldatei/>
     <SSL-Schlüssel_Passwort/>
     <verify_peer>0</verify_peer>
     <verify_host>0</verify_host>
     <master_item/>
    </item>
    <Element>
     <name>nginx-Statusverbindungen werden gelesen</name>
     <Typ>0</Typ>
     <snmp_community/>
     <snmp_oid/>
     <key>nginx.status[liest]</key>
     <Verzögerung>60</Verzögerung>
     <historie>90d</historie>
     <trends>365d</trends>
     <status>0</status>
     <Werttyp>3</Werttyp>
     <erlaubte_Hosts/>
     <Einheiten/>
     <snmpv3_Kontextname/>
     <snmpv3_sicherheitsname/>
     <snmpv3_sicherheitslevel>0</snmpv3_sicherheitslevel>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privpassphrase/>
     <params/>
     <ipmi_sensor/>
     <authtype>0</authtype>
     <Benutzername/>
     <Passwort/>
     <öffentlicherSchlüssel/>
     <privaterSchlüssel/>
     <port/>
     <description>Lesen</description>
     <inventory_link>0</inventory_link>
     <Anwendungen>
      <Anwendung>
       <Name>nginx</Name>
      </Anwendung>
     </Anwendungen>
     <Wertezuordnung/>
     <logtimefmt/>
     <Vorverarbeitung/>
     <jmx_endpoint/>
     <Zeitüberschreitung>3 Sek.</Zeitüberschreitung>
     <URL/>
     <Abfragefelder/>
     <Beiträge/>
     <status_codes>200</status_codes>
     <follow_redirects>1</follow_redirects>
     <Beitragstyp>0</Beitragstyp>
     <http_proxy/>
     <header/>
     <Abrufmodus>0</Abrufmodus>
     <Anfragemethode>0</Anfragemethode>
     <Ausgabeformat>0</Ausgabeformat>
     <allow_traps>0</allow_traps>
     <SSL-Zertifikatsdatei/>
     <SSL-Schlüsseldatei/>
     <SSL-Schlüssel_Passwort/>
     <verify_peer>0</verify_peer>
     <verify_host>0</verify_host>
     <master_item/>
    </item>
    <Element>
     <name>nginx-Statusserveranforderungen</name>
     <Typ>0</Typ>
     <snmp_community/>
     <snmp_oid/>
     <key>nginx.status[Anfragen]</key>
     <Verzögerung>60</Verzögerung>
     <historie>90d</historie>
     <trends>365d</trends>
     <status>0</status>
     <Werttyp>3</Werttyp>
     <erlaubte_Hosts/>
     <Einheiten/>
     <snmpv3_Kontextname/>
     <snmpv3_sicherheitsname/>
     <snmpv3_sicherheitslevel>0</snmpv3_sicherheitslevel>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privpassphrase/>
     <params/>
     <ipmi_sensor/>
     <authtype>0</authtype>
     <Benutzername/>
     <Passwort/>
     <öffentlicherSchlüssel/>
     <privaterSchlüssel/>
     <port/>
     <description>Anfragen</description>
     <inventory_link>0</inventory_link>
     <Anwendungen>
      <Anwendung>
       <Name>nginx</Name>
      </Anwendung>
     </Anwendungen>
     <Wertezuordnung/>
     <logtimefmt/>
     <Vorverarbeitung>
      <Schritt>
       <Typ>10</Typ>
       <params/>
      </Schritt>
     </Vorverarbeitung>
     <jmx_endpoint/>
     <Zeitüberschreitung>3 Sek.</Zeitüberschreitung>
     <URL/>
     <Abfragefelder/>
     <Beiträge/>
     <status_codes>200</status_codes>
     <follow_redirects>1</follow_redirects>
     <Beitragstyp>0</Beitragstyp>
     <http_proxy/>
     <header/>
     <Abrufmodus>0</Abrufmodus>
     <Anfragemethode>0</Anfragemethode>
     <Ausgabeformat>0</Ausgabeformat>
     <allow_traps>0</allow_traps>
     <SSL-Zertifikatsdatei/>
     <SSL-Schlüsseldatei/>
     <SSL-Schlüssel_Passwort/>
     <verify_peer>0</verify_peer>
     <verify_host>0</verify_host>
     <master_item/>
    </item>
    <Element>
     <name>nginx-Statusverbindungen warten</name>
     <Typ>0</Typ>
     <snmp_community/>
     <snmp_oid/>
     <key>nginx.status[wartet]</key>
     <Verzögerung>60</Verzögerung>
     <historie>90d</historie>
     <trends>365d</trends>
     <status>0</status>
     <Werttyp>3</Werttyp>
     <erlaubte_Hosts/>
     <Einheiten/>
     <snmpv3_Kontextname/>
     <snmpv3_sicherheitsname/>
     <snmpv3_sicherheitslevel>0</snmpv3_sicherheitslevel>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privpassphrase/>
     <params/>
     <ipmi_sensor/>
     <authtype>0</authtype>
     <Benutzername/>
     <Passwort/>
     <öffentlicherSchlüssel/>
     <privaterSchlüssel/>
     <port/>
     <description>warten</description>
     <inventory_link>0</inventory_link>
     <Anwendungen>
      <Anwendung>
       <Name>nginx</Name>
      </Anwendung>
     </Anwendungen>
     <Wertezuordnung/>
     <logtimefmt/>
     <Vorverarbeitung/>
     <jmx_endpoint/>
     <Zeitüberschreitung>3 Sek.</Zeitüberschreitung>
     <URL/>
     <Abfragefelder/>
     <Beiträge/>
     <status_codes>200</status_codes>
     <follow_redirects>1</follow_redirects>
     <Beitragstyp>0</Beitragstyp>
     <http_proxy/>
     <header/>
     <retrieve_mode>0</retrieve_mode>
     <Anfragemethode>0</Anfragemethode>
     <Ausgabeformat>0</Ausgabeformat>
     <allow_traps>0</allow_traps>
     <SSL-Zertifikatsdatei/>
     <SSL-Schlüsseldatei/>
     <SSL-Schlüssel_Passwort/>
     <verify_peer>0</verify_peer>
     <verify_host>0</verify_host>
     <master_item/>
    </item>
    <Element>
     <name>nginx Statusverbindungen schreiben</name>
     <Typ>0</Typ>
     <snmp_community/>
     <snmp_oid/>
     <key>nginx.status[schreibt]</key>
     <Verzögerung>60</Verzögerung>
     <historie>90d</historie>
     <trends>365d</trends>
     <status>0</status>
     <Werttyp>3</Werttyp>
     <erlaubte_Hosts/>
     <Einheiten/>
     <snmpv3_Kontextname/>
     <snmpv3_sicherheitsname/>
     <snmpv3_sicherheitslevel>0</snmpv3_sicherheitslevel>
     <snmpv3_authprotocol>0</snmpv3_authprotocol>
     <snmpv3_authpassphrase/>
     <snmpv3_privprotocol>0</snmpv3_privprotocol>
     <snmpv3_privpassphrase/>
     <params/>
     <ipmi_sensor/>
     <authtype>0</authtype>
     <Benutzername/>
     <Passwort/>
     <öffentlicherSchlüssel/>
     <privaterSchlüssel/>
     <port/>
     <description>Schreiben</description>
     <inventory_link>0</inventory_link>
     <Anwendungen>
      <Anwendung>
       <Name>nginx</Name>
      </Anwendung>
     </Anwendungen>
     <Wertezuordnung/>
     <logtimefmt/>
     <Vorverarbeitung/>
     <jmx_endpoint/>
     <Zeitüberschreitung>3 Sek.</Zeitüberschreitung>
     <URL/>
     <Abfragefelder/>
     <Beiträge/>
     <status_codes>200</status_codes>
     <follow_redirects>1</follow_redirects>
     <Beitragstyp>0</Beitragstyp>
     <http_proxy/>
     <header/>
     <Abrufmodus>0</Abrufmodus>
     <Anfragemethode>0</Anfragemethode>
     <Ausgabeformat>0</Ausgabeformat>
     <allow_traps>0</allow_traps>
     <SSL-Zertifikatsdatei/>
     <SSL-Schlüsseldatei/>
     <SSL-Schlüssel_Passwort/>
     <verify_peer>0</verify_peer>
     <verify_host>0</verify_host>
     <master_item/>
    </item>
   </Artikel>
   <Erkennungsregeln/>
   <httptests/>
   <Makros/>
   <Vorlagen/>
   <Bildschirme/>
  </Vorlage>
 </Vorlagen>
 <Auslöser>
  <Auslöser>
   <Ausdruck>{Vorlagen-App NGINX:nginx.status[ping].last()}=0</Ausdruck>
   <Wiederherstellungsmodus>0</Wiederherstellungsmodus>
   <Wiederherstellungsausdruck/>
   <name>nginx war ausgefallen!</name>
   <Korrelationsmodus>0</Korrelationsmodus>
   <Korrelations-Tag/>
   <URL/>
   <status>0</status>
   <Priorität>4</Priorität>
   <description>NGINX-Prozessnummer: 0, bitte beachten</description>
   <Typ>0</Typ>
   <manual_close>0</manual_close>
   <Abhängigkeiten/>
   <tags/>
  </Auslöser>
 </triggers>
 <Grafiken>
  <Grafik>
   <name>nginx-Statusverbindungen</name>
   <Breite>900</Breite>
   <Höhe>200</Höhe>
   <yaxismin>0,0000</yaxismin>
   <yaxismax>100,0000</yaxismax>
   <Arbeitszeitraum anzeigen>1</Arbeitszeitraum anzeigen>
   <show_triggers>1</show_triggers>
   <Typ>0</Typ>
   <show_legend>1</show_legend>
   <show_3d>0</show_3d>
   <percent_left>0,0000</percent_left>
   <percent_right>0,0000</percent_right>
   <ymin_typ_1>0</ymin_typ_1>
   <ymax_typ_1>0</ymax_typ_1>
   <ymin_item_1>0</ymin_item_1>
   <ymax_item_1>0</ymax_item_1>
   <Grafikelemente>
    <Grafikelement>
     <sortorder>0</sortorder>
     <drawtype>0</drawtype>
     <color>00C800</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <Typ>0</Typ>
     <Element>
      <host>Vorlagen-App NGINX</host>
      <key>nginx.status[aktiv]</key>
     </item>
    </graph_item>
    <Grafikelement>
     <sortorder>1</sortorder>
     <drawtype>0</drawtype>
     <color>C80000</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <Typ>0</Typ>
     <Element>
      <host>Vorlagen-App NGINX</host>
      <key>nginx.status[liest]</key>
     </item>
    </graph_item>
    <Grafikelement>
     <sortorder>2</sortorder>
     <drawtype>0</drawtype>
     <Farbe>0000C8</Farbe>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <Typ>0</Typ>
     <Element>
      <host>Vorlagen-App NGINX</host>
      <key>nginx.status[wartet]</key>
     </item>
    </graph_item>
    <Grafikelement>
     <sortorder>3</sortorder>
     <drawtype>0</drawtype>
     <Farbe>C800C8</Farbe>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <Typ>0</Typ>
     <Element>
      <host>Vorlagen-App NGINX</host>
      <key>nginx.status[schreibt]</key>
     </item>
    </graph_item>
   </graph_items>
  </Grafik>
  <Grafik>
   <name>nginx-Statusserver</name>
   <Breite>900</Breite>
   <Höhe>200</Höhe>
   <yaxismin>0,0000</yaxismin>
   <yaxismax>100,0000</yaxismax>
   <Arbeitszeitraum anzeigen>1</Arbeitszeitraum anzeigen>
   <show_triggers>1</show_triggers>
   <Typ>0</Typ>
   <show_legend>1</show_legend>
   <show_3d>0</show_3d>
   <percent_left>0,0000</percent_left>
   <percent_right>0,0000</percent_right>
   <ymin_typ_1>0</ymin_typ_1>
   <ymax_typ_1>0</ymax_typ_1>
   <ymin_item_1>0</ymin_item_1>
   <ymax_item_1>0</ymax_item_1>
   <Grafikelemente>
    <Grafikelement>
     <sortorder>0</sortorder>
     <drawtype>0</drawtype>
     <color>00C800</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <Typ>0</Typ>
     <Element>
      <host>Vorlagen-App NGINX</host>
      <key>nginx.status[akzeptiert]</key>
     </item>
    </graph_item>
    <Grafikelement>
     <sortorder>1</sortorder>
     <drawtype>0</drawtype>
     <color>C80000</color>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <Typ>0</Typ>
     <Element>
      <host>Vorlagen-App NGINX</host>
      <key>nginx.status[behandelt]</key>
     </item>
    </graph_item>
    <Grafikelement>
     <sortorder>2</sortorder>
     <drawtype>0</drawtype>
     <Farbe>0000C8</Farbe>
     <yaxisside>0</yaxisside>
     <calc_fnc>2</calc_fnc>
     <Typ>0</Typ>
     <Element>
      <host>Vorlagen-App NGINX</host>
      <key>nginx.status[Anfragen]</key>
     </item>
    </graph_item>
   </graph_items>
  </Grafik>
 </Grafiken>
 <Wertezuordnungen>
  <Wertezuordnung>
   <name>Dienststatus</name>
   <Zuordnungen>
    <Zuordnung>
     <Wert>0</Wert>
     <newvalue>Runter</newvalue>
    </Zuordnung>
    <Zuordnung>
     <Wert>1</Wert>
     <newvalue>Nach oben</newvalue>
    </Zuordnung>
   </Zuordnungen>
  </Wertekarte>
 </Wertekarten>
</zabbix_export>

Klicken Sie auf der Zabbix-Frontend-Seite auf Konfiguration → Vorlage → Importieren:

Bildbeschreibung hier einfügen

#Importieren Sie die soeben erstellte XML-Datei

Wählen Sie nach erfolgreichem Import die überwachte Maschine (Maschine B) auf der Hostlistenseite aus und verknüpfen Sie die Vorlage, um mit der Überwachung von nginx zu beginnen

Zabbix überwacht Tomcat

Maschine A: Zabbix-Server (192.168.234.128) Maschine B: Zabbix-Client (192.168.234.125)

Installieren Sie zabbix-java-gateway auf Maschine A:

[root@zabbix ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.14-1.el7.x86_64.rpm

[root@zabbix ~]# yum -y localinstall zabbix-java-gateway-4.0.14-1.el7.x86_64.rpm

Bearbeiten Sie die Gateway-Konfigurationsdatei:

[root@zabbix ~]# vi /etc/zabbix/zabbix_java_gateway.conf

Entfernen Sie das Kommentarsymbol # aus LISTEN_IP, LISTEN_PORT (Abhörport) und START_POLLERS (Anzahl der Prozesse):

Bildbeschreibung hier einfügen

#LISTEN_IP definiert die Adresse der überwachten Maschine. Wenn nicht angegeben, werden standardmäßig alle Maschinen überwacht.

Bearbeiten Sie die Serverkonfigurationsdatei:

[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf

Definieren Sie die folgenden 3 Konfigurationsparameter:

Bildbeschreibung hier einfügen

Starten Sie den Dienst zabbix-java-gateway:

[root@zabbix ~]# systemctl start zabbix-java-gateway

Starten Sie den Zabbix-Server-Dienst neu:

[root@zabbix ~]# systemctl starte zabbix-server neu

Zeigen Sie den Abhörport an:

[root@zabbix ~]# netstat -lntp |grep java
tcp6 0 0 :::10052 :::* LISTEN 8706/java

JMX aktivieren

Bearbeiten Sie die Tomcat-Konfigurationsdatei auf Maschine B:

[root@centos ~]# vi /usr/local/tomcat/bin/catalina.sh

Fügen Sie den folgenden Inhalt hinzu:

export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.234.125
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

#hostname definiert die Adresse der Maschine B, Port 9999 (Standard 12345)

Starten Sie Tomcat neu:

[root@centos ~]# /usr/local/tomcat/bin/shutdown.sh 

[root@centos ~]# /usr/local/tomcat/bin/startup.sh

Zeigen Sie den Abhörport 9999 an:

[root@centos ~]# netstat -lntp |grep 9999
tcp6 0 0 :::9999 :::* LISTEN 25861/java

Rufen Sie die Zabbix-Frontend-Seite auf, um einen Host hinzuzufügen:

Bildbeschreibung hier einfügen

#Anders als beim Hinzufügen von Überwachungshosts in normalen Situationen muss der Tomcat der Überwachungsmaschine B die JMX-Schnittstelle konfigurieren

Vorlagenlinks zu zwei JMX-bezogenen Vorlagen:

Bildbeschreibung hier einfügen

Wenn das JMX-Symbol grün wird, war die Konfiguration erfolgreich:

Bildbeschreibung hier einfügen

Zabbix überwacht MySQL

Maschine A: Zabbix-Server (192.168.234.128) Maschine B: Zabbix-Client (192.168.234.125)

zabbix_agent definiert die Konfigurationsdatei für die MySQL-Überwachung: /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

Melden Sie sich bei MySQL auf Maschine B an und erstellen Sie einen Benutzer:

mysql> gewährt Nutzung, Prozess, Replikationsclient auf *.* an zamysql@'localhost', identifiziert durch 'zamysql';

Erstellen Sie das in der Konfigurationsdatei angegebene Verzeichnis:

[root@centos ~]# mkdir /var/lib/zabbix

Erstellen Sie die Datei my.cnf:

[root@centos ~]# vi /var/lib/zabbix/.my.cnf

#Beachten Sie, dass diese Datei eine versteckte Datei ist

Fügen Sie den folgenden Inhalt hinzu:

[mysql]
Host=lokaler Host
Benutzer=zamysql
Passwort='zamysql'
socket=/tmp/mysql.sock

[mysqladmin]
Host=lokaler Host
Benutzer=zamysql
Passwort='zamysql'
socket=/tmp/mysql.sock

Test auf Maschine A:

[root@zabbix ~]# zabbix_get -s 192.168.234.125 -p 10050 -k mysql.ping
1
[root@zabbix ~]# zabbix_get -s 192.168.234.125 -p 10050 -k mysql.version
mysql Ver 14.14 Distrib 5.6.43, für linux-glibc2.12 (x86_64) mit EditLine-Wrapper
[root@zabbix ~]# zabbix_get -s 192.168.234.125 -p 10050 -k mysql.size
10240

#Daten erfolgreich erhalten

Fügen Sie auf der Zabbix-Frontend-Seite einen Host hinzu:

Bildbeschreibung hier einfügen

Wählen Sie DB mysql in der Überwachungsvorlage aus:

Bildbeschreibung hier einfügen

Der ZBX-Standard wird grün, um den Erfolg anzuzeigen:

Bildbeschreibung hier einfügen

Sie können MySQL-Überwachungsdaten auf der Seite „Überwachung → Neueste Daten“ anzeigen:

Bildbeschreibung hier einfügen

Zusammenfassen

Oben finden Sie ein ausführliches Tutorial zur Überwachung von Nginx/Tomcat/MySQL mit Zabbix. Ich hoffe, es ist hilfreich für Sie. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Der gesamte Prozess der benutzerdefinierten Zabbix-Skriptüberwachung von Nginx und WeChat-Alarm
  • Zabbix benutzerdefinierte Überwachung Nginx Status Implementierungsprozess
  • Implementierung der Zabbix-Konfiguration und Nginx-Überwachung

<<:  Anfänger verstehen das MySQL-Deadlock-Problem anhand des Quellcodes

>>:  So verwenden Sie JavaScript, um die am häufigsten wiederholten Zeichen in einer Zeichenfolge abzurufen

Artikel empfehlen

Eine detaillierte Erklärung, wie React Fiber funktioniert

Inhaltsverzeichnis Was ist React Fiber? Warum Rea...

So verwenden Sie vs2019 für die Linux-Remote-Entwicklung

Normalerweise gibt es bei der Entwicklung von Lin...

So verwenden Sie Axios-Anfragen im Vue-Projekt

Inhaltsverzeichnis 1. Installation 2. Es gibt kei...

Der Unterschied zwischen HTML Empty Link href="#" und href="javascript:void(0)"

# enthält eine Standortinformation. Der Standardan...

Implementierung eines Puzzlespiels mit js

In diesem Artikel wird der spezifische Code von j...

HTML-Beispielcode zum Lesen und Anzeigen von Bildern in einem lokalen Ordner

Ein Zweck Wählen Sie auf der HTML-Seite einen lok...

Einrichten der React-Native-Umgebung und grundlegende Einführung

Umgebungsvorbereitung 1. Umweltkonstruktion React...

JavaScript-Flusskontrolle (Verzweigung)

Inhaltsverzeichnis 1. Prozesskontrolle 2. Sequent...

Eine kurze Einführung in React

Inhaltsverzeichnis 1. CDN-Einführung 1.1 reagiere...