SMS оповещения из The Dude

Posted by map[name:devi1 uri:https://www.blogger.com/profile/05777499482649623616] on Tuesday, April 7, 2015

Какой смысл в мониторинге ключевых устройств, если об их некорректной работе будет знать только сама система мониторинга? Именно поэтому система мониторинга должна оповещать админа о некорректной работе. Я работаю Mikrotik’ами, поэтому использую фирменную систему мониторинга The Dude. И сейчас мы научим её слать почту и смс.По умолчанию The Dude умеет отправлять email, но для этого ей нужен SMTP сервер без авторизации. Что нам поднимать конечно же не имеет смысла. В общем, разработчики поленились сделать кошерно.Пытливые умы же научились отправлять почту сторонним приложением.Качаем SMTP-клиент mailsendКладем его, допустим, сюда C:\Program Files (x86)\Dude\mailsend\mailsend.exe (не забудьте переименовать экзешник)Создаём файлик mailsend.cmd следующего содержания:  :: Send email notifications from Dude via Gmail:: set mailsenderdir=C:\Program Files (x86)\Dude\mailsendset mailsender=mailsend.exeset smtpsender=username@gmail.comset smtpsenderfullname=usernameset smtpserver=smtp.gmail.comset smtpport=465set smtpuser=username@gmail.comset smtppwd=passwordset mailto=username@gmail.com::::"%mailsenderdir%%mailsender%" -smtp %smtpserver% -port %smtpport% -ssl -auth -user %smtpuser% -pass %smtppwd% -t %mailto% -f %smtpsender% -name “%smtpsenderfullname%” +cc +bc -q -sub %1 -M %2::::pause::Эти параметры меняем на свои: smtpsender - ящик, с которого будут отправляться письма, smtpsenderfullname - имя пользователя этого ящика, smtpuser - опять ящик, smtppwd - пароль к нему, mailto - ящик админа (на который будем слать алерты)4. Создаем новое уведомление в The Dude:Имя: mailТип: execute on serverКоманда: “C:\Program Files (x86)\Dude\mailsend\mailsend.cmd” “Service [Probe.Name] on [Device.Name] is now [Service.Status]” “Service [Probe.Name] on [Device.Name] is now [Service.Status] ([Service.ProblemDescription])"После нажатия кнопки Test письмо должно упасть на почту.С почтой разобрались. Теперь нужно научить Дудку отправлять СМС. Саму мониторилку мы больше мучать не будем - СМС умеет отправлять гуглопочта.Итак, что нужно для начала: у вас должен быть привязан телефонный номер к Google Calendar, как это сделать написано вот тут — Регистрация мобильного телефона:support.google.com/calendar/bin/answer.py?hl=ru&hlrm=en&answer=45351Создайте новый ярлык в Gmail с именем, например, SMSnotify (или любым другим, по вашему усмотрению). Как это сделать написано вот тут – Использование ярлыков:support.google.com/mail/bin/answer.py?hl=ru&hlrm=ru&answer=118708#0Создайте фильтр, который будет применять ярлык SMSnotify к письмам от системы мониторинга ( From: username@gmail.com). Как это сделать, написано вот тут – Использование фильтров:support.google.com/mail/bin/answer.py?hl=ru&hlrm=ru&answer=6579#0Войдите в Google Drive и создайте новую электронную таблицу (Spreadsheet). Откройте созданную таблицу и в верхнем меню выберите Tools > Script Editor.Нужно создать доп. календарь и настроить SMS уведомления: установить по-умолчанию для всех новых встреч вот так:Настройки->Календари->Уведомления->По умолчанию->SMS->%% минВ этом примере имя календаря будет “email"Вставляем следующий код:function my_notification() { var calendar = CalendarApp.getOwnedCalendarsByName(‘email’)[0]; //открываем календарь с именем “email” var threads = GmailApp.getUserLabelByName(‘SMSnotify’).getThreads(); //переменная, в которой хранится коллекция цепочек с ярлыком SMSnotify var now = new Date(); if(threads == 0) return; // прекращение выполнения, если новых цепочек нет for(i in threads) // создаем события { calendar.createEvent(threads[i].getFirstMessageSubject(), new Date(now.getTime()+60000), new Date(now.getTime()+60000)); } GmailApp.getUserLabelByName(‘SMSnotify’).removeFromThreads(threads); //снимаем метки “SMSnotify” с цепочек}6.  После того, как вы ввели код, нужно создать триггер по которому и будет запускаться скрипт. Для этого кликаем на меню “Ресурсы”, а в нем на “Триггеры текущего скрипта”. 7.  Нам нужен time-driven триггер с частотой повторения одна минута.Этот скрипт будет проверять входящие от с ярлыком SMSnotify (от юзера username@gmail.com). И, в случае наличия новых писем создавать событие в календаре и снимать ярлык с уже обработанного письма. СМС будет слать сам календарь.Статья написана методом копипаста! Навеяно этим: отправка email уведомлений, отправка СМС из гуглопочты


comments powered by Disqus