Мой блог - Настройка отправки оповещений Zabbix в чат Rocket.Chat

Настройка отправки оповещений Zabbix в чат Rocket.Chat

В своей статье, - использование Rocket.Chat для создания чата оперативных оповещений, я не описал как именно можно при помощи моей утилиты для работы с Rocket.Chat, отправить Zabbix-оповещение. Я так понимаю, что тема заинтересовала несколько человек и придется немного заострить на этом внимание.

Фотография автора

Автор: Антон Черноусов
Опубликовано: 3 недели, 6 дней (последние правки: 0 минут назад) - 0 комментариев
Категории записи: Linux, RocketChat, Zabbix, Системное администрирование


Я получил несколько вопросов на тему отправки Zabbix-оповещений в чат Rocket.Chat и сейчас я конечно расскажу подробнее как это можно сделать. Прежде всего вам необходимо настроить консольную утилиту для отправки сообщений в чат Rocket.Chat которую я подробно описывал в статье "Использование Rocket.Chat для создания чата оперативных оповещений".

Отправка сообщений из Linux-консоли в чат Rocket.Chat

Отправка сообщений из консоли Linux

Первое, на что стоит обратить внимание, это то, что Zabbix запущен от имени одноименного пользователя и вам необходимо убедиться, что этот пользователь сможет отправлять сообщения. У него должно хватить прав на запуск скрипта и чтение файла конфигурации.

# su zabbix -s /bin/bash
$ echo "Hello from Zabbix" | /opt/rocket-send/rocketsend.py send

Убедившись, что прав доступа хватает, переходим к настройке собственно Zabbix.

Настройка Zabbix для отправки оповещений

Я уже рассказывал про настройку Zabbix для отправки оповещений о сбоях по электронной почте и будем исходить из мнения, что оповещения вы уже настроили согласно предыдущих моих заметок и нам требуется только добавить дополнительный агент отправки сообщений.

Отправка оповещений Zabbix по электронной почте.

Для добавления дополнительного метода отправки сообщений, перейдите в WEB-интерфейс управления Zabbix и перейдите в раздел "Administration -> Media types".

Добавление медиа-типа в Zabbix

Естетсвенно, что все подряд в виде скрипта из Zabbix вызывать не получится и это логично, ведь тогда мы ставим под угрозу безопасность хоста. В конфигурации zabbix-сервера есть специальный раздел который описывает каталог из которого можно запускать скрипты оповещений (AlertScriptsPath).

AlertScriptsPath=/etc/zabbix/alerts/

Zabbix-сервер потребуется перезапустить для применения изменений конфигурации:

# systemctl restart zabbix-server

В этом каталоге мы разместим sh-скрипт который будет принимать данные которые ему передаст Zabbix в виде трех параметров командной строки.

to=$1
subject=$2
body=$3

Пока не очень понятно, поэтому перейдем сразу к практике, для создания нового способа оповещений используйте кнопку "Create media type" и задайте тип оповещения Script.

Настройка медиа-типа для Zabbix

Как вы видите, мы как раз и задали здесь три параметра который будут передаваться нашему скрипту (send-rocket.alert.sh), в моем случае можно не использовать параметр SENDTO, так как имя чата задано в конфигурационном файле Rocket.Send, но на всякий случай на будущее оставим. Согласно документации (https://www.zabbix.com/documentation/3.0/manual/config/notifications/media/script) есть всего три параметра которые мы можем передать:

  • {ALERT.SENDTO} - Адрес указанный в настройках пользователя для конкретного типа медиа (это не адрес электронной почты)
  • {ALERT.SUBJECT} - Тема сообщения
  • {ALERT.MESSAGE} - Само сообщение

Мой скрипт оповещений не может принимать текст отправляемог осообщения в виде параметра и мне пришлось написать скрипт посредник который я и указал в параметре Script name:

#!/bin/sh

to=$1
subject=$2
body=$3

cat <<EOF | rocketsend send
$subject
$body
EOF

Вот собственно и весь фокус и таким способом можно настроить отправку оповещений куда угодно, а не только в Rocket.Chat, но самое главное, обязательно добавьте этот тип медиа в настройки пользователя!

Добавьте новый тип медиа вашему пользователю

P.S. Если у вас, что-то пошло не так, то вы всегда можете повысить уровень отладки приложения и более подробно изучить лог-файл Zabbix-сервера, а отвечает за это параметр:

DebugLevel=4
Пожалуйста, оцените мою статью (всего оценок 0, средняя оценка 4.00):

Комментарии к статье:

Пока комментариев нет

Оставьте комментарий:

обязательно

обязательно (не публикуется)

необязательно

обязательно

обязательно

Последние записи

Архив

2018

Категории

Ленты

RSS / Atom