Back openDesk Edu for a sovereign, open-source education — every vote counts.
Vote nowSave products you love by clicking the heart icon.
Essential reference for Prometheus querying (PromQL), Grafana dashboards, alerting rules, exporters, and observability best practices.
Nagios Core bleibt eines der am weitesten verbreiteten Monitoring-Frameworks in Produktionsumgebungen. Seine Plugin-Architektur, die Unterstützung für passive Checks und die Möglichkeiten für verteiltes Monitoring machen es zu einer soliden Wahl für Organisationen, die die volle Kontrolle über ihren Monitoring-Stack benötigen, ohne sich an einen bestimmten Anbieter zu binden (Vendor Lock-in).
Ein typisches Nagios-Deployment besteht aus:
Installieren Sie Nagios Core und die Standard-Plugins:
apt install nagios4 nagios-plugins-contrib nagios-nrpe-plugin
Die Hauptkonfiguration befindet sich in /etc/nagios4/:
| Datei | Zweck |
|---|---|
nagios.cfg | Hauptkonfiguration des Daemons |
conf.d/hosts.cfg | Host-Definitionen |
conf.d/services.cfg | Service-Definitionen |
conf.d/contacts.cfg | Alarm-Empfänger |
objects/commands.cfg | Definitionen der Check-Befehle |
Definieren Sie jeden zu überwachenden Server in conf.d/hosts.cfg:
define host {
use linux-server
host_name web-01
alias Production Web Server
address 10.0.1.10
check_command check-host-alive
max_check_attempts 3
notification_interval 120
}
Definieren Sie in conf.d/services.cfg, welche Services auf diesem Host geprüft werden sollen:
define service {
use generic-service
host_name web-01
service_description HTTP Response
check_command check_http!-H 10.0.1.10 -u /health -w 3 -c 5
check_interval 5
retry_interval 1
}
Nagios versendet Benachrichtigungen über die Befehle notify-host-by-email und notify-service-by-email. Konfigurieren Sie die Empfänger in contacts.cfg:
define contact {
contact_name ops-team
alias Operations Team
email ops@example.com
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
}
Für die Slack-Integration ersetzen Sie den Benachrichtigungsbefehl durch einen Webhook-POST:
#!/bin/bash
WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK"
MESSAGE="Nagios: $NOTIFICATIONTYPE - $HOSTALIAS/$SERVICEDESC is $SERVICESTATE"
curl -s -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"$MESSAGE\"}" "$WEBHOOK_URL"
Verwenden Sie für große Umgebungen ein verteiltes Setup: Satelliten-Nagios-Instanzen führen lokale Checks durch und leiten die Ergebnisse via NSCA an einen zentralen Server weiter.
Auf dem zentralen Server (Receiver):
apt install nsca
# configure /etc/nsca.cfg with server_address and password
Auf jedem Remote-Satelliten:
# After local check completes, send result to central
/usr/bin/send_nsca -H central.example.com -c /etc/send_nsca.cfg <<EOF
web-01\tHTTP Response\t0\tHTTP OK - 0.142s response
EOF