Überwachung von Apache in ZABBIX – SouToub


[*]

Apache - ZABBIX
http://www.zabbix.com/

Apache ist fast der am weitesten verbreitete Webserver der Welt, daher ist die Überwachung seiner Leistung von großer Bedeutung.… Zum Glück für Zabbix gibt es im Netzwerk viele Vorlagen, mit denen Sie die Leistung des Apache-Webservers überwachen können. Ich werde einen von ihnen in diesem Artikel einrichten.

Wir werden Apache auf dem Zabbix-Server selbst überwachen. Alle anderen Einstellungen werden dabei erwähnt.


Ein Einführungsartikel zu ZABBIX-Überwachungsmustern – ZABBIX-Muster.

Wenn Sie sich für das Thema ZABBIX interessieren, empfehlen wir Ihnen, den Hauptartikel – ZABBIX-Überwachungssystem – zu lesen. Dort finden Sie zusätzliche Informationen.


Apache-Überwachungsskript in ZABBIX

Erstellen Sie ein Verzeichnis für die Skripte des zabbix-Agenten mit voreingestellten Rechten. Ich hatte es bereits, aber für alle Fälle schreibe ich die Befehle, mit denen ich es erstellt habe:
root @ debian7: ~ # mkdir -m 750 / usr / local / etc / zabbix_agent_scripts
Ändern Sie den Eigentümer des Verzeichnisses:
root @ debian7: ~ # chown root: zabbix / usr / local / etc / zabbix_agent_scripts
Lassen Sie uns eine Datei mit einem Skript erstellen:
root @ debian7: ~ # nano /usr/local/etc/zabbix_agent_scripts/apache-stats.sh

Mit Inhalt:

#! / bin / bash
wenn [[ -z «$1» || -z «$2» || -z «$3″ ]]; dann
Ausfahrt 1
Sein
##### PARAMETER #####
RESERVIERT = »$ 1 ″
METRISCH = »$ 2 ″
URL = »$ 3 ″
STATSURL = »$ {URL auto? Auto»
#
CACHE_TTL = »55 ″
CACHE_FILE = »/ tmp / zabbix.apache2.echo ${URL} | md5sum | cut -d" " -f1.Zwischenspeicher”
EXEC_TIMEOUT = »2 ″
NOW_TIME =date '+%s'
##### LAUF #####
wenn [ -s «${CACHE_FILE}» ];; dann
CACHE_TIME =stat -c"%Y" "${CACHE_FILE}"
sonst
CACHE_TIME = 0
Sein
DELTA_TIME = $ (($ {NOW_TIME} – $ {CACHE_TIME}))
#
wenn [ ${DELTA_TIME} -lt ${EXEC_TIMEOUT} ];; dann
sleep $ (($ {EXEC_TIMEOUT} – $ {DELTA_TIME}))
elif [ ${DELTA_TIME} -gt ${CACHE_TTL} ];; dann
echo «» >> «$ {CACHE_FILE}» # !!!
DATACACHE =curl -sS --insecure --max-time ${EXEC_TIMEOUT} "${STATSURL}" 2>&1
echo «$ {DATACACHE}»> «$ {CACHE_FILE}» # !!!
echo «URL = $ {URL}» >> «$ {CACHE_FILE}» # !!!
chmod 640 «$ {CACHE_FILE}»
Sein
#
wenn [ «${METRIC}» = «accesses» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «Zugriffe» | cut -d ‘:’ -f2 | Kopf -n1
Sein
wenn [ «${METRIC}» = «kbytes» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «kbytes» | cut -d ‘:’ -f2 | Kopf -n1
Sein
wenn [ «${METRIC}» = «cpuload» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «cpuload» | cut -d ‘:’ -f2 | Kopf -n1
Sein
wenn [ «${METRIC}» = «uptime» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «Betriebszeit» | cut -d ‘:’ -f2 | Kopf -n1
Sein
wenn [ «${METRIC}» = «avgreq» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «ReqPerSec» | cut -d ‘:’ -f2 | Kopf -n1
Sein
wenn [ «${METRIC}» = «avgreqbytes» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «BytesPerReq» | cut -d ‘:’ -f2 | Kopf -n1
Sein
wenn [ «${METRIC}» = «avgbytes» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «BytesPerSec» | cut -d ‘:’ -f2 | Kopf -n1
Sein
wenn [ «${METRIC}» = «busyworkers» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «BusyWorkers» | cut -d ‘:’ -f2 | Kopf -n1
Sein
wenn [ «${METRIC}» = «idleworkers» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «untätige arbeiter» | cut -d ‘:’ -f2 | Kopf -n1
Sein
wenn [ «${METRIC}» = «totalslots» ];; dann
Katze «$ {CACHE_FILE}» | grep -i «Anzeigetafel» | cut -d ‘:’ -f2 | sed -e ‘s / // g’ | wc -c | awk ‘{print $ 1-1}’
Sein
#
Ausfahrt 0

Ändern Sie den Eigentümer des Skripts:
root @ debian7: ~ # chown root: zabbix /usr/local/etc/zabbix_agent_scripts/apache-stats.sh
Lassen Sie uns die Rechte festlegen:
root @ debian7: ~ # chmod 550 /usr/local/etc/zabbix_agent_scripts/apache-stats.sh

Apache-Konfiguration

Wir laden das zur Überwachung erforderliche Modul:
root @ debian7: ~ # a2enmod info
Um die neue Konfiguration zu aktivieren, müssen Sie Folgendes ausführen:
Service Apache2 Neustart

Einmal zum Neustart aufgefordert, tun wir Folgendes:
root @ debian7: ~ # Service Apache2 Neustart
[ ok ] Neustart des Webservers: apache2… warten…

Lassen Sie uns die Apache-Konfigurationsdatei bearbeiten:
root @ debian7: ~ # nano /etc/apache2/apache2.conf
Fügen Sie ganz am Ende der Datei Folgendes hinzu:
ExtendedStatus ein


SetHandler Server-Status
Bestellung verweigern, erlauben
Abgelehnt von allen
Erlaube von .your_domain.com

Wo “.Ihre_Domäne.com“Ist die Adresse des zabbix-Servers.

Lassen Sie uns den Server neu starten:
root @ debian7: ~ # /etc/init.d/apache2 Force-Reload
[ ok ] Neuladen der Webserverkonfiguration: apache2.

Um die Arbeit zu überprüfen, gehen Sie zu folgendem Link: http: // your-domain-or-ip / server-status
Das erste Mal, dass ich eine Nachricht bekam:
zabbix apache überwachung 01

Wie Sie sehen, liegt ein Fehler mit den Zugriffsrechten vor, da ich dies nicht vom lokalen Server aus überprüft habe. Lassen Sie uns Folgendes beheben:
root @ debian7: ~ # nano /etc/apache2/apache2.conf
Ganz am Ende, wo wir eine Reihe von Zeilen hinzugefügt haben, ändern wir:
Erlaube von .your_domain.com zusätzliche IP-Adresse oder Domain
Anstatt von “zusätzliche IP-Adresse oder Domain»Fügen Sie eine oder mehrere erforderliche Adressen ein, die durch ein Leerzeichen getrennt sind.

Starten Sie Apache neu und folgen Sie dem Link erneut (siehe oben):
zabbix apache überwachung 02

Locke installieren:
root @ debian7: ~ # apt-get install curl

Lassen Sie uns überprüfen, ob die Daten vom Server selbst gesendet werden:
root @ debian7: ~ # Curl http: // Ihr-Server-IP / Server-Status
Es sollte keine Fehler geben.
Zabbix-Agenten konfigurieren

Erstellen Sie eine Datei mit benutzerdefinierten Parametern:
root @ debian7: ~ # nano /usr/local/etc/zabbix_agent_configs/apache2.conf
Fügen Sie am Ende der Datei den folgenden Text ein:
UserParameter = apache2[*], / usr / local / etc / zabbix_agent_scripts / apache-stats.sh «keine» «$ 1» «$ 2»
Die folgenden Einstellungen sollten in der Konfigurationsdatei des zabbix-Agenten vorgenommen werden:
root @ debian7: ~ # nano /usr/local/etc/zabbix_agentd.conf
Wir brauchen den Parameter „Einschließen“, Setzen Sie den folgenden Wert darauf:
Include = / usr / local / etc / zabbix_agent_configs

Starten Sie den Agenten neu:
root @ debian7: ~ # Service Zabbix-Agent Neustart

Wir überprüfen:
root @ debian7: ~ # zabbix_get -s 127.0.0.1 -k «apache2[accesses,http://your-server-ip/server-status]»
10885

Laden Sie die vorgefertigte Vorlage:
Apache2-Überwachungsvorlage (Agent)
Als Nächstes müssen Sie unserem Zabbix-Server über die Weboberfläche eine Überwachungsvorlage hinzufügen. Gehen Sie dazu zu Einstellungen> Vorlagen, klicken Sie oben rechts auf “Importieren” und fügen Sie eine Vorlage hinzu. Wir verbinden die Vorlage mit den erforderlichen Überwachungsknoten – Netzwerkknoten> wählen Sie den gewünschten Knoten aus> die Registerkarte “Vorlagen”> stellen Sie eine Verbindung zur neuen Vorlage her> klicken Sie auf “Hinzufügen”> klicken Sie auf “Aktualisieren”.

Zusätzlich zum Laden müssen Sie ein Makro hinzufügen, damit dieses Makro die erforderliche Adressleiste in jedem Datenelement ersetzt. Sie können definieren, wie ein Makro in einer Vorlage oder in einem Host funktioniert. In unserem Fall ist die zweite Option geeignet. Klicken Sie auf den gewünschten Host, wechseln Sie zur Registerkarte “Makros” und nehmen Sie folgende Einstellungen vor:
zabbix apache überwachung 03Wir drücken die Tasten “Hinzufügen” und “Aktualisieren”.

Überprüfen Sie nach einer Weile den Datenempfang:
zabbix apache überwachung 04

Das Setup ist abgeschlossen.


Verwendete Quellen:

Aktivieren und Verwenden von mod_status von Apache unter Debian

Überwachung von Apache mit mod_status

Überwachen von Apache2-Parametern in Zabbix

Zabbix-Vorlagen

1 Benutzerdefinierte Makros

Kommentare bereitgestellt von HyperComments

Leave a Reply

Your email address will not be published. Required fields are marked *