William-Yeh.prometheus
william-yeh.prometheus für Ansible Galaxy
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:
- Consul: william-yeh.consul_exporter
- Elasticsearch: william-yeh.es_cluster_exporter
- MongoDB: williamyeh.mongodb_exporter
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 wierestart
)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
oderhttp://HOST:9090/consoles/node.html
- Alertmanager -
http://HOST:9093
Abhängigkeiten
Keine.
Mitwirkende
- William Yeh
- Robbie Trencheny - hat eine frühe Version des Erstellens von Binaries aus Go-Quellcode beigetragen.
- Travis Truman - hat eine frühe Version des consul_exporter-Installers beigetragen; wurde jetzt zu William-Yeh.consul_exporter verschoben.
- Musee Ullah
Lizenz
MIT-Lizenz. Siehe die LICENSE-Datei für Details.
ansible-galaxy install William-Yeh.prometheus