Гайд по уведомлениям из GrayLog в discord

от автора

Всем привет!

Данный гайд будет посвящен тому, как направить уведомления из системы сбора логов GrayLog в discord, сохраняя при этом удобную форму и полное содержание сообщений.

Можно сделать бота, который будет отправлять сообщения сохраняя полную разметку сообщений и предоставляя их в удобочитаемой форме. Вот пример сообщения:

Плюсы относительно смс уведомлений в том, что discord поддерживает markdown разметку, что позволяет делать комфортное представление для подачи сообщения, а также дискорд бесплатен, что при большом количестве ошибок в логах быть плюсом.

Есть несколько способов настроить GrayLog для отправки сообщений в discord, подробнее они описаны в данном опенсорсном решении: discord_alerts.

Настраиваем бота:

  1. Переходим по ссылке и создаем бота discord applications (можно за одно добавить аватарку)

 

  1. Переходим во вкладку бот и жмём `добавить бота`

 

  1. Жмём reset token для удаленного доступа к боту и сохраняем токен

  1. Идем в генератор URL настраиваем доступы бота, добавляем возможность отправлять сообщения

 

  1. Открываем сгенерированный URL в бразузере

 

  1. Копируем ссылку на канал на сервере в приложении дискорда

 

Отлично!

На данный момент у нас должны быть пройденные следующие шаги:

  • У нас есть token для бота

  • У нас есть ID канала для записи сообщений

  • Бот добавлен на сервер и он оффлайн

Если вы сделали всё правильно, то данные условия должны быть выполнены.

Далее мы запустим приложение которое принимает логи из GrayLog.

Опция 1 — запуск в docker

Самый простой способ — запустить через docker-compose файл, просто заполнив поля связанные с токеном, ID канала и портом для http сообщений. Вот пример yaml файла:

version: '3' services: discord_alerts: image: dangdancheg/discord_alerts:latest ports: - 3458:3458 environment: - TOKEN=PASTE_YOUR_DISCORD_TOKEN - CHANNEL_ID=PASTE_CHANNELID_FROM_CHANNEL_LINK - PORT=3458

Далее можно просто запустить команду docker compose up, и бот готов

Опция 2 — запуск в билдов

Ищем необхдимую платформу в следующей папке build.

Создаем и заполняем .env файл.

TOKEN=YOUR_TOKEN CHANNEL_ID=YOUR_CHAN_ID PORT=3458

Скачиваем готовый запускаемый файл и сохраняем в папке с .env файлом:

-->    linux/mipsle: discord_alerts -->       linux/arm: discord_alerts -->      darwin/386: discord_alerts -->     freebsd/arm: discord_alerts -->     freebsd/386: discord_alerts -->   freebsd/amd64: discord_alerts -->     openbsd/386: discord_alerts -->   openbsd/amd64: discord_alerts -->     windows/386: discord_alerts -->   windows/amd64: discord_alerts -->     linux/s390x: discord_alerts -->      netbsd/386: discord_alerts -->    netbsd/amd64: discord_alerts -->      netbsd/arm: discord_alerts -->  linux/mips64le: discord_alerts -->    linux/mips64: discord_alerts -->       linux/386: discord_alerts -->    darwin/amd64: discord_alerts -->     linux/amd64: discord_alerts -->      linux/mips: discord_alerts

Запускаем файл.

Отлично! Теперь у нас есть настроенный приемник для сообщений. Теперь осталось настроить выход у graylog для отправки сообщений.

Настраиваем GrayLog

  1. Заходим во вкладку Alerts:

  1. Открываем пункт с уведомлениями — notifications:

  1. Выбираем http уведомления:

  1. Выбираем любое название и добавляем адрес для вызова (по указанному порту и с методом /json)

  1. Мы должны получить следующее уведомление в дискорде:

Если что-либо не получилось оставляйте комментарии, постараюсь помочь.


ссылка на оригинал статьи https://habr.com/ru/post/656455/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *