patrickjahns.promtail
Ansible-Rolle: promtail
Beschreibung
Setzen Sie promtail mit Ansible ein. Unterstützt amd64- und arm-Architekturen. Für aktuelle Änderungen, bitte das CHANGELOG überprüfen oder einen Blick auf die GitHub-Releases werfen.
Anforderungen
- Ansible >= 2.7
Rollenvariablen
Alle übersteuerbaren Variablen sind in der Datei defaults/main.yml sowie in der folgenden Tabelle gespeichert.
Name | Standardwert | Beschreibung |
---|---|---|
promtail_version |
"3.0.0" | Version des promtail-Pakets. Akzeptiert auch latest als Parameter. |
promtail_custom_checksum |
"" | Benutzerdefinierter Prüfziffer für benutzerdefinierte promtail-Binärdateien |
promtail_binary_local_dir |
"" | Ermöglicht die Verwendung lokaler Pakete statt der auf GitHub verteilten. Erfordert den Pfad, wo das Zip-Archiv von promtail gespeichert ist. |
promtail_extra_args |
[] | Ermöglicht das Setzen zusätzlicher Argumente für die Binärdatei innerhalb der systemd-Dienstdatei. |
promtail_config_dir |
/etc/promtail | Verzeichnis zur Speicherung der Konfigurationsdatei von promtail |
promtail_config_expand_env |
"false" | Wert von promtail -config.expand-env Option |
promtail_config_file_sd_dir |
"{{ promtail_config_dir }}/file_sd" | Standardverzeichnis für file_sd -Entdeckung |
promtail_config_file |
"{{ promtail_config_dir }}/promtail.yml" | Konfigurationsdatei, die von promtail verwendet wird |
promtail_system_user |
promtail | Benutzer, unter dem der promtail-Prozess ausgeführt wird |
promtail_system_group |
"{{ promtail_system_user }}" | Gruppe des promtail-Benutzers |
promtail_user_additional_groups |
"adm" | Zusätzliche Gruppen, die zum promtail-Benutzer hinzugefügt werden, um den Zugriff auf spezifische Logdateien zu ermöglichen |
promtail_config_clients |
siehe defaults/main.yml | Abschnitt der promtail clients |
promtail_loki_server_url |
http://127.0.0.1:3100 | Server-URL, an die promtail seine Ergebnisse sendet |
promtail_config_server |
siehe defaults/main.yml | Abschnitt der promtail server |
promtail_positions_directory |
/var/lib/promtail |
Pfad zum Verzeichnis, in dem promtail die erfassten Log-Positionen verfolgt |
promtail_config_positions |
{"filename": "{{ promtail_positions_directory }}/positions.yml"} | Abschnitt der promtail positions |
promtail_config_scrape_configs |
[] | Abschnitt der promtail scrape_configs |
promtail_target_config |
{} | Abschnitt der promtail target_config |
promtail_log_level |
"info" | Protokollstufe von promtail (einer von: debug ,info ,warn ,error ) |
promtail_config_include_default_file_sd_config |
"True" | Wenn auf false gesetzt, wird das Standard-file_sd nicht bereitgestellt |
promtail_apt_update_cache |
"True" | Wenn auf false gesetzt, wird die Rolle den APT-Cache nicht automatisch aktualisieren |
Für jeden Abschnitt (promtail_config_clients
, promtail_config_server
, promtail_config_positions
, promtail_config_scrape_configs
, promtail_target_config
) kann die Konfiguration gemäß der offiziellen promtail-Konfiguration übergeben werden.
Die Rolle wird die Ansible-Variablen in die jeweilige YAML-Konfiguration für Loki umwandeln.
Beispiel-Playbook
Ein einfaches Playbook, das davon ausgeht, dass Loki unter http://127.0.0.1:3100
lauscht und eine einfache Konfiguration zum Scrapen von /var/log
-Logs hat:
---
- hosts: all
roles:
- role: patrickjahns.promtail
vars:
promtail_config_scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
Ein komplexeres Beispiel, das die Server-, Client- und Positionskonfiguration sowie eine Scrape-Konfiguration für /var/log
überschreibt:
---
- hosts: all
roles:
- role: patrickjahns.promtail
vars:
promtail_config_server:
http_listen_port: 9080
grpc_listen_port: 9081
promtail_config_clients:
- url: "http://prometheus.domain.tld:3100/loki/api/v1/push"
external_labels:
host: "{{ ansible_hostname }}"
promtail_config_positions:
filename: "{{ promtail_positions_directory }}/positions.yaml"
sync_period: "60s"
promtail_config_scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
Lokales Testen
Der bevorzugte Weg, die Rolle lokal zu testen, besteht darin, Docker und Molecule (v3.x) zu verwenden. Sie müssen Docker auf Ihrem System installieren. Siehe "Erste Schritte" für ein geeignetes Docker-Paket für Ihr System. Wir verwenden Tox, um den Prozess des Testens mit mehreren Ansible-Versionen zu vereinfachen. Um Tox zu installieren, führen Sie aus:
pip3 install tox
Um Tests mit allen Ansible-Versionen auszuführen (WARNUNG: Dies kann einige Zeit in Anspruch nehmen):
tox
Um einen benutzerdefinierten Molecule-Befehl in einer benutzerdefinierten Umgebung mit nur dem Standard-Test-Szenario auszuführen:
tox -e ansible29 -- molecule test -s default
Für weitere Informationen zu Molecule besuchen Sie deren Dokumentation.
Wenn Sie Tests auf einem entfernten Docker-Host ausführen möchten, geben Sie vor dem Ausführen der Tox-Tests die Variable DOCKER_HOST
an.
CI
GitHub-Aktionen werden verwendet, um diese Ansible-Rolle über ansible-later und Molecule zu testen und zu validieren. Molecule-Tests werden mit verschiedenen Betriebssystemen sowie Ansible-Versionen durchgeführt, um die Kompatibilität sicherzustellen.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Siehe LICENSE für weitere Details.
Wartende und Mitwirkende
Deploy (loki) promtail
ansible-galaxy install patrickjahns.promtail