diff --git a/README.md b/README.md index d7b36ef..cbab8fd 100644 --- a/README.md +++ b/README.md @@ -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. The application does: +Search for errors in the LOKI logger 1. Log in to grafana 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: -4. Found logs with errors are sent to the Telegram messenger +3. For each service, searches for LOKI logs with the text: error:, panic:, ERROR:, PANIC: +4. Sends the found logs with errors to the Telegram messenger 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: 1. Compile this repository -make build +>make build the telegram_loki file will appear in the bin folder - 2. fill parametes in settings.txt file (or .env file) with Grafana LOKI URL, login, password, etc. diff --git a/bin/date.txt b/bin/date.txt index d68edc6..2cdc78a 100644 --- a/bin/date.txt +++ b/bin/date.txt @@ -1 +1 @@ -2024-11-01 12:03:45.152 \ No newline at end of file +2024-11-01 12:11:04.332 \ No newline at end of file diff --git a/bin/subversion.txt b/bin/subversion.txt index ca0989f..90379d4 100644 --- a/bin/subversion.txt +++ b/bin/subversion.txt @@ -1 +1 @@ -00157 \ No newline at end of file +00158 \ No newline at end of file diff --git a/internal/logic/sql/logic_sql.go b/internal/logic/sql/logic_sql.go index e24522a..08d0aa6 100644 --- a/internal/logic/sql/logic_sql.go +++ b/internal/logic/sql/logic_sql.go @@ -54,6 +54,10 @@ func RunSQL_and_Send() { // RunSQL - запускает все скрипты .sql func RunSQL() error { + var err error + + log.Debug("Start run .sql scripts") + dir := micro.ProgramDir_bin() DirFilename := dir + config.Settings.SQL_FILES_FOLDER Files, err := os.ReadDir(DirFilename) diff --git a/pkg/version/version.txt b/pkg/version/version.txt index 549822d..f219ba6 100644 --- a/pkg/version/version.txt +++ b/pkg/version/version.txt @@ -1 +1 @@ -fc8ca01 2024-11-01 15:02:44 +0300 +30fe5f2 2024-11-01 15:06:48 +0300 diff --git a/readme.rus b/readme.rus index 029fe95..764ff20 100644 --- a/readme.rus +++ b/readme.rus @@ -5,21 +5,29 @@ поэтому надо автоматизировать процесс поиска ошибок в логах и уведомление разработчикам. Приложение делает: +Поиск ошибок в логгере 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 минут + Порядок установки: 1. Скомпилировать этот репозиторий -make build +>make build в папке bin появится файл telegram_loki - 2. заполнить файл settings.txt (или .env) -с настройками LOKI URL, логин, пароль и др. +с настройками LOKI URL, логин, пароль и др., +а также настройки подключения в базу данных. 3. Заполнить файл settings/services.txt В формате json написать имя сервиса в LOKI diff --git a/test/test.sql b/test/test.sql deleted file mode 100644 index 7a8f142..0000000 --- a/test/test.sql +++ /dev/null @@ -1 +0,0 @@ -SELECT 1 \ No newline at end of file diff --git a/test/test_error.sql b/test/test_error.sql new file mode 100644 index 0000000..5d4a3de --- /dev/null +++ b/test/test_error.sql @@ -0,0 +1 @@ +SELECT 'test' \ No newline at end of file