README.md

Gotcher

Описание

Цель проекта заключается в том, чтобы организовать наблюдения за лог-файлами, с установленным периодом проверять в них наличие поисковых фраз и оповещать пользователя в случае их обнаружения. Оповещения отправляются по почте, в Telegram или в Vk.

Настройки

Настройки программы расположены в папке /usr/local/etc/gotcher

/usr/local/etc/gotcher/sender.yaml

sender: "email"

email:
  smtp_host: "smtp.mail.local"
  smtp_port: 465
  user: "admin@domain.local"
  password: "password"
  to: ["admin@domain.local"]

vk:
  access_token: "token"
  user_id: "1234567890"

telegram:
  bot_token: "token"
  chat_id: "1234567890"

VK

Отправка сообщений выполняется от имени группы.
Вы должны создать новую или использовать имеющуюся.
Токен можно найти в разделе: Управление - Работа с API - Ключи доступа

Telegram

Отправка сообщений выполняется от имени бота.
Вы должны создать нового или использовать имеющегося.
Токен можно получить при создании бота: https://t.me/BotFather

/usr/local/etc/gotcher/entrypoints/example.yaml

Описание настроек:

  • name: Имя наблюдателя;
  • file_path: Путь к лог-файлу;
  • check_interval: Период проверки (от 5s); Формат: h:m:s;
  • cooldown_between_checks: Время ожидания между проверками, если последняя нашла совпадения;
  • lines_to_send: Количество строк для отправки;
    • 0: Отправить весь лог;
    • 1: Отправить найденную строку;
    • > 1: Отправить указанное количество строк, после найденной;
  • notify_after_error_status_change: Оповестить если совпадения не найдены, если последняя проверка их нашла;
  • tracked_phrases: Искомые фразы.
log_files:
  - name: "Example"
    file_path: "/usr/local/etc/gotcher/logs/example.log"
    check_interval: "5s"
    cooldown_between_checks: "0s"
    lines_to_send: 2
    notify_after_error_status_change: true
    tracked_phrases: ["Build failed", "Error"]

docker-compose.yaml

Пользователь для работы с файлами: 1000:1000

services:
  gotcher:
    # Безопасность
    security_opt:
      - no-new-privileges:true
    tmpfs:
      - /tmp:rw,noexec,nosuid
    # Настройки контейнера
    container_name: gotcher
    image: aligotr/gotcher:latest
    restart: unless-stopped
    volumes:
      - /srv/gotcher/data/:/usr/local/etc/gotcher/:rw
      - /var/log/:/var/log/:rw
Описание

Программа для наблюдения за лог-файлами и оповещения о событиях

Конвейеры
0 успешных
0 с ошибкой