Отправка сообщений из Zabbix в VK Teams

Оцените статью

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

Как оказалось ничего сложного в этом нет и отделался небольшим скриптом на Python хотя есть и несколько нюансов о которых стоит рассказать.

Создание канала в VK Teams и Teams-бота для отправки сообщений.

Создание канала в VK Teams

Для создания канала нажмите на значок редактирования в панели чаты.

Создание канала в VK Teems

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

Создать канал

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

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

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

Настройки канала

Настраиваем видимость и возможность присоединения к каналу.

zabbix@srv-lxc-prod-rain-03:/root

Я отключил видимость и вступление по запросу. Обратите внимание, что при смене видимости ссылка на канал изменится.

Создание бота в VK Teams

Добавьте пользователя @metabot и отправьте ему сообщение /start

Добавляем metabot

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

Создать нового бота VK Teems

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

Никнэйм нового бота

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

Токен бота VK Teems

Разрешаем добавлять бота в каналы командой.

/setjoingroups Bot-ID enable
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

Шаблоны Zabbix

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

Клонирование шаблона Zabbix

Меняем тип на скрипт, задаем имя нашего python скрипта и два параметра:

  • {ALERT.SUBJECT}
  • {ALERT.MESSAGE}
Шаблон VK Teams для Zabbix

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

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

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

Типы медиа для пользователя

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

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

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

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

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

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

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования