Когда в Google Календаре появилась возможность получать бесплатные SMS уведомления, думаю все разработчики подумали о том, что это можно прикрутить к своим скриптам. Многие так и не нашли времени и сил этим заняться, поэтому предоставляю PHP скрипт для бесплатной отправки SMS себе, а для пущей пользы прикручу его к системе мониторинга Zabbix. Надеюсь после этих слов все системные администраторы подумали о том, как будет здорово получать SMS когда из сети выпадает сервер, кто-то наступает на сетевой провод, перезагружается роутер или повышается температура в серверной.
Версия для Zabbix
Эта версия предназначена для SMS уведомления при появлении события посредством срабатывания триггера. Zabbix позволяет настраивать фильтрацию по степени важности (например, не будет отправлять информационные события).
1.Настройка аккаунта Google
- Заходим Календарь > Настройки > Настройка для мобильных устройств.
- Указываем свой номер телефона, подтверждаем, получив тестовую SMS.
2. Установка и настройка скрипта
- Подключаемся к серверу Zabbix через SSH или WinSCP.
- Определяем местонахождение папки alertscripts из возможных вариантов:
- /usr/local/share/zabbix/alertscripts
- /etc/zabbix/alertscripts
- /home/zabbix/bin/
- Распаковываем http://mamaev.pro/zabbix/fsms_zabbix.zip [~ 6 Мб] в папку alertscripts.
- На все содержимое, рекомендую поставить группу и овнера «zabbix» и права 0755.
- В файле zabbix_fsms.php указываем:
- часовое пояс
- место(не обязательно)
- номер телефона
- логин и пароль от Gmail.com
Обращаем внимание, что для каждого получателя необходимо создать собственный case с параметрами.
- Для проверки можно консольно выполнить скрипт:
/usr/local/share/zabbix/alertscripts/zabbix_fsms 795112345678 Console Test Ok
Где 795112345678 — ваш номер телефона, а /usr/local/share/zabbix/alertscripts/ — найденный на втором шаге путь до alertscripts. В результате должно прийти SMS.
3. Настройка Zabbix
- В Zabbix заходим Administration > Media types > Create media type.
- Указываем
жмём Save. - Заходим Profile > Media > Add.
- Указываем Type: FSMS; SendTo: ваш номер мобильного; When active и Use if severity по вкусу.
- Настройка завершена! Для проверки можно
выключить пару маршрутизаторовсоздать триггер, который сработает через минуту, например "{имя_хоста:agent.ping.nodata(1m)}=0".
Версия для Веб-разработчиков
Отличие от Zabbix версии: используется как обычный скрипт, а не консольный, код причесан для разработчиков. http://mamaev.pro/zabbix/fsms_webdev.zip [5.8 Мб]
Скрипт разработан с использованием Zend Framework.
Внимание, это моя первая статья, с удовольствием принимаю все замечания.
Автор: Flaxing
Добрый день!
Решил воспользоваться вашим методом, но к сожалению в Линуксе ещё не силён. Остановился на шаге Установка и настройка скрипта. Не могу найти файл alertscripts. По поиску выдаёт следующее:
find / -name alert*
/var/www/icons/alert.red.gif
/var/www/icons/alert.red.png
/var/www/icons/alert.black.png
/var/www/icons/alert.black.gif
/home/ebs/mysql/zabbix/alerts.frm
/home/ebs/install/zabbix-1.8.11/src/zabbix_server/alerter
/home/ebs/install/zabbix-1.8.11/src/zabbix_server/alerter/alerter.c
/home/ebs/install/zabbix-1.8.11/src/zabbix_server/alerter/alerter.h
Подскажите пожалуйста куда надо распаковывать скрипты.
Спасибо
Добрый день!
Ваш скрипт почему то не работает, пишет следующее
./zabbix_fsms.php 998909498429
: No such file or directory?php
./zabbix_fsms.php: line 2: //: is a directory
./zabbix_fsms.php: line 3: syntax error near unexpected token `”PATH_SEPARATOR”‘
‘/zabbix_fsms.php: line 3: `if (!defined(“PATH_SEPARATOR”))
Спасибо
Нужно запускать скрипт ./zabbix_fsms 998909498429, без php раширения