Как стать автором
Обновить

Оповещения Zabbix через sms используя GSM модем. Простая настройка

Время на прочтение3 мин
Количество просмотров40K


Zabbix сервер — это хорошо. Правильно настроенный, он мониторит серваки и необходимые мне узлы. В случае проблем на них он с радостью уведомляет меня по электронной почте. Не так давно выяснилось, что оба наших любимых провайдера (основной и резервный интернет каналы) решили не обеспечивать ИБП свое сетевое оборудование в здании. Поэтому когда вырубают электричество (а бывает такое!) Zabbix бы и рад разбудить веселым письмом, а никак! В общем, решил заморочиться уведомлением по sms. Именно через GSM модем чтобы не было зависимости от интернета.

Поискав по интернету варианты отправки sms Zabbix-ом, нашел варианты решения, но они показались мне длинными. Поэтому сделал по своему «на коленке». Постараюсь подробно описать не сложное рабочее решение и «грабли».

Итак, что у меня было:

  1. Zabbix 2.4 на OC Debian 7 — мониторит несколько серваков, к одному из них подключен через USB кабель APC smart ups 3000. Мониторинг состояния UPS настроен по этой статье.
  2. GSM модем Huawei e1550 (Мегафон) который валялся дома со времен отсутствия проводного интернета. Как показала практика — вставив в уже настроенную систему другой модем Huawei все так же работает, не требуя перенастройки!

Для отправки из терминала sms я использовал gnokii.

Поехали:

# apt-get install gnokii

Вставляем GSM модем в сервак и проверяем:

# lsusb

Среди прочего видим что-то типа:

Bus 001 Device 009: ID 12d1:14ac Huawei Technologies Co., Ltd.


Проверяем определился ли как модем:

# ls /dev/ttyUSB*

Если пусто (а меня было пусто):

# apt-get install usb-modeswitch

Вытаскиваем и заново вставляем модем.

Проверяем определился ли:

# ls /dev/ttyUSB*

Видим что-то типа:

/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2


Осталось чуть-чуть до первой отправки sms!

Создаем конфиг gnokii. Я положил его в /home

# nano /home/user/sms.conf

Текст конфига
[global]
port = /dev/ttyUSB0
model = AT
initlength = default
connection = serial
use_locking = no
serial_baudrate = 115200


Сохраняем и тестируем:

# echo "text" | gnokii --config /home/user/sms.conf --sendsms +7ХХХХХХХХХХ

(+7ХХХХХХХХХХ — тут, конечно, номер, на который надо отправить)

Должна прийти sms без проблем. Обо всем этом есть много инструкций на просторах интернета и до этого момента проблем у меня не возникло.

Дальше важно!

Заббикс в системе работает от пользователя zabbix. Разрешаем ему использовать модем.

# nano /etc/group

dialout:x:20:zabbix


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

GNOKII Version 0.6.30
Gnokii serial_open: open: Permission denied
Couldn't open ATBUS device: Permission denied
Telephone interface init failed: Command failed.
Quitting.
Command failed.


Еще при отправке встречал ошибку:

Cannot open logfile ./gnokii-errors
WARNING: cannot open logfile, logs will be directed to stderr


Это значит не нашлось файла по пути:

~/.cache/gnokii/gnokii-errors


Изменяем разрешения для пользователя использовать sudo без пароля:

# nano /etc/sudoers

zabbix  ALL=(ALL) NOPASSWD: /usr/bin/gnokii


Дальше логинимся под пользователем zabbix и пишем очень простой скрипт.

 nano /home/user/smsscript


Текст скрипта
#!/bin/sh
zabbixesmsto=$1
zabbixsubject=$2
echo "$zabbixsubject" | /usr/bin/sudo /usr/bin/gnokii --config /home/user/sms.conf --sendsms "$zabbixesmsto"



Сохраняем. Именно /usr/bin/sudo и /usr/bin/gnokii — для меня это оказалось важно!

Не забываем от рута сделать:

# chmod +x /home/user/smsscript

Проверяем работу скрипта:

/home/user/smsscript +7XXXXXXXXXX test

Если пришла sms — все практически готово! Осталось прикрутить к Zabbix-у. Если не пришла, то проверяем, все ли сделали так как написано выше.

Я создавал скрипт для заббикса в /home/user/ потому что в конфиге zabbix_server.conf написно: AlertScriptsPath=/home/user/

Если у вас не так, то либо меняем расположение скрипта, либо изменяем в конфиге путь на /home/user/ — не забыть рестаратнуть zabbix server!

В интерфейсе заббикса идем в Администрирование — Способы оповещений.

Создать способ оповещения.

image

Затем настраиваем оповещение для вашего пользователя в заббиксе. Администрирование — Пользователи.

image

И Настройка — Действия.

image

Действие я сделал отдельное, чтобы sms приходили не по каждому поводу, а только при срабатывании определеных триггеров. Так как при отпавке в sms пишется только тема, то в само сообщение нет смысла что-то писать. А в условие добавил:

image

Вот и все! Дернул из разетки ИПБ и через несколько минут получил гневное sms от заббикса! Теперь он меня везде достанет, зараза!

P.S.: Так как электричество отключают не часто, то и расходов на sms совсем мало.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 26: ↑18 и ↓8+10
Комментарии18

Публикации

Истории

Работа

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань