Ноя 082012
 

На Хабрахабре есть отличная статья по теме, но у меня немного другая ситуация. В моём случае Zabbix работает под CentOS 6.2, а модем, архаичный Siemens TC35iT с последовательным портом, на другом хосте под управлением Solaris 10, обслуживая ещё одну систему мониторинга. Задача - настроить отправку длинных (более 160 символов) SMS-сообщений с linux-машины через этот модем, не переставляя его.

Для начала мне пришлось установить на Solaris-машину приложение gnokii. Предназначено оно для всестороннего управления телефонами Nokia, но вполне поддерживает мой Siemens TC35iT в части, касающейся отправки SMS-сообщений. Версия gnokii, которую удалось скомпилировать, 0.6.24. Ставится по старинке, пакета найти не удалось:

cd gnokii-0.6.24
./configure --disable-libusb --disable-shared --disable-smsd
gmake

Команду make install выполнять не обязательно, т.к. нам будет нужен только один небольшой бинарник из всего, что получится в результате сборки, и его мне было удобнее положить в домашний каталог простого пользователя. Положим его, например, в /export/home/cube/gnokii:

mkdir /export/home/cube/gnokii
cp gnokii/gnokii /export/home/cube/gnokii
 
# Это файл конфигурации. О нём речь будет ниже.
vi /export/home/cube/gnokii/gnokiirc

Вот содержимое моего файла конфигурации для gnokii:

[global]
port = /dev/term/a
model = AT
initlength = default
connection = serial
serial_baudrate = 19200
smsc_timeout = 10
 
[logging]
debug = on
rlpdebug = off
xdebug = off

Следующий шаг - настроим беспарольный ssh-доступ с хоста, где работает Zabbix, на хост, к которому присоединён наш модем. Материалов в Сети масса, поэтому подробно останавливаться на этом не буду. Кратко: на целевой машине (куда будем подключаться), используем ssh-keygen, а сгенерированный ключ кладём на исходной машине в .ssh/authorized_keys. Если всё же надо подробнее, отметьтесь в комментариях, я опишу, как это сделать. Наша цель - добиться того, чтобы команда

ssh cube@solaris-box

подключала нас без лишних вопросов.

Теперь осталось создать скрипт для Zabbix, который будет ходить по ssh на Solaris-машину и отправлять SMS. Я назвал его sms_notify.sh:

#!/bin/bash
 
to=$1
subject=$2
body=$3
 
ssh cube@solaris-box "echo \"${subject} $body\" |gnokii/gnokii --config gnokii/gnokiirc --sendsms ${to} --long 800"
 
sleep 10

Параметр --long устанавливает максимальную длину сообщения. Для меня 800 символов достаточно, даже с большим запасом.

Не забываем дать пользователю права на выполнение этого скрипта:

chmod u+x sms_notify.sh

Дальнейшая настройка уведомлений в Zabbix сложностей никаких не представляет и делается в точности как в статье, поэтому во избежание дублирования данных в Интернете и излишнего увеличения энтропии Вселенной, инструкций тут не привожу.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

(обязательно)

(обязательно)