Пишем SMS из Zabbix

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

По умолчанию Zabbix предлагает отправку SMS через GSM-модем, подключенный к zabbix-серверу, в моем случае такого нет, однако есть масса служб, которые предлагают отправку смс за деньги. Я остановился на сервисе turbosms.com.ua, вроде как самый недорогой, плюс имеет очевидный плюс — позволяет отправлять SMS простыми SQL-запросами к их MySQL-базе.

Будем считать, что сам заббикс у нас стоит (про его установку я как-нибудь напишу многабукаф, не в авральном режиме). Заходим в Administration — Media Types и жмем кнопку Create Media Type. Указываем любое удобное нам имя, тип Script и название скрипта. Сам скрипт при этом должен лежать в каталоге, определенном параметром AlertScriptsPath в /usr/local/etc/zabbix/zabbix_server.conf.

Скрипт в итоге получился такой (на perl):

#!/usr/bin/perl

use strict;
use POSIX;
use DBI;

my [email protected][0];
my [email protected][1];
my [email protected][2];

my $driver = "mysql";
my $user = "Mylogin";
my $password = "Mypassword";
my $database = "users";
my $dsn = "DBI:$driver:host=77.120.116.10:3306;database=$database";
my $dbh = DBI->connect($dsn, $user, $password);

my $sql = $dbh->prepare("INSERT INTO Mylogin (number, sign, message) VALUES ('$phone', 'MyISP', '$msg')");
$sql->execute;

Сделано по-быстрому, но работает.

Вам также может понравиться

Об авторе jared

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

  1. А как мы передаем номер телефона с Zabbix-a? Добавил номер в настройках user, сделал Media Type, емейлы приходят а СМС нет. Скрипт запускал на сервере вручную (так работает).
    Спасибо

  2. Если же в Configuration->Actions->Operations в Operation Type вместо Send Message выбрать Remote Command и Сustom script, и вставить /usr/share/zabbix/alertscripts/send_sms.pl, то скрипт выполняется.

  3. К сожалению не работает.

    Может у автора есть свежий скрипт для работы с турбосмс?

  4. Прошу прощения, ступил. Пока нет альфаимени — сообщения остаются в базе, но не отправляются.
    Так что, если надумаете использовать турбосмс — регистрируйте сразу имя «подпись»

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

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