mirror of
https://github.com/ManyakRus/telegram_loki.git
synced 2024-12-04 21:05:12 +02:00
66 lines
3.5 KiB
Plaintext
66 lines
3.5 KiB
Plaintext
Приложения для отправки логов с ошибками из логгера LOKI(GRAFANA) в мессенджер Telegram
|
|
|
|
В логгере LOKI неудобный интерфейс для поиска ошибок в логах приложений,
|
|
и никто не будет туда смотреть каждые 5 минут -
|
|
поэтому надо автоматизировать процесс поиска ошибок в логах и уведомление разработчикам.
|
|
|
|
Приложение делает:
|
|
Поиск ошибок в логгере LOKI
|
|
1. Логинится в grafana
|
|
2. Берёт список сервисов из файла services.txt,
|
|
в том числе имя сервиса и имя ответственного
|
|
3. По каждому сервису ищет логи LOKI с текстом: error:,panic:,ERROR:,PANIC:
|
|
4. Найденные логи с ошибками присылает в Telegram мессенджер
|
|
5. Повторяет поиск каждые 10 минут
|
|
|
|
Поиск ошибок в базе данных:
|
|
1. Логинится в базу данных PostgreSQL
|
|
2. Находит файлы .sql в папке sql, и выполняет скрипт в базе данных,
|
|
если скрипт вернёт значение, то сообщение об этом придёт в Telegram messenger,
|
|
если скрипт не вернёт ни одной строки, то значит всё хорошо.
|
|
3. Повторяет запросы каждые 60 минут
|
|
4. Если заполнить файл scripts.txt (scripts_add.txt),
|
|
в том числе имя файла .sql и имя ответственного,
|
|
то будет ещё добавлять имя ответственного.
|
|
|
|
Бот отправляет логи ошибок в Телеграмм группы:
|
|
1. Общая группа со всеми ошибками, всех программистов.
|
|
ИД группы заполняется в settings.txt, TELEGRAM_CHAT_NAME=
|
|
В настройках Телеграм группы надо поставить права Тип группы = "Публичная"
|
|
2. Каждому программисту отдельно, только логи которые относятся к нему.
|
|
Заполняется в файлах services.txt, scripts.txt
|
|
Каждый программист должен сам добавить себе в Телеграм этого телеграм бота
|
|
|
|
|
|
Порядок установки:
|
|
1. Скомпилировать этот репозиторий
|
|
>make build
|
|
в папке bin появится файл telegram_loki
|
|
|
|
2. заполнить файл settings.txt (или .env)
|
|
с настройками LOKI URL, логин, пароль и др.,
|
|
а также настройки подключения в базу данных.
|
|
|
|
3. Заполнить файл settings/services.txt
|
|
В формате json написать имя сервиса в LOKI
|
|
и имя(логин) программиста (необязательно)
|
|
образец:
|
|
{
|
|
"test-service1": "@DeveloperTelegramName"
|
|
}
|
|
|
|
|
|
3. Запустить файл telegram_loki
|
|
|
|
|
|
Исходный код на языке Golang.
|
|
Тестировал на Linux Ubuntu
|
|
Реадми от 13.10.2023
|
|
|
|
Лицензия:
|
|
GPL 2, сохранять информацию об авторе и сайте.
|
|
|
|
Сделал Александр Никитин
|
|
https://github.com/ManyakRus/telegram_loki
|
|
|