promtail
Ansible Роль: promtail
Описание
Разверните promtail с помощью ansible. Поддерживает архитектуры amd64 и arm. Для недавних изменений смотрите CHANGELOG или ознакомьтесь с релизами на GitHub.
Требования
- Ansible >= 2.7
Переменные Роли
Все переменные, которые можно переопределить, хранятся в файле defaults/main.yml, а также в таблице ниже.
Имя | Значение по умолчанию | Описание |
---|---|---|
promtail_version |
"3.0.0" | Версия пакета promtail. Также принимает latest в качестве параметра. |
promtail_custom_checksum |
"" | Пользовательская контрольная сумма для пользовательских бинарных файлов promtail |
promtail_binary_local_dir |
"" | Позволяет использовать локальные пакеты вместо тех, что распространяются на GitHub. Должен принимать путь, где хранится zip-архив promtail на хосте, на котором выполняется ansible. |
promtail_extra_args |
[] | Позволяет устанавливать дополнительные аргументы для бинарного файла в системном файле службы systemd. |
promtail_config_dir |
/etc/promtail | Каталог для хранения файла конфигурации promtail |
promtail_config_expand_env |
"false" | Значение параметра promtail -config.expand-env |
promtail_config_file_sd_dir |
"{{ promtail_config_dir }}/file_sd" | Директория по умолчанию для открытия file_sd |
promtail_config_file |
"{{ promtail_config_dir }}/promtail.yml" | Файл конфигурации, используемый promtail |
promtail_system_user |
promtail | Пользователь, от имени которого будет выполняться процесс promtail |
promtail_system_group |
"{{ promtail_system_user }}" | Группа пользователя promtail |
promtail_user_additional_groups |
"adm" | Дополнительные группы, которые должны быть добавлены пользователю promtail для доступа к определенным журналам |
promtail_config_clients |
см. defaults/main.yml | Раздел promtail clients |
promtail_loki_server_url |
http://127.0.0.1:3100 | URL сервера, на который promtail будет отправлять свои результаты |
promtail_config_server |
см. defaults/main.yml | Раздел promtail server |
promtail_positions_directory |
/var/lib/promtail |
Путь к директории, где promtail отслеживает положенные журналы |
promtail_config_positions |
{"filename": "{{ promtail_positions_directory }}/positions.yml"} | Раздел promtail positions |
promtail_config_scrape_configs |
[] | Раздел promtail scrape_configs |
promtail_target_config |
{} | Раздел promtail target_config |
promtail_log_level |
"info" | Уровень логирования promtail (один из: debug ,info ,warn ,error ) |
promtail_config_include_default_file_sd_config |
"True" | Если установить в false, стандартный file_sd не будет предоставлен |
promtail_apt_update_cache |
"True" | Если установить в false, роль не будет обновлять кеш APT сама |
Для каждого раздела (promtail_config_clients
, promtail_config_server
, promtail_config_positions
, promtail_config_scrape_configs
, promtail_target_config
) конфигурацию можно передавать в соответствии с официальной конфигурацией promtail.
Роль конвертирует переменные ansible в соответствующую yaml-конфигурацию для loki.
Пример Плейбука
Базовый плейбук предполагает, что loki будет слушать на http://127.0.0.1:3100
и содержит простую конфигурацию для сбора логов из /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
Более сложный пример, который переопределяет конфигурацию сервера, клиента и позиций, а также предоставляет конфигурацию для сбора логов из /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
Локальное Тестирование
Предпочтительный способ локального тестирования роли — это использование Docker и molecule (v3.x). Вам нужно установить Docker на свою систему. Просмотрите раздел "Начало работы" для получения пакета Docker, подходящего для вашей системы. Мы используем tox, чтобы упростить процесс тестирования на нескольких версиях ansible. Для установки tox выполните:
pip3 install tox
Чтобы запустить тесты на всех версиях ansible (ВНИМАНИЕ: это может занять некоторое время)
tox
Чтобы запустить пользовательскую команду molecule в пользовательской среде только с тестовым сценарием по умолчанию:
tox -e ansible29 -- molecule test -s default
Для получения дополнительной информации о molecule посетите их документацию.
Если вы хотите запустить тесты на удаленном хосте Docker, просто укажите переменную DOCKER_HOST
перед запуском тестов tox.
CI
Github actions используется для тестирования и проверки данной роли ansible с помощью ansible-later и molecule. Тесты molecule будут выполняться с несколькими операционными системами, а также с версиями ansible для обеспечения совместимости.
Лицензия
Этот проект лицензирован под MIT License. Смотрите LICENSE для получения более подробной информации.
Поддержка и вносчики изменений
Deploy (loki) promtail
ansible-galaxy install patrickjahns/ansible-role-promtail