patrickjahns.promtail
Rola Ansible: promtail
Opis
Zainstaluj promtail za pomocą ansible. Obsługuje architektury amd64 i arm. Aby zobaczyć ostatnie zmiany, zapoznaj się z CHANGELOG lub sprawdź wydania GitHub.
Wymagania
- Ansible >= 2.7
Zmienne roli
Wszystkie zmienne, które można nadpisać, są przechowywane w pliku defaults/main.yml oraz w poniższej tabeli.
Nazwa | Wartość domyślna | Opis |
---|---|---|
promtail_version |
"3.0.0" | Wersja pakietu promtail. Przyjmuje również parametry latest. |
promtail_custom_checksum |
"" | Własny checksum dla niestandardowych binarnych plików promtail |
promtail_binary_local_dir |
"" | Pozwala na użycie lokalnych pakietów zamiast tych dystrybuowanych na githubie. Przyjmuje ścieżkę, gdzie archiwum zip promtail jest przechowywane na hoście, na którym uruchomiono ansible. |
promtail_extra_args |
[] | Pozwala na ustawienie dodatkowych argumentów dla binarnego pliku w pliku usługi systemd. |
promtail_config_dir |
/etc/promtail | Katalog do przechowywania pliku konfiguracyjnego promtail |
promtail_config_expand_env |
"false" | Wartość opcji promtail -config.expand-env |
promtail_config_file_sd_dir |
"{{ promtail_config_dir }}/file_sd" | Domyślny katalog dla odkrywania file_sd |
promtail_config_file |
"{{ promtail_config_dir }}/promtail.yml" | Plik konfiguracyjny używany przez promtail |
promtail_system_user |
promtail | Użytkownik, pod którym będzie działał proces promtail |
promtail_system_group |
"{{ promtail_system_user }}" | Grupa użytkownika promtail |
promtail_user_additional_groups |
"adm" | Dodatkowe grupy, które zostaną dodane do użytkownika promtail, aby umożliwić dostęp do określonych plików dzienników |
promtail_config_clients |
zobacz defaults/main.yml | Sekcja promtail clients |
promtail_loki_server_url |
http://127.0.0.1:3100 | Adres URL serwera, na który promtail wyśle swoje wyniki |
promtail_config_server |
zobacz defaults/main.yml | Sekcja promtail server |
promtail_positions_directory |
/var/lib/promtail |
Ścieżka do katalogu, w którym promtail śledzi zscrapowane pozycje logów |
promtail_config_positions |
{"filename": "{{ promtail_positions_directory }}/positions.yml"} | Sekcja promtail positions |
promtail_config_scrape_configs |
[] | Sekcja promtail scrape_configs |
promtail_target_config |
{} | Sekcja promtail target_config |
promtail_log_level |
"info" | Poziom logowania promtail (jeden z: debug , info , warn , error ) |
promtail_config_include_default_file_sd_config |
"True" | Gdy ustawione na false, domyślny file_sd nie będzie dostarczany |
promtail_apt_update_cache |
"True" | Gdy ustawione na false, rola nie zaktualizuje pamięci podręcznej APT samodzielnie |
Dla każdej sekcji (promtail_config_clients
, promtail_config_server
, promtail_config_positions
, promtail_config_scrape_configs
, promtail_target_config
) konfiguracja może być przekazywana zgodnie z oficjalną konfiguracją promtail.
Rola przekształci zmienne ansible w odpowiednią konfigurację yaml dla loki.
Przykładowy Playbook
Podstawowy playbook, który zakłada, że loki będzie nasłuchiwać na http://127.0.0.1:3100
oraz ma prostą konfigurację do skanowania logów z /var/log
:
---
- 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
Bardziej skomplikowany przykład, który nadpisuje konfigurację serwera, klienta, pozycji i dostarcza konfigurację skanowania dla /var/log
:
---
- 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
Testowanie lokalne
Preferowany sposób testowania roli lokalnie to użycie Dockera i molecule (v3.x). Musisz zainstalować Dockera na swoim systemie. Zobacz sekcję "Rozpoczęcie" dla pakietu Dockera odpowiedniego do twojego systemu. Używamy tox, aby uprościć proces testowania w różnych wersjach ansible. Aby zainstalować tox, wykonaj:
pip3 install tox
Aby uruchomić testy dla wszystkich wersji ansible (OSTRZEŻENIE: może to zająć trochę czasu)
tox
Aby uruchomić niestandardowe polecenie molecule w niestandardowym środowisku tylko z domyślnym scenariuszem testowym:
tox -e ansible29 -- molecule test -s default
Aby uzyskać więcej informacji o molecule, przejdź do ich dokumentacji.
Jeśli chcesz uruchomić testy na zdalnym hoście dockera, wystarczy określić zmienną DOCKER_HOST
przed uruchomieniem testów tox.
CI
Akcje GitHub są używane do testowania i walidacji tej roli ansible za pomocą ansible-later oraz molecule. Testy molecule będą uruchamiane z kilkoma systemami operacyjnymi oraz wersjami ansible, aby zapewnić kompatybilność.
Licencja
Ten projekt jest licencjonowany na zasadzie MIT License. Zobacz LICENSE po więcej szczegółów.
Utrzymujący i Współpracownicy
Deploy (loki) promtail
ansible-galaxy install patrickjahns.promtail