patrickjahns.promtail

Rola Ansible: promtail

Test Licencja Rola Ansible Tag GitHub

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

Zainstaluj
ansible-galaxy install patrickjahns.promtail
Licencja
mit
Pobrania
514.5k
Właściciel
Site Reliability Engineer with a ❤️ for "everything as code". Passionate about software craftsmanship and deliberately breaking things (aka Chaos Engineering)