William-Yeh.prometheus

william-yeh.prometheus für Ansible Galaxy

Circle CI Build-Status

Zusammenfassung

Rollenname in Ansible Galaxy: william-yeh.prometheus

Diese Ansible-Rolle bietet die folgenden Funktionen für Prometheus:

  • Installiert spezifische Versionen von Prometheus-Server, Node-Exporter, Alertmanager.
  • Handler für Neustart-/Neulade-/Stoppereignisse;
  • Grundlegende Konfiguration (die echte Konfiguration sollte in den Vorlagen des Benutzers erfolgen; siehe Abschnitt Verwendung weiter unten).

Um diese Rolle einfach zu halten, installiert sie nur 3 Komponenten: Prometheus-Server, Node-Exporter und Alertmanager. Verwenden Sie die folgenden Rollen, wenn Sie andere Prometheus-Exporter installieren möchten:

Die Unterstützung für Ubuntu 12.04 (Precise) und CentOS 6 wurde im November 2018 eingestellt.

Rollenvariablen

Pflichtvariablen

Die zu installierenden Komponenten:

# Unterstützte Komponenten:
#
#   [Serverkomponenten]
#     - "prometheus"
#     - "alertmanager"
#
#   [Exporter-Komponenten]
#     - "node_exporter"
#
prometheus_components

Optionale Variablen: allgemeine Einstellungen

Benutzerkonfigurierte Standardeinstellungen:

# Benutzer und Gruppe
prometheus_user:   prometheus
prometheus_group:  prometheus

# Verzeichnis für ausführbare Dateien
prometheus_install_path:   /opt/prometheus

# Verzeichnis für Konfigurationsdateien
prometheus_config_path:    /etc/prometheus

# Verzeichnis für Protokolle
prometheus_log_path:       /var/log/prometheus

# Verzeichnis für PID-Dateien
prometheus_pid_path:       /var/run/prometheus

# Verzeichnis für temporäre Dateien
prometheus_download_path:  /tmp

# Version des Hilfsprogramms "gosu"
gosu_version:  "1.11"

Optionale Variablen: systemd oder nicht

Wenn die Linux-Distributionen mit systemd ausgestattet sind, wird diese Rolle dieses Mechanismus entsprechend verwenden. Sie können dies deaktivieren (d.h. das traditionelle SysV-Stil Init-Skript verwenden), indem Sie die folgenden Variablen auf false setzen:

prometheus_use_systemd

Optionale Variablen: Prometheus-Server

Benutzerkonfigurierte Standardeinstellungen:

# Welche Version?
prometheus_version:  2.5.0

# Verzeichnis für Regel-Dateien
prometheus_rule_path:  {{ prometheus_config_path }}/rules

# Verzeichnis für file_sd Dateien
prometheus_file_sd_config_path:  {{ prometheus_config_path }}/tgroups

# Verzeichnis für die Laufzeitdatenbank
prometheus_db_path:   /var/lib/prometheus

Benutzer-installierbare Konfigurationsdatei (siehe Dokumentation für Details):

# Hauptkonf-Vorlage relativ zu `playbook_dir`;
# wird installiert in "{{ prometheus_config_path }}/prometheus.yml"
prometheus_conf_main

Benutzer-installierbare Regel-Dateien (siehe Dokumentation für Details):

# Regel-Dateien, die im Verzeichnis "{{ prometheus_rule_path }}" installiert werden,
# dict-Felder:
#   - key: Notiz für diese Regel
#   - value:
#     - src:  Datei relativ zu `playbook_dir`
#     - dest: Ziel-Datei relativ zu `{{ prometheus_rule_path }}`
prometheus_rule_files

Alertmanager, der ausgelöst werden soll:

prometheus_alertmanager_hostport

Zusätzliche Befehlszeilenargumente, falls vorhanden (verwenden Sie prometheus --help, um die vollständige Liste der Argumente zu sehen):

prometheus_opts

Optionale Variablen: Node-Exporter

Benutzerkonfigurierte Standardeinstellungen:

# Welche Version?
prometheus_node_exporter_version:  0.16.0

Zusätzliche Befehlszeilenargumente, falls vorhanden (verwenden Sie node_exporter --help, um die vollständige Liste der Argumente zu sehen):

prometheus_node_exporter_opts

Optionale Variablen: Alertmanager

Benutzerkonfigurierte Standardeinstellungen:

# Welche Version?
prometheus_alertmanager_version:  0.15.3

# Verzeichnis für die Laufzeitdatenbank (derzeit für `silences.json`)
prometheus_alertmanager_db_path: /var/lib/alertmanager

Benutzer-installierbare Alertmanager-Konfigurationsdatei (siehe Dokumentation für Details):

# Hauptkonf-Vorlage relativ zu `playbook_dir`;
# wird installiert in "{{ prometheus_config_path }}/alertmanager.yml"
prometheus_alertmanager_conf

Zusätzliche Befehlszeilenargumente, falls vorhanden (verwenden Sie alertmanager --help, um die vollständige Liste der Argumente zu sehen):

prometheus_alertmanager_opts

Optional: aus Quellcode-Baum bauen

(Credit: Robbie Trencheny)

Für die aforementioned prometheus_components können Sie optional aus dem master Branch der Prometheus-Repositories herunterladen/kompilieren, indem Sie die jeweilige Version auf git setzen.

Es wird ein temporärer Golang-Compiler im Verzeichnis prometheus_workdir installiert (definiert in defaults/main.yml).

Beispielsweise können Sie den neuesten Code für alle Komponenten herunterladen, indem Sie alle *_version-Variablen auf git setzen:

prometheus_version: git
prometheus_node_exporter_version: git
prometheus_alertmanager_version: git

Wenn Sie möchten, dass jede Aktualisierung erzwungen wird, aktivieren Sie die folgende Variable (Standard ist false):

prometheus_rebuild: true

Handler

Prometheus-Server:

  • restart prometheus
  • reload prometheus
  • stop prometheus

Node-Exporter:

  • restart node_exporter
  • reload node_exporter (tatsächlich dasselbe wie restart)
  • stop node_exporter

Alertmanager:

  • restart alertmanager
  • reload alertmanager
  • stop alertmanager

Verwendung

Schritt 1: Rolle hinzufügen

Fügen Sie den Rollennamen william-yeh.prometheus zu Ihrer Playbook-Datei hinzu.

Schritt 2: Variablen hinzufügen

Setzen Sie Variablen in Ihrer Playbook-Datei, wenn nötig.

Ein einfaches Beispiel:

---
# Datei: simple-playbook.yml

- hosts: all
  become: True
  roles:
    - william-yeh.prometheus

  vars:
    prometheus_components: [ "prometheus", "alertmanager" ]

    prometheus_alertmanager_hostport: "localhost:9093"

Schritt 3: Benutzerkonfigurationsdateien kopieren, falls nötig

Ein praktisches Beispiel:

---
# Datei: complex-playbook.yml

- hosts: all
  become: True
  roles:
    - william-yeh.prometheus

  vars:
    prometheus_components:
      - prometheus
      - node_exporter
      - alertmanager

    prometheus_rule_files:
      this_is_rule_1_InstanceDown:
        src:  some/path/basic.rules
        dest: basic.rules

    prometheus_alertmanager_conf: some/path/alertmanager.yml.j2

Schritt 4: Durchsuchen Sie die Standard-Prometheus-Seiten

Öffnen Sie die Seite in Ihrem Browser:

  • Prometheus - http://HOST:9090 oder http://HOST:9090/consoles/node.html
  • Alertmanager - http://HOST:9093

Abhängigkeiten

Keine.

Mitwirkende

Lizenz

MIT-Lizenz. Siehe die LICENSE-Datei für Details.

Über das Projekt

Install and configure Prometheus

Installieren
ansible-galaxy install William-Yeh.prometheus
Lizenz
mit
Downloads
27.5k
Besitzer