lespocky.telegraf_docker_in_docker
Telegraf Docker w Docker (telegraf-docker-w-docker)
Rola Ansible do uruchamiania agenta Telegraf z wtyczką wejściową Docker w kontenerze Docker.
Spis treści
- Tło
- Wymagania
- Instalacja
- Zmienne roli
- Zależności
- Przykładowy playbook
- Współpraca
- Licencja
- Informacje o autorze
Tło
Telegraf to agent, który często służy do przesyłania metryk do InfluxDB. Oba są napisane w języku Go, który jest trudny do pakowania dla tradycyjnych dystrybucji, takich jak Debian GNU/Linux, więc uruchamianie ich w Dockerze jest wygodne.
Wtyczka wejściowa Docker Telegraf zbiera metryki z działających kontenerów dockerowych przy użyciu API silnika Docker. Uruchomienie agenta Telegraf w kontenerze Docker wymaga dostępu do punktu końcowego Dockera na hoście, zazwyczaj jest to gniazdo UNIX. Z punktu widzenia bezpieczeństwa sensowne jest uruchomienie agenta jako użytkownika bez uprawnień, co sprawia, że konieczne jest posiadanie użytkownika na systemie hosta, który jest w grupie docker, co może być użyte z wnętrza kontenera do uzyskania dostępu do tego punktu końcowego.
Ten projekt wykonuje całe ustawienie tego użytkownika i kontenera w jednej roli ansible.
Wymagania
Kontenery są ustawiane przy użyciu modułu community.docker.docker_container, który jest częścią kolekcji community.docker. Możesz to już mieć zainstalowane. Jeśli nie, postępuj zgodnie z dokumentacją modułów, aby go zainstalować.
Instalacja
Ta rola może być zainstalowana poprzez twój requirements.yml, zarówno z Ansible Galaxy, jak i z repozytorium Git.
Zmienne roli
Zmienne obowiązkowe
tdid_influxdb_org
:- Opis: Nazwa organizacji InfluxDB.
tdid_influx_token
:- Opis: Token API InfluxDB. Zaleca się, aby nie umieszczać tego w playbooku, ale używać vaultu lub bezpiecznego wyszukiwania!
Zmienne opcjonalne
tdid_conf_dir
:- Domyślnie:
"/etc"
- Opis: Katalog docelowy na hoście, do którego rola kopiuje plik konfiguracyjny.
- Domyślnie:
tdid_docker_image
:- Domyślnie:
"telegraf:latest"
- Opis: Kombinacja "telegraf" i jakiś tag. Domyślnie używa najnowszego obrazu z Docker Hub.
- Przykłady:
"telegraf:latest"
"telegraf:alpine"
"telegraf:1.23"
"telegraf:1.24-alpine"
- Domyślnie:
tdid_influxdb_url
:- Domyślnie:
"http://localhost:8086"
- Opis: URL węzła działającego InfluxDB.
- Domyślnie:
tdid_influxdb_bucket
:- Domyślnie:
"default"
- Opis: Docelowy koszyk do zapisu.
- Domyślnie:
tdid_timezone
:- Domyślnie:
"UTC"
- Opis: Zmienna środowiskowa
TZ
przekazywana do kontenera telegraf. - Przykłady:
Europe/Berlin
Asia/Nepal
- Domyślnie:
tdid_user
:- Domyślnie:
"telegraf"
- Opis: Użytkownik systemowy utworzony lub zmodyfikowany na hoście.
- Tło: Mapowanie dowolnych użytkowników hosta na użytkowników kontenera nie jest łatwe możliwe. Prawa dostępu na hoście mają zastosowanie do tych samych numerycznych UID i GID wewnątrz kontenerów. Proces uruchomiony w kontenerze uzyskujący dostęp do czegoś na hoście musi działać z uid/gid wymaganym na hoście, aby uzyskać dostęp do określonych rzeczy na hoście. Konieczne jest posiadanie użytkownika w grupie docker, aby uzyskać dostęp do punktu końcowego api silnika docker bez uprawnień superużytkownika. Jeśli nie jest już obecny na hoście, ten użytkownik zostanie utworzony jako użytkownik systemowy i umieszczony w grupie 'docker'. Agent Telegraf może działać wewnątrz kontenera z tym UID.
- Domyślnie:
Zależności
Nie używane są inne role galaxy, tylko wspomniany powyżej moduł społecznościowy.
Przykładowy Playbook
Po prostu dołącz rolę i ustaw kilka zmiennych.
Minimalny przykład
- hosts: serwery
roles:
- role: telegraf_docker_w_docker
vars:
tdid_influxdb_org: Home
tdid_influx_token: "{{ lookup( … ) }}"
Pełny przykład
- hosts: serwery
roles:
- role: telegraf_docker_w_docker
vars:
tdid_influxdb_org: Home
tdid_influx_token: "{{ lookup( … ) }}"
tdid_conf_dir: "/etc/telegraf"
tdid_influxdb_bucket: devops
tdid_influxdb_url: "http://influx.example.org:8086"
tdid_docker_image: telegraf:1.24-alpine
tdid_timezone: "Europe/Berlin"
tdid_user: telegraf
Współpraca
Przyjmowane są prośby o pociągnięcie.
Licencja
Ten projekt jest licencjonowany na mocy Licencji MIT chyba że zaznaczono inaczej w pliku i jest zgodny z zgodnością REUSE.
© 2022 Alexander Dahl i współpracownicy
Informacje o autorze
Napisane przez Alexander Dahl dla Netz39 monitoring infrastruktury.
ansible-galaxy install lespocky.telegraf_docker_in_docker