пятница, 30 мая 2014 г.

Настройка СМС уведомления о падении сервера (или другого "умного" устройства)

     Для чего это нужно?
     Для примера, есть у нас установленных несколько камер IP, которые могут "умереть" тихо, смирно и даже не пикнув. А так как в них никто все время не смотрит, они пишут в архив и просматриваются только если что-то случится, последствия могут быть очень болезненные.
     Возникла необходимость получать на мобильный телефон СМС уведомления когда то или иное устройство пропадет из локальной сети.

     Вся работа делиться на 2 этапа. 1) Настройка ПО на сервере 2) Настройка учетной записи



     Часть 1
     Программой которая будет устройство опрашивать постоянно в моем случае выступает программа Friendly Pinger (http://www.kilievich.com/rus/fpinger/index.htm) распространяется бесплатно.
     Программа проста, она представляет собой кату на которую наносятся устройства, с присвоенными им IP адресами, программа опрашивает устройства, и в случае его доступности (есть пинг) или не доступности (нет пинга), меняет изображение.



        Нас интересует функция программы - реакция (оповещение) на отсутствие или появление пинга. Для этого нужно нажать правой кнопкой на устройство и выбрать "оповещение".

Далее определяем действия программы. Нас интересует функция отправить письмо. Сразу оговорюсь, что письмо должно отправляться на почту GOOGLE или же административными средствами туда перенаправляться.


     Финальное окно настройки, убеждаемся что наше устройство настроено на оповещение и активно (рядом с ним стоит галочка). 
     При этом необходимо также настроить параметры сервера отправки почты. 

     Например: у меня письма приходят на ящик pinger@mail.ru откуда пересылаются на почту pinger@gmail.com. Настройки для ящика mail.ru:  адрес SMTP - smtp.mail.ru  отправитель: pinger@mail.ru   имя пользователя: pinger  пароль: пароль.
     Все, на этом настройка программы завершена. Нужно только убедиться, что при отключении устройства, письмо-оповещение приходит на указанный вами почтовый ящик.

     Часть 2: Настройка почты
     Для начала, опишу логику, как это все работает.  Письмо-оповещение которое приходит на электронную почту, должно быть специальным фильтром расценено как событие календаря, помещено в календарь и при наступлении события в календаре - вы получите соответствующее СМС уведомление.
     Сложно, не спорю. Давайте по порядку. 
     Для начала перейдем в электронную почту google и создадим новый ярлык. Нажимаем внизу "еще" и "создать ярлык".

Далее вводим имя ярлыка - произвольное, на ваш вкус.
Далее переходим в настройки электронной почты - раздел "фильтры".
Необходимо создать два новых фильтра:
1) Первый фильтр - для определенных писем будет применять ярлык "pinger" который мы создали.


 2) Второй фильтр призван определять что данные письма никогда не будут отфильтрованы в спам. А значит, обязательно будут обработаны.


Далее, идем на диск Google и создадим таблицу Excel.


Назвать таблицу можете как угодно, я свою назвал "pinger".  далее идем в меню Инструменты - редактор сценариев (или редактор скриптов, почему то встречаются оба названия и оба правильные). И создаем новый пустой проект.


Название проекту можете дать произвольное. Важно в него вставить вот этот код:

function my_notification()
{
  var calendar = CalendarApp.getOwnedCalendarsByName('pinger')[0]; //открываем календарь с именем "pinger"

  var threads = GmailApp.getUserLabelByName('pinger').getThreads();  //переменная, в которой хранится коллекция цепочек с ярлыком pinger
  var now = new Date();
  if(threads == 0) return; // прекращение выполнения, если новых цепочек нет

  for(i in threads) // создаем события
  {
    calendar.createEvent(threads[i].getFirstMessageSubject(),
        new Date(now.getTime()+350000),
        new Date(now.getTime()+350000));
  }
 
  GmailApp.getUserLabelByName('pinger').removeFromThreads(threads); //снимаем метки "server" с цепочек
}

Там, где выделено красным, вы должны поменять на СВОЕ значение ярлыка. Т.е. если вы задали имя ярлыка 222, то в 3-х местах нужно pinger заменить на 222 и сохранить проект. (При сохранении может быть необходимо еще раз пройти авторизацию логином и паролем учетной записи google).
Далее в этом же окне нажимаем на иконку создания тригера и настраиваем тригер на обновление каждую минуту.


Все, сохраняем и переходим в календарь google. Здесь заходим в Настройки - Настройка для мобильных устройств. После того как вы введете свой номер телефона и подтвердите его кодом, сохраните настройки.


Далее, нужно настроить типы и время уведомлений.
Заходим в Настройки календаря - Календари -  Напоминания и оповещения напротив вашего календаря.
Тут нужно сделать две вещи: поставить галочки напротив СМС, и добавить новое оповещение по типу СМС, за 5 минут до события (именно так, ибо эти параметры закладываются в скрипт).


Все. Настройка СМС оповещения закончена. Можно перейти к тестированию и убедиться что сообщения приходят в течении нескольких минут к вам на телефон.

Надеюсь, статья была вам полезна. Если возникли сложности - прошу комментировать.