У нас на предприятии, основным способом оповещения о событиях системы мониторинга Zabbix является email-рассылка. Jabber не прижился ввиду малой распространенности, а СМС устарел (хоть и весьма универсален). Хотелось предложить ещё одну альтернативу, которой и стали push-уведомления.
Сервис
Pushbullet уже успел сделать себе имя на платформе
Android, а с недавних пор пытается покорить и
iOS. Pushbullet умеет слать «пуши» на телефоны, принимать их в браузере (
Chrome и
Firefox) и из него же снова отправлять. В общем очень удобный и полезный сервис, который
плюс ко всему имеет открытый
API. Посредством этого API мы и будем отправлять события Zabbix на телефоны сотрудников.
Шаг 1: Узнайте свой Pushbullet API
Предполагается, что у вас уже есть аккаунт на данном сервисе. В этом случае просто перейдите в
настройки своего профиля.
Шаг 2: Создаём bash-скрипт
Вариант 1: Отправляем сообщения на все устройства
Создайте bash-скрипт для отправки push-уведомлений
на все устройства. Назовите его
pushbullet-all
#!/bin/bash
API_KEY="$1"
SUBJECT="$2"
MESSAGE="$3"
curl https://api.pushbullet.com/v2/pushes \
-u $1: \
-d type=note \
-d title="$SUBJECT" \
-d body="$MESSAGE" \
-X POST
Где
$N
— переменные.
$1
— уникальный API (позже указывается в профиле пользователей Zabbix),
$2
— будет заголовком,
$3
— станет телом сообщения. Подробнее
в справке Zabbix.
Скрипт нужно скопировать в папку alertscripts
вашего Zabbix-сервера (например: /usr/local/share/zabbix/alertscripts
). Не забудьте сделать скрипт исполняемым (chmod +x pushbullet-all
).
Вариант 2: Отправляем сообщения на конкретные устройства
Чуть позже, в комментариях, начали предлагать разные версии скриптов для отправки сообщений
на конкретные устройства. В принципе, можно использовать данный способ как вместо, так и совместно с тем, что указан выше. Я решил добавить вариативности и использовать скрипты совместно. Назовите новый скрипт
pushbullet-dev
:
#!/bin/bash
API_KEY="${1%%_*}"
DEV_ID="${1#*_}"
SUBJECT="$2"
MESSAGE="$3"
curl https://api.pushbullet.com/v2/pushes \
-u $API_KEY: \
-d device_iden=$DEV_ID \
-d type=note \
-d title="$SUBJECT" \
-d body="$MESSAGE" \
-X POST
Скрипт нужно скопировать в папку alertscripts
вашего Zabbix-сервера (например: /usr/local/share/zabbix/alertscripts
). Не забудьте сделать скрипт исполняемым (chmod +x pushbullet-all
).
Теперь, в поле «Отправить на» мы указываем не только API, но и идентификатор устройства. Узнать их перечень можно следующим способом:
curl -u <your api key here>: https://api.pushbullet.com/api/devices
Поле «Отправить на» у нас будет выглядеть так (разделитель "
_
"):
api_dev
Где
api
— Ваш API-ключ (
api_key
), а
dev
— Ваш идентификатор устройства (
dev_iden
).
Ниже будут скриншоты для 1 варианта, со вторым просто имейте ввиду, что имя скрипта — pushbullet-dev
, а в поле «Отправить на» нужно указать как API
так и ID
.
Шаг 3: Настройка Zabbix
Создайте новый способ оповещения (Администрирование — Способы оповещений)
Создайте новое действие, на вкладке «Операции» определите новый тип уведомлений
В настройках профиля пользователя укажите Ваш API Key
Соответственно, каждый ответственный сотрудник указывает в своём профиле личный API и начинает получать уведомления.
Шаг 4: Наслаждайтесь
UPD_02.08.2014: Обновил статью. Добавил скрипт для отправки на конкретные устройства и с использованием API v2 от Pushbullet.