In diesem Blogbeitrag stelle ich die notwendigen Befehle und Konfigurationen für eine Open-Source-Monitoring-Lösung bereit, wie sie in meinem YouTube-Video gezeigt wird. Dabei kommen drei zentrale Tools zum Einsatz: Prometheus, Grafana und der Node Exporter. Gemeinsam bilden sie eine leistungsstarke Lösung, um Server und Dienste umfassend zu überwachen und die gewonnenen Daten ansprechend zu visualisieren.
Prometheus – Das Herzstück der Überwachung
Prometheus ist ein Monitoring- und Alarmsystem, das Metriken aus verschiedenen Quellen sammelt und speichert. Es verwendet eine zeitreihenbasierte Datenbank, die speziell auf Leistungsmetriken ausgelegt ist. Mit seiner flexiblen Abfragesprache könnt ihr gezielt Daten analysieren und Alarme einrichten, die euch benachrichtigen, wenn Probleme auftreten.
Node Exporter – Der Datenlieferant
Damit Prometheus auf die Systemmetriken eines Servers zugreifen kann, benötigt ihr den Node Exporter. Dies ist ein leichtgewichtiges Tool, das Metriken wie CPU-Auslastung, Arbeitsspeicher, Netzwerkverkehr, Festplattennutzung und vieles mehr erfasst und im Prometheus-Format bereitstellt. Der Node Exporter wird direkt auf den zu überwachenden Servern installiert und stellt die Daten über einen HTTP-Endpunkt bereit, auf den Prometheus regelmäßig zugreift.
Grafana – Die Visualisierung
Grafana dient als Frontend, das die von Prometheus gesammelten Daten visuell aufbereitet. Mit Grafana könnt ihr individuelle Dashboards erstellen, um alle wichtigen Metriken auf einen Blick zu sehen. Es bietet zahlreiche Anpassungsmöglichkeiten und unterstützt interaktive Diagramme, sodass ihr eure Monitoring-Daten leicht verstehen und interpretieren könnt.
Konfiguration Prometheus (prometheus.yml)
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: docker-host
scrape_interval: 5s
static_configs:
- targets: ['10.10.10.151:9100']
Installation Node Exporter
mkdir /opt/node_exporter
cd /opt/node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xvfz node_exporter-1.8.2.linux-amd64.tar.gz
cd node_exporter-*.*-amd64
./node_exporter
Skript zum automatischen Start vom Node Exporter
[Unit]
Description=Node Exporter
[Service]
User=root
Group=root
#EnvironmentFile=-/etc/sysconfig/node_exporter
ExecStart=/opt/node_exporter/node_exporter-1.3.1.linux-amd64/node_exporter
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter
systemctl status node_exporter
Schreiben Sie einen Kommentar