1
0
mirror of https://github.com/ManyakRus/telegram_loki.git synced 2024-12-04 21:05:12 +02:00

сделал sql

This commit is contained in:
Nikitin Aleksandr 2024-11-01 15:46:58 +03:00
parent 30fe5f2367
commit 1182b539b6
8 changed files with 29 additions and 11 deletions

View File

@ -5,19 +5,25 @@ and no one will look there every 5 minutes -
Therefore, it is necessary to automate the process of searching for errors in logs and notifying developers. Therefore, it is necessary to automate the process of searching for errors in logs and notifying developers.
The application does: The application does:
Search for errors in the LOKI logger
1. Log in to grafana 1. Log in to grafana
2. Takes a list of services from the services.txt file 2. Takes a list of services from the services.txt file
3. For each service, searches for LOKI logs with the text: error:,panic:,ERROR:,PANIC: 3. For each service, searches for LOKI logs with the text: error:, panic:, ERROR:, PANIC:
4. Found logs with errors are sent to the Telegram messenger 4. Sends the found logs with errors to the Telegram messenger
5. Repeats the search every 10 minutes 5. Repeats the search every 10 minutes
Search for errors in the database:
1. Log in to the PostgreSQL database
2. Finds .sql files in the sql folder, and executes a script in the database,
if the script returns a value, a message about this will come to the Telegram messenger,
if the script does not return lines, then everything is fine.
3. Repeats requests every 60 minutes
Installation procedure: Installation procedure:
1. Compile this repository 1. Compile this repository
make build >make build
the telegram_loki file will appear in the bin folder the telegram_loki file will appear in the bin folder
2. fill parametes in settings.txt file (or .env file) 2. fill parametes in settings.txt file (or .env file)
with Grafana LOKI URL, login, password, etc. with Grafana LOKI URL, login, password, etc.

View File

@ -1 +1 @@
2024-11-01 12:03:45.152 2024-11-01 12:11:04.332

View File

@ -1 +1 @@
00157 00158

View File

@ -54,6 +54,10 @@ func RunSQL_and_Send() {
// RunSQL - запускает все скрипты .sql // RunSQL - запускает все скрипты .sql
func RunSQL() error { func RunSQL() error {
var err error
log.Debug("Start run .sql scripts")
dir := micro.ProgramDir_bin() dir := micro.ProgramDir_bin()
DirFilename := dir + config.Settings.SQL_FILES_FOLDER DirFilename := dir + config.Settings.SQL_FILES_FOLDER
Files, err := os.ReadDir(DirFilename) Files, err := os.ReadDir(DirFilename)

View File

@ -1 +1 @@
fc8ca01 2024-11-01 15:02:44 +0300 30fe5f2 2024-11-01 15:06:48 +0300

View File

@ -5,21 +5,29 @@
поэтому надо автоматизировать процесс поиска ошибок в логах и уведомление разработчикам. поэтому надо автоматизировать процесс поиска ошибок в логах и уведомление разработчикам.
Приложение делает: Приложение делает:
Поиск ошибок в логгере LOKI
1. Логинится в grafana 1. Логинится в grafana
2. Берёт список сервисов из файла services.txt 2. Берёт список сервисов из файла services.txt
3. По каждому сервису ищет логи LOKI с текстом: error:,panic:,ERROR:,PANIC: 3. По каждому сервису ищет логи LOKI с текстом: error:,panic:,ERROR:,PANIC:
4. Найденные логи с ошибками присылает в Telegram мессенджер 4. Найденные логи с ошибками присылает в Telegram мессенджер
5. Повторяет поиск каждые 10 минут 5. Повторяет поиск каждые 10 минут
Поиск ошибок в базе данных:
1. Логинится в базу данных PostgreSQL
2. Находит файлы .sql в папке sql, и выполняет скрипт в базе данных,
если скрипт вернёт значение, то сообщение об этом придёт в Telegram messenger,
если скрипт не вернёт ни одной строки, то значит всё хорошо.
3. Повторяет запросы каждые 60 минут
Порядок установки: Порядок установки:
1. Скомпилировать этот репозиторий 1. Скомпилировать этот репозиторий
make build >make build
в папке bin появится файл telegram_loki в папке bin появится файл telegram_loki
2. заполнить файл settings.txt (или .env) 2. заполнить файл settings.txt (или .env)
с настройками LOKI URL, логин, пароль и др. с настройками LOKI URL, логин, пароль и др.,
а также настройки подключения в базу данных.
3. Заполнить файл settings/services.txt 3. Заполнить файл settings/services.txt
В формате json написать имя сервиса в LOKI В формате json написать имя сервиса в LOKI

View File

@ -1 +0,0 @@
SELECT 1

1
test/test_error.sql Normal file
View File

@ -0,0 +1 @@
SELECT 'test'