1
0
mirror of https://github.com/ManyakRus/telegram_loki.git synced 2024-12-04 21:05:12 +02:00
telegram_loki/readme.rus
Nikitin Aleksandr c8c6027ab6 сделал URL
2024-11-15 09:40:07 +03:00

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