Так получилось, что этих самых мессенджеров развелась уже целая куча и только ленивый не написал свой и в текущем моем проекте в качестве корп-мессенджера используется VK Teams. Встроенного плагина для него в составе Zabbix естественно нет и пришлось писать свою обертку.
Как оказалось ничего сложного в этом нет и отделался небольшим скриптом на Python хотя есть и несколько нюансов о которых стоит рассказать.
Создание канала в VK Teams и Teams-бота для отправки сообщений.
Создание канала в VK Teams
Для создания канала нажмите на значок редактирования в панели чаты.

Выберите пункт создать канал.

Указываем название канала и значок.

Переходим в раздел настройки канала.

Настраиваем видимость и возможность присоединения к каналу.
zabbix@srv-lxc-prod-rain-03:/root
Я отключил видимость и вступление по запросу. Обратите внимание, что при смене видимости ссылка на канал изменится.
Создание бота в VK Teams
Добавьте пользователя @metabot и отправьте ему сообщение /start

Выбираем создать нового бота

Задаем ник-нэйм нашего бота (оканчивается на bot)

Сохраняем токен бота и никому его не говорим (это параметры авторизации).

Разрешаем добавлять бота в каналы командой.
/setjoingroups Bot-ID enable

Добавляем бота в созданный канал и делаем его администратором.

Python-скрипт для отправки сообщений в канал VK Teams от имени бота
Во первых, нам потребуется установить библиотеку для работы с API VK Teams. Устанавливать будем ее в окружение пользователя Zabbix.
# apt install python3-pip
# mkdir /var/lib/zabbix
# chown zabbix:zabbix /var/lib/zabbix
# su zabbix -s /bin/bash
$ pip install --upgrade mailru-im-bot
Создаем тестовый скрипт отправки сообщений
#!/usr/bin/python3
from bot.bot import Bot
TOKEN = "xxxTOKENxxx"
bot = Bot(token=TOKEN)
chat_to_send_notifications = "AoLJyMosD7CDZCOVsU8"
text_to_send = "Hello from python!"
bot.send_text(chat_id=chat_to_send_notifications, text=text_to_send)
Соотетственно TOKEN и chat_to_send_notifications это токен и идентификатор чата из предыдущего этапа. Если отправка сообщения прошла успешно, то создаем скрипт для отправки сообщений из Zabbix.
Обратите внимание, что идентификатор чата и токен у меня зашит в код и по хорошему так делать не надо, но мне лень и этот Zabbix-сервер используется только одной командой и если проект будет расширяться, я обязательно доработаю.
Скрипт в файле /usr/lib/zabbix/alertscripts/vk_teams.py.
#!/usr/bin/python3
import sys
from bot.bot import Bot
# Получаем аргументы от Zabbix
subject = sys.argv[1] # Тема оповещения
message = sys.argv[2] # Текст оповещения
TOKEN = "xxxTokenxxx"
chat_to_send_notifications = "AoLJyMosD7CDZCOVsU8"
bot = Bot(token=TOKEN)
text_to_send = f"<p><b>{subject}</b></p><p>{message}</p>"
bot.send_text(chat_id=chat_to_send_notifications, text=f"*_{subject}_*\n---------------------\n{message}", parse_mode="MarkdownV2")
Сделаем файл исполняемым.
# chmod +x /usr/lib/zabbix/alertscripts/vk_teams.py
Отправка тестового сообщения в чат Teams от имени пользователя zabbix.
# su zabbix -s /bin/bash
$ /usr/lib/zabbix/alertscripts/vk_teams.py 1 2
Настройка Zabbix для отправки сообщений при помощи python-скрипта
Переходим в раздел Alerts -> Media types

Берем за основу например шаблон Email и клонируем его.

Меняем тип на скрипт, задаем имя нашего python скрипта и два параметра:
- {ALERT.SUBJECT}
- {ALERT.MESSAGE}

Активируем Media type и выполняем тестирование.

Переходим в раздел пользователи и задаем пользователю Media Type

Активируем Trigger action.

Вот собственно и все. Можем получать сообщения в VK Teams.




