Stellen Sie die Grafana+Prometheus-Konfiguration mit Docker bereit

Stellen Sie die Grafana+Prometheus-Konfiguration mit Docker bereit

docker-compose-monitor.yml

Version: '2'

Netzwerke:
  Monitor:
    Treiber: Brücke

Leistungen:
  Zuflussdb:
    Bild: influxdb:latest
    Containername: tig-influxdb
    Häfen:
      - „18083:8083“
      - „18086:8086“
      - „18090:8090“
    Umgebungsdatei:
      - „env.influxdb“
    Bände:
      # Datenpersistenz
      # sudo mkdir -p ./influxdb/data
      - ./influxdb/data:/var/lib/influxdb
      # Konfigurieren Sie die Zeit im Docker auf Eastern Time Zone 8 - ./timezone:/etc/timezone:ro
      - ./localtime:/etc/localtime:ro
    Neustart: sofern nicht gestoppt #Telegraf nach dem Stoppen automatisch neu starten:
    Bild: telegraf:latest
    Containername: tig-telegraf
    Links:
      - Zuflussdb
    Bände:
      - ./telegraf.conf:/etc/telegraf/telegraf.conf:ro
      - ./Zeitzone:/etc/Zeitzone:ro
      - ./localtime:/etc/localtime:ro
    Neustart: sofern nicht gestoppt
  Prometheus:
    Bild: prom/prometheus
    Containername: Prometheus
    Hostname: Prometheus
    Neustart: immer
    Bände:
      - /home/qa/docker/grafana/prometheus.yml:/etc/prometheus/prometheus.yml
      - /home/qa/docker/grafana/node_down.yml:/etc/prometheus/node_down.yml
    Häfen:
      - „9090:9090“
    Netzwerke:
      - überwachen

  Alarmmanager:
    Bild: prom/alertmanager
    Containername: Alertmanager
    Hostname: Alertmanager
    Neustart: immer
    Bände:
      - /home/qa/docker/grafana/alertmanager.yml:/etc/alertmanager/alertmanager.yml
    Häfen:
      - „9093:9093“
    Netzwerke:
      - überwachen

  grafana:
    Bild: grafana/grafana:6.7.4
    Containername: Grafana
    Hostname: Grafana
    Neustart: immer
    Häfen:
      - '13000:3000'
    Netzwerke:
      - überwachen

  Knoten-Exporteur:
    Bild: quay.io/prometheus/node-exporter
    Containername: Knotenexporteur
    Hostname: Knoten-Exporteur
    Neustart: immer
    Häfen:
      - „9100:9100“
    Netzwerke:
      - überwachen

  cadvisor:
    Bild: Google/cadvisor:latest
    Containername: Cadvisor
    Hostname: cadvisor
    Neustart: immer
    Bände:
      – /:/rootfs:ro
      – /var/run:/var/run:rw
      – /sys:/sys:ro
      – /var/lib/docker/:/var/lib/docker:ro
    Häfen:
      - '18080:8080'
    Netzwerke:
      - überwachen

alertmanager.yml

weltweit:
  Auflösungs-Timeout: 5 Min.
  smtp_from: 'E-Mail'
  smtp_smarthost: "smtp.exmail.qq.com:25"
  smtp_auth_username: "E-Mail"
  smtp_auth_password: 'Passwort'
  smtp_require_tls: falsch
  smtp_hello: "qq.com"
Route:
  group_by: ['Alarmname']
  Gruppenwartezeit: 5 s
  Gruppenintervall: 5 s
  Wiederholungsintervall: 5 m
  Empfänger: "E-Mail"
Empfänger:
- Name: 'E-Mail'
  E-Mail-Konfigurationen:
  - an: 'E-Mail-Adresse'
    send_resolved: wahr
Regeln blockieren:
  - Quellübereinstimmung:
      Schweregrad: „kritisch“
    Zielübereinstimmung:
      Schweregrad: „Warnung“
    gleich: ['Alarmname', 'Entwickler', 'Instanz']

prometheus.yml

weltweit:
  scrape_interval: 15s # Setzt das Scrape-Intervall auf 15 Sekunden. Der Standardwert ist 1 Minute.
  evaluation_interval: 15s # Regeln alle 15 Sekunden auswerten. Der Standardwert ist alle 1 Minute.
  # scrape_timeout ist auf den globalen Standardwert (10 s) eingestellt.

# Alertmanager-Konfiguration
Alarmierung:
  Alarmmanager:
  - statische_Konfigurationen:
    - Ziele: ['192.168.32.117:9093']
      # - alertmanager:9093

# Laden Sie Regeln einmal und bewerten Sie sie regelmäßig gemäß dem globalen „Evaluation_Intervall“.
Regeldateien:
  - "node_down.yml"
  # - "node-exporter-alert-rules.yml"
  # - "first_rules.yml"
  # - "zweite_regeln.yml"

# Eine Scrape-Konfiguration, die genau einen zu scrapenden Endpunkt enthält:
# Hier ist es Prometheus selbst.
scrape_configs:
  #IO-Speicherknotengruppe – Jobname: „io“
    Scrape-Intervall: 8 s
    static_configs: #Der Port ist der Port, an dem der Node-Exporter gestartet wird – Ziele: ['192.168.32.117:9100']
      - Ziele: ['192.168.32.196:9100']
      - Ziele: ['192.168.32.136:9100']
      - Ziele: ['192.168.32.193:9100']
      - Ziele: ['192.168.32.153:9100']
      - Ziele: ['192.168.32.185:9100']
      - Ziele: ['192.168.32.190:19100']
      - Ziele: ['192.168.32.192:9100']

  # Der Jobname wird als Label „job=<job_name>“ zu jeder aus dieser Konfiguration extrahierten Zeitreihe hinzugefügt.
  - Jobname: „cadvisor“
    static_configs: #Der Port ist der von cadvisor gestartete Port - Ziele: ['192.168.32.117:18080']
      - Ziele: ['192.168.32.193:8080']
      - Ziele: ['192.168.32.153:8080']
      - Ziele: ['192.168.32.185:8080']
      - Ziele: ['192.168.32.190:18080']
      - Ziele: ['192.168.32.192:18080']

node_down.yml

Gruppen:
  - Name: node_down
    Regeln:
      - Warnung: InstanceDown
        Ausdruck: nach oben == 0
        für: 1m
        Beschriftungen:
          Benutzer: Test
        Anmerkungen:
          Zusammenfassung: „Instanz {{ $labels.instance }} ausgefallen“
          Beschreibung: „{{ $labels.instance }} des Jobs {{ $labels.job }} ist seit mehr als 1 Minute nicht verfügbar.“

        #Der verbleibende Speicher beträgt weniger als 10 %
      - Warnung: Der verbleibende Speicher beträgt weniger als 10 %
        Ausdruck: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10
        für: 2m
        Beschriftungen:
          Schweregrad: Warnung
        Anmerkungen:
          Zusammenfassung: Nicht genügend Arbeitsspeicher für den Host (Instanz {{ $labels.instance }})
          Beschreibung: "Der Knotenspeicher füllt sich (< 10 % übrig)\n WERT = {{ $value }}\n LABELS = {{ $labels }}"

        #Der verbleibende Speicherplatz beträgt weniger als 10 %
      - Warnung: Der verbleibende Speicherplatz beträgt weniger als 10 %.
        Ausdruck: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 und EIN (Instanz, Gerät, Einhängepunkt) node_filesystem_readonly == 0
        für: 2m
        Beschriftungen:
          Schweregrad: Warnung
        Anmerkungen:
          Zusammenfassung: Nicht genügend Speicherplatz auf dem Host (Instanz {{ $labels.instance }})
          Beschreibung: "Festplatte ist fast voll (< 10 % übrig)\n WERT = {{ $value }}\n LABELS = {{ $labels }}"

        #CPU-Auslastung > 80 %
      - Warnung: CPU-Auslastung > 80 %
        Ausdruck: 100 - (Durchschnitt pro (Instanz) (Rate (Node_Cpu_Sekunden_total {Modus = "Leerlauf"} [2 m])) * 100) > 80
        für: 0m
        Beschriftungen:
          Schweregrad: Warnung
        Anmerkungen:
          Zusammenfassung: Hohe CPU-Auslastung des Hosts (Instanz {{ $labels.instance }})
          Beschreibung: "CPU-Auslastung ist > 80 %\n WERT = {{ $value }}\n LABELS = {{ $labels }}"

Warnungen: https://awesome-prometheus-alerts.grep.to/rules#prometheus-self-monitoring

Offizielles Dashboard: https://grafana.com/grafana/dashboards/

Dies ist das Ende dieses Artikels über die Docker-Bereitstellung der Grafana+Prometheus-Konfiguration. Weitere relevante Inhalte zur Docker-Bereitstellung der Grafana+Prometheus finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Leistungsüberwachung des MySQL-Servers mit Prometheus und Grafana
  • Detailliertes Tutorial zur Installation und Verwendung von Grafana
  • Verwenden Sie Grafana, um Überwachungsdiagramme von Docker-Containern anzuzeigen und E-Mail-Benachrichtigungsregeln festzulegen (Abbildung)
  • Detaillierte Erläuterung des Tutorials zur Überwachung von Springboot-Anwendungen mit Prometheus+Grafana
  • Verwenden Sie Grafana+Prometheus, um die Leistung des MySQL-Dienstes zu überwachen
  • Detaillierte Erläuterung des Prozesses zum Erstellen von Prometheus + Grafana basierend auf Docker
  • Zusammenfassung der benutzerdefinierten Python-Datenerfassung mit Influx+Graphiana und einige Fallstricke
  • Detaillierte Schritte für SpringBoot+Prometheus+Grafana zur Implementierung von Anwendungsüberwachung und Alarm
  • So installieren Sie Grafana und fügen Influxdb-Überwachung unter Linux hinzu
  • Analysieren Sie die Methode zur Überwachung von Nginx durch Prometheus + Grafana
  • Prometheus überwacht MySQL mithilfe der Grafana-Anzeige
  • So überwachen Sie Docker mit Grafana unter Ubuntu
  • Detailliertes Tutorial zum Erstellen einer JMeter+Grafana+Influxdb-Überwachungsplattform mit Docker
  • Tutorial zum Erstellen einer visuellen Leistungsüberwachungsplattform mit JMeter+Grafana+InfluxDB in einer Docker-Umgebung
  • ELK und Grafana erstellen gemeinsam eine visuelle Überwachung zur Analyse von Nginx-Protokollen
  • Es ist nicht schlimm, wenn Sie Ihr Grafana-Passwort vergessen. 2 Möglichkeiten, Ihr Grafana-Administratorpasswort zurückzusetzen

<<:  Verwenden Sie html-webpack-plugin‘, um ein HTML-Seiten-Plugin im Speicher zu generieren

>>:  Beispiel und Update für die Erstellung von HTML5+CSS3-Headern

Artikel empfehlen

MySQL-Unterabfragen und gruppierte Abfragen

Inhaltsverzeichnis Überblick Unterabfragen Untera...

Kurze Analyse des MySQL B-Tree-Index

B-Baum-Index Verschiedene Speicher-Engines können...

Detaillierte Installation und Verwendung der Virtuoso-Datenbank unter Linux

Ich habe kürzlich einige Dinge zu verknüpften Dat...

Grundlegende Verwendung von exists, in und any in MySQL

【1】existiert Verwenden Sie eine Schleife, um die ...

So entfernen Sie in Linux ganz einfach installierte Quellpakete

Schritt 1: Stow installieren In diesem Beispiel v...

Zusammenfassung der Erfahrungen mit der Web-Frontend-Entwicklung

XML-Dateien sollten so weit wie möglich in UTF-8 ...

So implementieren Sie eine MySQL-Master-Slave-Replikation basierend auf Docker

Vorwort Die MySQL Master-Slave-Replikation ist di...

Vue3 verwendet Axios Interceptor zum Drucken von Front-End-Protokollen

Inhaltsverzeichnis 1. Einleitung 2. Verwenden Sie...

Lösung für die Baidu-Site-Suche, die https nicht unterstützt (getestet)

Seit kurzem ist https auch auf dem Handy möglich....