Налаштування СМС-повідомлень із Zabbix
Після встановлення та початкового налаштування Zabbix щодо стеження за потрібними процесами є можливість також налаштувати його щодо оперативного повідомлення адмінів і зацікавлених осіб через СМС про аварійні ситуації.
Для цього необхідно для початку перевірити на zabbix-сервері на шляху /etc/zabbix/zabbix_server.conf — чи розкоментовано рядок із викликом зовнішніх алерт скриптів
- AlertScriptsPath=/usr/lib/zabbix/alertscripts
директорію можна вказувати будь-яку, головне, щоб був доступ користувача zabbix and www-data
У директорію /usr/lib/zabbix/alertscripts додаємо два файли, smsclub.sh (перехоплення даних від zabbix’а та передача другому скрипту), sms_send.php (php-скрипт надсилання повідомлень через gate.smsclub.mobi). Ці скрипти можна буде добути наприкінці статті.
Далі потрібно доналаштувати zabbix для правильної роботи СМС-інформування. Йдемо у веб-інтерфейс zabbix-сервера, у меню “Адміністрування” -> “Способи сповіщень” і натискаємо на кнопку “Створити спосіб сповіщення”. У запропонованій формі необхідно заповнити поля таким чином:
- Ім’я: обзиваємо як хочемо, у нашому випадку smsclub.
- Тип: вибираємо “скрипт”.
- Ім’я скрипта: smsclub.sh (ім’я має збігатися з ім’ям самого скрипта).
- Параметри Скрипта (тільки для версії 3. У всій лінійці версії 2 цих параметрів немає): потрібно додати три параметри:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
(кожен з нового рядка)
5. І для завершення наших маніпуляція натискаємо кнопку “Додати”.
Має вийти щось таке:
Після цього йдемо у веб-інтерфейсі zabbix-сервера, у меню “Адміністрування” -> “Користувачі”. Тут ми будемо налаштовувати користувача для повідомлень. Додамо користувача (наприклад) smsclub.
Після додавання користувача — необхідно перейти на закладку “Сповіщення” для налаштування типу сповіщень. Тут можна додавати різного роду сповіщення, нас цікавить додавання способу smsclub.
Натискаємо “Додати” і вибираємо:
- Тип — smsclub.
- Відправляти на: номер телефону.
- Коли активний: мається на увазі в який час можна відправляти смс (1-7 дні тижня, 00:00-24:00 час).
- Використовувати, якщо важливість: налаштування, за яких тригерів буде виконуватися скрипт надсилання смс.
Для завершення налаштування необхідно натиснути “Додати”.
Тепер механізм СМС сповіщень будитиме Вас у будь-який час доби і, можливо, засмучуватиме, якщо щось “відвалилося”.
Опис скриптів:
- Скрипт smsclub.sh (SenderID у цьому файлі — це альфаім’я (відправник), який має бути узгоджений із www.smsclub.mobi)
#!/bin/bash
to=$1
subject=SenderID
body=$3
/usr/bin/php /usr/lib/zabbix/alertscripts/sms_send.php –to=”$to” –body=”$body” –subj=”$subject”
ВАЖЛИВО: скрипт smsclub.sh — повинен бути виконуваний chmod +x /usr/lib/zabbix/alertscripts/smsclub.sh
- Скрипт sms_send.php (на сервері має стояти php і curl)
<?php
/**
* Цей приклад демонструє, як надсилати окремі sms через JSON API
*
* @url smsclub.mobi
* @author SMS CLUB
*/
$arg1 = $argv[1];
$arg2 = $argv[2];
$token = ‘My Token’;
$url = ‘https://im.smsclub.mobi/sms/send’;
$data = json_encode([
‘phone’ => [‘Phonenumber’],
‘message’ => $arg1. ” “. $arg2,
‘src_addr’ => ‘Shop Zakaz’ // Ваше альфа-ім’я
]);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POSTFIELDS => $data,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
‘Authorization: Bearer ‘ . $token,
‘Content-Type: application/json’
]
]);
$result = curl_exec($ch);
echo $result;
curl_close($ch);
Коли спрацьовує Zabbix— він виконує скрипт таким чином:
sms_send.php {ALERT.SUBJECT} {ALERT.MESSAGE}
Тобто у нас є два аргументи.
Ці два аргументи потрібно передати для відправки повідомлення в поле:
‘message’ => $arg1. ” “. $arg2,
Якщо буде 3 аргументи, то потрібно цей рядок редагувати.
Якщо зірки Вам благоволять сьогодні, то все вийде з першого разу. Або Ви можете звернутися до служби підтримки проєкту smsclub.mobi, і Вам допоможуть відновити паритет між проблемою і рішенням.
PS: Звісно, для повноцінної роботи СМС-сповіщень необхідно мати робочий акаунт на сайті smsclub.mobi.