patrickjahns.promtail
Rol de Ansible: promtail
Descripción
Despliega promtail usando ansible. Soporta arquitecturas amd64 y arm. Para cambios recientes, consulta el CHANGELOG o revisa las versiones en github.
Requisitos
- Ansible >= 2.7
Variables del Rol
Todas las variables que se pueden sobrescribir se encuentran en el archivo defaults/main.yml así como en la tabla a continuación.
Nombre | Valor por Defecto | Descripción |
---|---|---|
promtail_version |
"3.0.0" | Versión del paquete promtail. También acepta latest como parámetro. |
promtail_custom_checksum |
"" | Suma de verificación personalizada para binarios promtail construidos manualmente. |
promtail_binary_local_dir |
"" | Permite usar paquetes locales en lugar de los distribuidos en github. Recibe como parámetro la ruta donde está almacenado el archivo zip de promtail en el host donde se ejecuta ansible. |
promtail_extra_args |
[] | Permite establecer argumentos adicionales para el binario dentro del archivo de servicio systemd. |
promtail_config_dir |
/etc/promtail | Directorio para almacenar el archivo de configuración de promtail. |
promtail_config_expand_env |
"false" | Valor de la opción promtail -config.expand-env. |
promtail_config_file_sd_dir |
"{{ promtail_config_dir }}/file_sd" | Directorio predeterminado para el descubrimiento de file_sd . |
promtail_config_file |
"{{ promtail_config_dir }}/promtail.yml" | Archivo de configuración utilizado por promtail. |
promtail_system_user |
promtail | Usuario con el que se ejecutará el proceso promtail. |
promtail_system_group |
"{{ promtail_system_user }}" | Grupo del usuario promtail. |
promtail_user_additional_groups |
"adm" | Grupos adicionales que se agregarán al usuario promtail para permitir el acceso a archivos de registro específicos. |
promtail_config_clients |
consulta defaults/main.yml | Sección de clientes en la configuración de promtail. |
promtail_loki_server_url |
http://127.0.0.1:3100 | URL del servidor donde promtail enviará sus resultados. |
promtail_config_server |
consulta defaults/main.yml | Sección del servidor en la configuración de promtail. |
promtail_positions_directory |
/var/lib/promtail |
Ruta al directorio donde promtail realiza el seguimiento de las posiciones de los registros. |
promtail_config_positions |
{"filename": "{{ promtail_positions_directory }}/positions.yml"} | Sección de posiciones en la configuración de promtail. |
promtail_config_scrape_configs |
[] | Sección de scrape_configs en la configuración de promtail. |
promtail_target_config |
{} | Sección de target_config en la configuración de promtail. |
promtail_log_level |
"info" | Nivel de registro de promtail (puede ser: debug , info , warn , error ). |
promtail_config_include_default_file_sd_config |
"True" | Cuando se establece en falso, no se provisionará el file_sd por defecto. |
promtail_apt_update_cache |
"True" | Cuando se establece en falso, el rol no actualizará la caché de APT por su cuenta. |
Para cada sección (promtail_config_clients
, promtail_config_server
, promtail_config_positions
, promtail_config_scrape_configs
, promtail_target_config
), la configuración se puede pasar de acuerdo con la configuración oficial de promtail.
El rol convertirá las variables de ansible en la respectiva configuración yaml para loki.
Ejemplo de Playbook
Playbook básico que asumirá que loki escuchará en http://127.0.0.1:3100
con una configuración sencilla para raspar logs de /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
Un ejemplo más complejo que sobrescribe la configuración de servidor, cliente y posiciones proporcionando una configuración de raspado para /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
Pruebas Locales
La forma preferida de probar el rol localmente es usar Docker y molecule (v3.x). Tendrás que instalar Docker en tu sistema. Consulta "Comenzar" para un paquete de Docker adecuado para tu sistema. Usamos tox para simplificar el proceso de pruebas en múltiples versiones de ansible. Para instalar tox, ejecuta:
pip3 install tox
Para ejecutar pruebas en todas las versiones de ansible (ADVERTENCIA: esto puede llevar tiempo):
tox
Para ejecutar un comando moleculare personalizado en un entorno personalizado solo con la prueba predeterminada:
tox -e ansible29 -- molecule test -s default
Para más información sobre molecule, ve su documentación.
Si deseas ejecutar pruebas en un host Docker remoto, simplemente especifica la variable DOCKER_HOST
antes de ejecutar las pruebas de tox.
CI
Se utilizan acciones de Github para probar y validar este rol de ansible a través de ansible-later y molecule. Las pruebas de molecule se ejecutarán en varios sistemas operativos y versiones de ansible para asegurar la compatibilidad.
Licencia
Este proyecto está bajo la Licencia MIT. Consulta LICENSE para más detalles.
Mantenedores y Contribuyentes
Deploy (loki) promtail
ansible-galaxy install patrickjahns.promtail