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

Плюсы относительно смс уведомлений в том, что discord поддерживает markdown разметку, что позволяет делать комфортное представление для подачи сообщения, а также дискорд бесплатен, что при большом количестве ошибок в логах быть плюсом.
Есть несколько способов настроить GrayLog для отправки сообщений в discord, подробнее они описаны в данном опенсорсном решении: discord_alerts.
Настраиваем бота:
-
Переходим по ссылке и создаем бота discord applications (можно за одно добавить аватарку)


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


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


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


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



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


Отлично!
На данный момент у нас должны быть пройденные следующие шаги:
-
У нас есть 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
-
Заходим во вкладку Alerts:

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

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

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

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

Если что-либо не получилось оставляйте комментарии, постараюсь помочь.
ссылка на оригинал статьи https://habr.com/ru/post/656455/
Добавить комментарий