Для мониторинга серверов я использую cacti [1] с плагином thold [2]. Плагин замечательный, позволяет отслеживать как доступность всего сервера, так и выход какого-либо параметра за заданные пределы. При наступлении события отсылается e-mail сообщение. Но хочется получать не только e-mail, но и sms сообщения. Есть несколько способов это сделать:
- e-mail2sms шлюз, предоставляемый оператором сотовой связи. Способ не очень надежный и не у всех операторов есть данный сервис.
- Использовать железный телефон, прикрученный к серверу мониторинга. Самый надежный и сложный способ.
- Научить thold отсылать сообщения через смс сервис.
Я выбрал третий способ. Причин тому несколько. Во-первых, сервер мониторинга “далеко” и нет физической возможности подключить аппаратный телефон. Во-вторых, одно из направлений моего бизнеса — смс сервис. Поэтому интересно расширить сервис и для работы с cacti. Сразу скажу, что такой способ не подойдет тем, кому нужна 100% работоспособность. Понятно, что если у сервера мониторинга пропадет выход в Интернет, то никаких сообщений вы не получите. Но для тех кого устроит и 99% метод хороший. Итак, приступим.
Для начала у нас должен быть установлен и настроен сам cacti и модуль thold. Настройка cacti не тема данной статьи, поэтому считаем, что все настроено и работает. Заходим в настройки cacti Console->Settings-> Thresholds и ставим галочку Send Alerts as Text, нам HTML код в сообщениях не нужен.
Далее у вас должен быть рабочий аккаунт на смс сервисе vesms.ru [3]. Если нет, регистрируемся. После скачиваем PHP класс [4] для работы с сервисом. Распаковываем и кладем файл VESMS.class.php в папку с модулем thold, обычно это/usr/local/share/cacti/plugins/thold.
Для начала у нас должен быть установлен и настроен сам cacti и модуль thold. Настройка cacti не тема данной статьи, поэтому считаем, что все настроено и работает. Заходим в настройки cacti Console->Settings-> Thresholds и ставим галочку Send Alerts as Text, нам HTML код в сообщениях не нужен.
Далее у вас должен быть рабочий аккаунт на смс сервисе vesms.ru [3]. Если нет, регистрируемся. После скачиваем PHP класс [4] для работы с сервисом. Распаковываем и кладем файл VESMS.class.php в папку с модулем thold, обычно это/usr/local/share/cacti/plugins/thold.
Далее правим код файла /usr/local/share/cacti/plugins/thold /thold_functions.php. Ищем строку function thold_mail($to, $from, $subject, $message, $filename, $headers = '') {
Нам надо добавить в код этой функции работу с смс. Изначально код выглядит так
Нам надо добавить в код этой функции работу с смс. Изначально код выглядит так
...
function thold_mail($to, $from, $subject, $message, $filename, $headers = '') {
global $config;
thold_debug('Preparing to send email');
include_once($config['base_path'] . '/plugins/settings/include/mailer.php');
include_once($config['base_path'] . '/plugins/thold/setup.php');
$subject = trim($subject);
$message = str_replace('<SUBJECT>', $subject, $message);
...
Меняем на
...
function thold_mail($to, $from, $subject, $message, $filename, $headers = '') {
global $config;
thold_debug('Preparing to send email');
include_once($config['base_path'] . '/plugins/settings/include/mailer.php');
include_once($config['base_path'] . '/plugins/thold/setup.php');
require_once($config['base_path'] . '/plugins/thold/VESMS.class.php');
$subject = trim($subject);
$message = str_replace('<SUBJECT>', $subject, $message);
$user = 'USERNAME'; //API логин или логин пользователя в сервисе (по умолчанию адрес электронной почты)
$key = 'APIKEY'; //API ключ, доступен по ссылке http://client.vesms.ru/settings/api
$sms = new VESMS($user, $key);
$recipients='NUMBER'; //номер на который отправляем сообщения
$sender='cacti'; // имя отправителя, должно предварительно пройти модерацию, без модерации доступно только имя отправителя в виде номера пользователя используемого аккаунта
$sms->messageSend($recipients, $subject, $sender);
...
На этом все. В такой конфигурации все e-mail сообщения будут дублироваться смс. В смс приходит только тема e-mail без самого тела письма. Этого более чем достаточно, вся необходимая информация там содержится.
В идеале конечно хочется отдельного модуля для смс с более гибкими параметрами настройки. Может и до такого дойдут руки. Но и в текущем варианте все отлично работает и позволяет быстро реагировать на нештатные ситуации.
В идеале конечно хочется отдельного модуля для смс с более гибкими параметрами настройки. Может и до такого дойдут руки. Но и в текущем варианте все отлично работает и позволяет быстро реагировать на нештатные ситуации.
Источник: здесь
Комментариев нет:
Отправить комментарий