mylabtools/promtail Docker Image
预配置的Promtail工具,用于从Docker容器收集、处理日志并发送至Grafana Loki,支持多种日志格式解析,简化容器日志集中管理流程。
MyLab.Promtail
Ознакомьтесь с последними изменениями в https://raw.githubusercontent.com/mylab-tools/promtail/master/CHANGELOG.md.
Обзор
MyLab.Promtail - сервис для сбора, обработки и отправки логов из docker-контейнеров в сервис сбора логов https://grafana.com/oss/loki/. Разработан на базе https://grafana.com/docs/loki/latest/clients/promtail/.
Разворачивается в виде docker-контейнера на сервере с целевыми контейнерами.
Настройка
Настройка хоста
На уровне хоста необходимо настроить опции логирования docker контейнеров:
- логирование в
jsonфайл; - добавление в логи метки контейнера
log_format; - добавление в логи имени контейнера.
Эти настройки хранятся в файле /etc/docker/daemon.json:
json{ "log-driver": "json-file", "log-opts":{ "labels": "log_format", "tag": "{{.Name}}" } }
Настройка контейнера MyLab.Promtail
При развёртывании контейнера сервиса MyLab.Promtail необходимо:
- подключить директорию с контейнерами
/var/lib/docker/containersхостовой машины в аналогичную директорию в контейнере; - подключить
volume/var/lib/promtailдля хранения состояния считывания файлов логов; - указать переменную окружения
PROMTAIL_LOKI- адрес сервисаGrafana Loki(без слэша в конце!), например [***] - указать переменную окружения
PROMTAIL_ENV- наименование окружения, напримерdev; - указать переменную окружения
PROMTAIL_HOST- наименование хоста, напримерprimary.mycompany.host
Пример:
yamlversion: '3.2' services: promtail: container_name: promtail image: mylabtools/promtail:0.0.3 volumes: - /var/lib/docker/containers:/var/lib/docker/containers - promtail_data:/var/lib/promtail environment: PROMTAIL_LOKI: http://192.168.0.1/loki PROMTAIL_ENV: dev PROMTAIL_HOST: dev-infonot volumes: promtail_data: {}
Настройки целевого контейнера
Для целевого контейнера, логи которого будет отправлять MyLab.Promtail, можно указать формат логов - метка контейнера log_format. может принимать следующие значения:
nginx- логи, которые пишетnginxmylab-yaml- многострочные логи, которые пишут приложения с использованием https://github.com/mylab-log/log вyamlформате.
Если формат не указан, то лог читается как однострочные записи и не подвергаются дополнительному анализу.
Обработка записей логов
Все логи
Для всех логов определяются следующие метки:
container- имя контейнера. Определяется опцией логирования https://docs.docker.com/config/containers/logging/log_tags/ контейнера;env- окружение. Определяется переменной окруженияPROMTAIL_ENV;host- имя сервера. Определяется переменной окруженияPROMTAIL_HOST;format- формат записи лога. Определяется меткой контейнераlog_format. Поддерживаются следующие значения:nginx- логиnginx;mylab-yaml- логи https://github.com/mylab-log/log.
nginx
Пример лога nginx в Grafana:
Из записи лога протокола запросов определяются следующие метки:
level- уровень записи лога. Возможные значения:error- если в записи присутствует один из литералов:error|fail|failed|fault|crash|fatal|crit;warning- ели в записи присутствует литералwarn;info- в остальных случаях;
http_method- http метод запросаhttp_status- http-код ответаrequest_type- определённый тип запроса. Возможные значения:api- запрос к API по относительному адресу/api/...;metrics- запрос метрик по относительному адресу/metrics;other- другие запросы;
request_url-URLзапроса.
Для записи ошибки не определяются никакие дополнительные метки.
MyLab.Log
Пример лога MyLab.Log в Grafana:
Из записи лога протокола запросов определяются следующие метки:
level- уровень записи лога. Определяется значением метки записи логаlog_level. Возможны следующие значения:debug;warning;error.
更多相关 Docker 镜像与资源
以下是 mylabtools/promtail 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 promtail 镜像标签
DockerHub 原生拉取命令
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务