From 99545595c2a5ebfb2f2829b3afbca540bd97e798 Mon Sep 17 00:00:00 2001 From: Nikitin Aleksandr Date: Fri, 13 Oct 2023 16:40:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BE=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env_empty | 11 +++++ .env_example | 16 ------- README.md | 54 ++++++++++++++++++++++- docs/connections.graphml | 32 ++++++++++++-- docs/connections.jpg | Bin 4777 -> 5608 bytes readme.rus | 78 +++++++++++++++------------------- settings/services_example.txt | 4 +- 7 files changed, 128 insertions(+), 67 deletions(-) create mode 100644 .env_empty delete mode 100644 .env_example diff --git a/.env_empty b/.env_empty new file mode 100644 index 0000000..6a05beb --- /dev/null +++ b/.env_empty @@ -0,0 +1,11 @@ + +TELEGRAM_APP_ID= +TELEGRAM_APP_HASH= +TELEGRAM_PHONE_FROM= +TELEGRAM_PHONE_SEND_TEST= + +LOKI_URL= +GRAFANA_LOGIN= +GRAFANA_PASSWORD= + +TELEGRAM_CHAT_NAME= diff --git a/.env_example b/.env_example deleted file mode 100644 index 2ced91c..0000000 --- a/.env_example +++ /dev/null @@ -1,16 +0,0 @@ -#filename file to create with .graphml extension -FILENAME_GRAPHML= - -#table names have to image, regular expression format -INCLUDE_TABLES= - -#table names have to not image, regular expression format -EXCLUDE_TABLES= - -#database credentials -DB_HOST= -DB_NAME= -DB_SCHEME= -DB_PORT= -DB_USER= -DB_PASSWORD= diff --git a/README.md b/README.md index 5da8c4c..0569bad 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,52 @@ -# telegram_loki -Send errors from logger LOKI to telegram messenger +Applications for sending logs with errors from the LOKI(GRAFANA) logger to the Telegram messenger + +The LOKI logger has an inconvenient interface for searching errors in application logs, +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: +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 +5. Repeats the search every 10 minutes + + +Installation procedure: +1. Compile this repository +make build +the telegram_loki file will appear in the bin folder + + +2. make a .env file with filled parameters: +TELEGRAM_APP_ID= +TELEGRAM_APP_HASH= +TELEGRAM_PHONE_FROM= +TELEGRAM_PHONE_SEND_TEST= +LOKI_URL= +GRAFANA_LOGIN= +GRAFANA_PASSWORD= +TELEGRAM_CHAT_NAME= + + +3. Fill in the settings/services.txt file +In json format write the service name in LOKI +and the name (login) of the programmer (optional) +sample: +{ + "test-service1": "@DeveloperTelegramName" +} + + +3. Run the telegram_loki file + + +Source code in Golang language. +Tested on Linux Ubuntu +Readme from 10/13/2023 + +License: +Save information about the author and the site. + +Made by Alexander Nikitin +https://github.com/ManyakRus/telegram_loki \ No newline at end of file diff --git a/docs/connections.graphml b/docs/connections.graphml index a2037f7..1d05bdd 100644 --- a/docs/connections.graphml +++ b/docs/connections.graphml @@ -15,7 +15,7 @@ - + telegram_loki @@ -26,7 +26,7 @@ - + Telegram @@ -34,14 +34,38 @@ - + + + + + + + WEB + + + + + + WEB]]> + + + + + + + + + + + + Telegram]]> - + diff --git a/docs/connections.jpg b/docs/connections.jpg index 4c1d52bc7ce51a2b1a89351335a8803bb1dd5a1a..c8bbe3ad2dfd539b821bebf72261867e88e161c8 100644 GIT binary patch delta 4199 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