Как стать автором
Обновить

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

Время на прочтение 2 мин
Количество просмотров 5.2K

Всем привет! Данный гайд будет посвящен тому, как направить уведомления из системы сбора логов 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. Мы должны получить следующее уведомление в дискорде:

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

Теги:
Хабы:
+2
Комментарии 5
Комментарии Комментарии 5

Публикации

Истории

Работа

DevOps инженер
39 вакансий

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн