Главная Мониторинг Настройка SMS уведомлений в zabbix
Настройка SMS уведомлений в zabbix

Zabbix создан для мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования с целью оперативного оповещения сотрудников о том, что в их системах произошли какие то изменения средствами Email, Jabber и SMS уведомлений. В этой статье речь пойдет об SMS уведомлениях. Настроить отправку можно тремя способами:

  1. Отправвка на эл. ящик оператора мобильной связи, который потом перешлет это сообщение вв виде SMS аботненту. способ самій просто в настройке, но самы не интересны, потому что отправка писем зависит от доступа сети Интренет, а так же пересылка Email по SMS - не является гарантированной услугой, и на этом этапе часто бывают задержки и сбои.
  2. Отправка SMS через любое GSM устройство, которое у вас получится настроить на отправку СМСок, с сервера с помощью скриптов, в моем случае это был телефон Sony Ericsson W580. При этом пишеться скрипт, помещается в AlertScriptPath, в который передаются получатель, тема и сообщение. Преимущества этого способа перед первым и третьим в том, что для этих нужд можно использовать самые разноообразные устройства (типа старого сименса) которые у вас уже могут иметься в наличии, и независимостить от доступности Интернета. Недостаток - стабильность, неизвесно как эти разнообразные устройства поведут себя при перезагрузке сервера, пропадании питания, заолнения памяти телефона. такое поведение может стать причиной отказа в обслуживании, и постоянного непокойства.
  3. Отправка SMS через стандартные средства заббикса, с помощью GSM модема, который поддерживает AT команды. В документации сказано что заббикс тестировался на совместимость с двумя терминалами Siemens MC35 и Teltonika ModemCOM/G10. Первый из них я уже договорился взять на тест. Преимущества все те, которые я описал выше, и отсутствие недостатков (пока что, если замечу - допишу).

2. СМС с помощью телефона

Сначала, настроим отправку SMS с моего Sony Ericsson W580 Первым делом подготовим ядро для работы с USB устройствами, модемами, и датакабеолем, для этого его надо пересобрать с опциями:

device          umodem    # USB modem support
device ucom # USB tty support
device uplcom # USB support for Prolific PL-2303 serial adapters driver
cd /usr/src
make buildkernel KERNCONF=MYKERNEL
make installkernel KERNCONF=MYKERNEL

После этого подключаем Sony Ericsson, выбираем подключение в режиме телефон,и после этого в /dev/* должны появиться устроства:

[09:57][root@jails /usr/home/chip]$ ls -lah /dev/cua*
crw-rw---- 1 uucp dialer 0, 135 Jun 2 09:57 /dev/cuaU0
crw-rw---- 1 uucp dialer 0, 136 Jun 2 09:42 /dev/cuaU0.init
crw-rw---- 1 uucp dialer 0, 137 Jun 2 09:42 /dev/cuaU0.lock
crw-rw---- 1 uucp dialer 0, 141 Jun 2 09:42 /dev/cuaU1
crw-rw---- 1 uucp dialer 0, 142 Jun 2 09:42 /dev/cuaU1.init
crw-rw---- 1 uucp dialer 0, 143 Jun 2 09:42 /dev/cuaU1.lock

после этого надо установить тулзу, которая будет работать с телефоном, и слать эти самые СМС.

cd /usr/ports/comms/smstools3/
make install
cat /usr/local/etc/smsd.conf

Devices = GSM1
logfile = /var/log/smsd.log
loglevel = 7
pidfile = /var/run/smsd/smsd.pid
infofile = /var/run/smsd/smsd.working

[GSM1]
device = /dev/cuaU0
incoming = yes
#pin = 0000

после чего можно и запустить ее

/usr/local/etc/rc.d/smsd start

а так же для отправки сообщений в файлике /usr/local/share/smstools/sendsms делаем:

#smsd_user="smsd"
smsd_user="uucp"

без этого смски не будут отправляться и в лог будет писаться что то типа:

2011-06-02 10:06:46,3, smsd: Cannot handle /var/spool/sms/outgoing/send_3boecl: 
Access denied. Check the file and directory permissions.
И проверяем путем отправки тестовой SMS:
sendsms 380671234567 'ho ho ho :)'

Если СМСка дошла, значит мы все сделали правильно и пора приниматься на за написание скрипта, который будет выполнять заббикс для отправи смски. В Заббиксе такие скрипты лежат в директории, определенной в переменной AlertScriptsPath.

 [chip@zabbix /]$ cat /usr/local/etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
AlertScriptsPath=/home/zabbix/bin/

Сам скрипт состоит из одной строки:

# cat /home/zabbix/bin/sms-via-script
#!/usr/local/bin/bash
text="$3"
sudo -u uucp /usr/local/bin/sendsms $1 "$text"

$1 и $text - получатель и текст сообщения соответсвенно.

Дальше вся настройка в вебинтерфейсе. Сначала идем в Администрирование -> Способы оповещений и создаем новый способ оповещений. Название скрипта должно быть таким же, как и имя файла скрипта в директории AlertScriptsPath

Добавление способа оповещения

Дальше в настройках пользователя (Администрирование -> Пользователи) добавляем Способ оповещений

Добавление нового способа оповещения для пользователя

После этого в настройках действий появится возможность использовать этот способ оповещений.

Использование скрипта в настройках тригера

О том что скрипт выполняется, или СМСки куда то идут можно посмотреть в логе сервера или в разделе Администрирование -> Уведомления.

 tail -f /var/log/zabbix/zabbix_server.log
...
Text: load external link is less than 90%: OK
15:12:07 2011.06.07
To: 38067ххххххх
...

В данный момент жду GSM шлюз, для того что бы прикрутить его на этот сервер. как приедет, продолжу писать статью. если у вас есть чем поделиться или что то добаваить в єту статью, буду всегда рад вниманию.

Добавление от 26.10.2011

В хоте эксплуатации данной схемы нашел такие проблемы:

  • Время от времени телефон может терять связь с сервером, выключаться, либо зависать smsd. Решение - время от проверять работоспособность связки телефон - сервер - smsd, у меня это реализовано через крон, каждый понедельник утром приходит СМС о том, что с телефоном и сервером все ОК.
    45      8       *       *       1       root    /usr/local/bin/sendsms 380674454065 'dobroe utro hoziain!'
  • Еще один глюк, не ожидал что такое может быть, если скрипт вызвать от рута, либо от пользователя zabbix, с командной строки то СМС доходят. если заставить забикс отправить СМС, то скрипт выполняется но СМС не уходят, и в логах smsd - ничего. Глюк исправил перезапуском забикс сервера.

Добавление от 22.12.2012

Выставить скорость модема, который подключен по RS232:

stty -f /dev/ttyU0 speed 9600

Посмотреть что получилось:

[root@zabbix /usr/home/chip]# stty -e | grep speed
speed 9600 baud; 63 rows; 237 columns;
 

Комментарии 

 
0 #5 mmetlicocbulk1983 01.04.2019 16:15
А есть похожий аналог? Информацию взял к себе на проект https://jet-s.ru Накрутка лайков в Facebook
Цитировать
 
 
0 #4 Lev 23.04.2013 09:21
У истории есть продолжение с описанием прикручивания gsm шлюза?
Цитировать
 
 
0 #3 omer 13.10.2011 15:53
Цитирую admin:
Цитирую omer:
как сделать, что бы файл в /var/spool/sms/outgoing создавался овнером uucp:dialer, при котором смс уходят?
У меня создается овнером zabbix:dialer и смс не уходят.
За это отвечает sudo -u uucp в строке скрипта, я правильно понял? Тогда как сделать, чтобы скрипт работал? sudo -u uucp не хочет работать

а так же для отправки сообщений в файлике /usr/local/share/smstools/sendsms делаем:
#smsd_user="smsd"
smsd_user="uucp"

не подходит?

Это у меня есть. Вобщем я разобрался - сам ступил, у меня sudo не было установлено :)
За статью большое спс! Вот и пригодился мой старый и уже пыльный Сони-Эрикссон :)
Цитировать
 
 
0 #2 admin 11.10.2011 21:34
Цитирую omer:
как сделать, что бы файл в /var/spool/sms/outgoing создавался овнером uucp:dialer, при котором смс уходят?
У меня создается овнером zabbix:dialer и смс не уходят.
За это отвечает sudo -u uucp в строке скрипта, я правильно понял? Тогда как сделать, чтобы скрипт работал? sudo -u uucp не хочет работать

а так же для отправки сообщений в файлике /usr/local/share/smstools/sendsms делаем:
#smsd_user="smsd"
smsd_user="uucp"

не подходит?
Цитировать
 
 
0 #1 omer 06.10.2011 12:51
как сделать, что бы файл в /var/spool/sms/outgoing создавался овнером uucp:dialer, при котором смс уходят?
У меня создается овнером zabbix:dialer и смс не уходят.
За это отвечает sudo -u uucp в строке скрипта, я правильно понял? Тогда как сделать, чтобы скрипт работал? sudo -u uucp не хочет работать
Цитировать