У меня есть несколько серверов nagios, которые в настоящее время предупреждают меня по SMS и электронной почте, но я хотел бы добавить к ним исходящие вызовы. Идеальным решением было бы, чтобы машины nagios вызывали мой мобильный телефон и воспроизводили mp3 / wav во время разговора, чтобы сообщить мне, что что-то не так. Моя единственная проблема в том, что я не знаю, как это сделать.
Я подозреваю, что для этого мне, возможно, придется купить карту PBX, но я надеялся, что кто-то здесь сделал что-то подобное с обычным модемом и стандартным программным обеспечением. Есть идеи или подсказки?
Asterisk избыточен, но будет работать без проблем. Сэкономьте время, купите модем с поддержкой голоса и используйте vgetty.
Вот руководство, которое показывает 11-строчный Perl-скрипт для воспроизведения сообщения при исходящем вызове:
Вам следует изучить Asterisk, АТС с открытым исходным кодом.
Возможно, вы захотите взглянуть на готовые дистрибутивы, а не начинать с нуля, поскольку Asterisk достаточно настраиваемый и может пугать новичка на низком уровне (во многом как Apache httpd).
Для отправки описанных вами предупреждений я бы предложил использовать конфигурацию файла спула. Создайте диалплан, который при вызове набирает соответствующий номер и воспроизводит нужный файл. Как только это сработает, вы можете перетащить файлы в каталог Asterisk, что вызовет вызов этой части вашего диалплана. Вы можете передавать параметры и тому подобное в файлах спула, так что вам не придется создавать каждое сообщение с нуля - вы можете заставить его читать сервер буква за буквой или использовать интеграцию с несколькими движками TTS, чтобы попытаться сказать название сервера.
Вам понадобится завершение исходящих вызовов, чтобы получить вызов в PSTN, но существует множество поставщиков таких услуг. Большинство предлагает цены, при которых вы платите небольшую постоянную плату за счет, а затем низкую (порядка центов за минуту) исходящие звонки.
Надеюсь, это поможет.
Если вы все еще ищете решение, возможно, вам стоит взглянуть на PagerDuty. PagerDuty будет собирать оповещения от любой системы мониторинга, которая может отправлять электронные письма (включая Nagios), а также совершать телефонные звонки и SMS-сообщения в список людей, которых вы указываете. Это также позволяет вам строить графики дежурства и цепочки эскалации.
[Отказ от ответственности: я один из тех, кто работает над PagerDuty, поэтому могу быть немного предвзятым: P]
Посмотри на нагаст. Это позвонит вам в случае возникновения проблем и сообщит о подтверждении nagios. Кроме того, он создаст вызов, если nagiosbox не пингует (не icmp, а nagast-ping) в течение определенного времени. https://github.com/tuxis-ie/nagast
Я не уверен насчет набора номера, но я считаю, что вы могли бы использовать festival, чтобы сделать часть текста для синтеза голоса.
возможно, клиент командной строки sip, как описано Вот было бы полезно? это очень сильно зависит от того, что вы отслеживаете, насколько надежным будет ваш провайдер sip и так далее. Тем не менее, я больше доверяю аппаратному шлюзу для смс. при условии, что вы не контролируете инфраструктуру доступа в Интернет или ваш сервер nagios имеет отдельное независимое подключение к Интернету - это действительно может сработать.
Если вам удобно самому написать небольшой плагин, Twilio предлагает мощный и чрезвычайно простой в реализации API для совершения звонков с преобразованием текста в речь, пользовательским вводом, записью голоса и т. д.
Есть такие сервисы как email2phone который преобразует сообщения электронной почты в телефонные звонки. Как правило, их легко настроить, и они не потребуют изменений в вашей настройке Nagios, кроме добавления нового адреса электронной почты. Вы несколько ограничены в том, что можете делать, но для быстрого решения это может сработать для вас. Если вы хотите большей гибкости и у вас есть навыки разработки, Twilio также будет хорошим вариантом.
Обе эти функции, а также локальные параметры на основе sip, будут иметь проблемы, если вы полностью потеряете соединение. Чтобы справиться с этим, вам нужно будет либо иметь отдельное соединение для уведомления (например, линию PSTN), либо использовать Nagios вместе со сторонней службой мониторинга, чтобы предупредить вас о полной потере подключения.