Генерация тестовых логов для Loki с помощью flog
Это одиночный бинарник на Go, с которым очень просто работать. Он поддерживает несколько форматов:
- Apache common
- Apache combined
- Apache error
- RFC3164
- RFC5424
- Common log fomat
- JSON
По сути тут 2 типовых формата - разные виды логов веб сервера и syslog, плюс json, где тоже генерируются логи веб сервера.
Для использования можно скачать бинарник в репозиотрии, либо запустить через docker:
# docker run -it --rm mingrammer/flog flog -f apache_common -n 10
Вывели в консоль 10 строк стандартного лога apache, nginx и т.д. Все веб сервера чаще всего используют по умолчанию этот формат логов. Если добавить ключ -l, то генерация логов будет идти непрерывно, пока её не остановишь.
Если тестируете логи докера, то удобно запустить генерацию через докер и собирать вывод stdout. В случае какого-то отдельного веб сервера, удобнее писать логи в файл, как это обычно делает веб сервер и потом их забирать. Делается это примерно так:
# wget https://github.com/mingrammer/flog/releases/download/v0.4.4/flog_0.4.4_linux_amd64.tar.gz
# tar -xzf flog_0.4.4_linux_amd64.tar.gz flog
# mv flog /usr/local/bin/
# flog -t log -f apache_combined -o /var/log/nginx/access.log -b 10485760
/var/log/nginx/access.log is created.
Сгенерировали лог /var/log/nginx/access.log размером в 10 МБ. Теперь этот файл можно отправить в Loki. Конкретно по веб серверу хочу сделать отдельную заметку с примером дашборда.
Такая вот простая утилитка, которая нужна исключительно для настройки и отладки систем сбора логов. Из-за максимальной простоты её удобно использовать для этой задачи. Не придумаю, где она ещё может быть полезна.
#logs