По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Друг, не так давно мы рассказывали про Asterisk REST Interface. Это новый API для Asterisk. Сегодня хотим рассказать о том, как реализовать просто мониторинг SIP – устройств с помощью ARI и отправкой событий в Telegram. Включаем ARI Откроем FreePBX и перейдем в раздел Settings → → Advanced Settings и находим раздел Asterisk REST Interface: Убедитесь, что парамеры Display Readonly Settings и Override Readonly Settings установлены в положение Yes. Указываем следующие параметры: Enable the Asterisk REST Interface - Yes; ARI Username - заполняем имя нашего пользователя; Allowed Origins - *; ARI Password - пароль для пользователя; Pretty Print JSON Responses - Yes; Web Socket Write Timeout - 100; Запоминаем логин и пароль и идем вперед. Сделать Telegram бота Далее, вам нужно создать Telegram – бота. Для этого, перейдите по ссылке ниже. Вернитесь сюда с токеном и идентификатором чата :) Создание бота PHP - скрипт Делаем скрипт, который будет реализовывать мониторинг пиров. Вот его листинг: <?php #ваш токен и идентификатор чата в Telegram $token = "токен"; $chat_id = "id_чата"; #параметры подключения к REST API Asterisk $json_url = 'http://localhost:8088/ari/endpoints/SIP'; $username = 'ARI_Username'; // логин $password = 'ARI_Password'; // пароль #обращаемся за данными в REST $ch = curl_init($json_url); $options = array( CURLOPT_RETURNTRANSFER => true, CURLOPT_USERPWD => $username . ":" . $password, CURLOPT_HTTPHEADER => array('Content-type: application/json') , ); curl_setopt_array( $ch, $options ); $result = curl_exec($ch); //получаем JSON результат $result = json_decode($result, true); #формируем массив, который будем отправлять в Telegram $telegram = array( 0 => array ( 'Проблемы с SIP устройствами.' => 'Список:', )); $num = 1; //print_r($result); foreach($result as $number => $massiv) { foreach($massiv as $key => $value) { #определяем элементы, которые не находятся в статусе online if (($key == 'state') && ($value != 'online')) { $telegram[$num] = array( 'Устройство '.$massiv['resource'].'' => 'в статусе '.$massiv['state'].'', ); $num = $num + 1; } else { }}}; #отправляем данные в Telegram в случае, если найдены устройства в статусе, отличном от online if ($num > 1) { foreach($telegram as $key => $value) { foreach($value as $dev => $status) { $txt .= "<b>".$dev."</b> ".$status."%0A"; }}; fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");}; Скачать скрипт В случае скачивания, поменяйте расширение файла с .txt на .php Закидываем скрипт в любую удобную директорию (файл сохраните как ari_monitoring.php), например /home/scripts и планируем его выполнение в cron: crontab –e И добавляем мониторинг раз в 2 минуты: */2 * * * * /usr/bin/php /home/scripts/ari_monitoring.php Проверка В результате, если устройство станет доступно, мы получим следующее уведомление:
img
Где и зачем? На сегодняшний день логирование информации в процессе разработки имеет огромное значение. Сохранение информации в лог-файлы это первоочередная задача для выявления неполадок и слабых мест в работе приложения. Однако, если приложение работает на основе многих сложных процессов здесь не обойтись без эффективного инструмента навигации и анализа по логам. В одной из предыдущих статей мы разбирали такое решение, как ELK Elasticsearch, Logstash, Kibana. В таком сочетании эти программы способны оперативно решать задачи по сбору, хранению, выборке и анализу информации даже в крупных проектах. Это и является их основным назначением. Однако, эти программы также можно использовать по отдельности, поскольку они являются самостоятельными программными продуктами. Как же можно использовать эти приложения в разных сочетаниях, и для чего это нужно? Приступим к разбору. Самым востребованным инструментом из этой тройки является Elasticsearch. Оно и понятно поисковая система, действующая на основе горизонтального масштабирования (то есть, с возможностью искать данные по запросу пользователя параллельно на множестве серверов) стала очень популярным решением для осуществления поиска не только в логах, но и во множестве данных. При этом данные не обязательно могут быть структурированы, и пользователь с высокой вероятностью получит четкие результаты по запрашиваемому фрагменту текста. При этом широкую популярность данному приложению обеспечивают также широкие возможности по интегрированию с другими программами, множество вариантов конфигурирования, а также подключаемые плагины, работа над которыми ведется как специалистами компании Elastic, так и "народными умельцами" Альтернативным вариантом использования Elasticsearch является вариант с созданием на основе этого приложения централизованных хранилищ данных, содержащих логи использования с разных устройств. Конечно, в этом случае потребуется визуализация, поэтому наилучшее взаимодействие с Elasticsearch обеспечивает Kibana. Данная связка является наиболее популярной и эффективной, поскольку обе программы разрабатывались специально с прицелом на взаимодействие. Несомненным плюсом ELK является модульная архитектура. Комбинируя различные модули, можно сконфигурировать систему для выполнения разнородных задач. Так, например, модуль Metricbeat, включенный в систему позволяет оптимально сконфигурировать систему для мониторинга инфраструктуры,решение Heartbeat позволяет осуществлять uptime-мониторинг. Направления Elastic SIEM и Elastic API также существенно расширяют функциональность ELK Помимо непосредственно разработчиков, комплекс ELK Stack также могут использовать и тестировщики. Конечно, если приложение занимает небольшой объем, то установка ELK вряд ли будет рациональным решением, но, если это будет серьезная объемная программа, тогда тестер сможет быстро выявить проблему и не тратить время разработчика на поиск и анализ. Такая схема работы достаточно популярна и эффективна в некоторых компаниях, разрабатывающих программное обеспечение. Также доступ к логам программы могут затребовать управленцы - менеджер, курирующий проект, или же представители заказчика. В данном случае анализ логов позволяет выявить, эффективно ли ведется работа над исправлением выявленных ранее неисправностей, и не появилось ли новых багов в процессе исправления старых. В последнее время развивается использование комплекса ELK в бизнес-процессах для обеспечения эффективного сбора информации, оперативного анализа и принятия решений. Как пример, можно привести огромный супермаркет со множеством касс. Как правило, для наличного расчета на начало рабочего дня в кассе должна быть определенная сумма наличных для выдачи сдачи. Так вот, комплекс ELK применяется для сбора данных о проведенных по кассе операциях, выборки из собранных данных информации об остатках наличных в разных кассах, и анализа информации, после которого специалист, работающий с программой, может принять решение, какая сумма наличных нужна для обеспечения нужд кассиров по выдаче сдачи. Непрерывный сбор и анализ информации позволяет оценить пики и спады, сравнить информацию с аналогичными показателями за вчерашний день, прошедшие неделю или месяц. По этой причине решение ELK приобретает все большую популярность как инструмент биржевой аналитики. Хотя на текущий момент есть инструменты и получше, однако динамика развития данного решения позволяет думать, что оно вряд ли перестанет быть актуальным и для подобных задач.
img
Протокол Syslog - это способ для сетевых устройств отправлять сообщения о событиях на сервер регистрации - обычно известный как Syslog сервер. Этот протокол поддерживается широким спектром устройств и может использоваться для регистрации различных типов событий. Например, маршрутизатор может отправлять сообщения о том, что пользователи подключаются через консоль, а веб-сервер может регистрировать события, в которых отказано в доступе. Большинство сетевых устройств, таких как маршрутизаторы и коммутаторы, могут отправлять сообщения системного журнала. Кроме того, серверы *nix также могут генерировать данные системного журнала, как и большинство брандмауэров, некоторые принтеры и даже веб-серверы, такие как Apache. Серверы на базе Windows изначально не поддерживают Syslog, но большое количество сторонних инструментов позволяет легко собирать данные журнала событий Windows или IIS и пересылать их на сервер Syslog. В отличие от SNMP, Syslog не может использоваться для «опроса» устройств для сбора информации. Например, SNMP имеет сложную иерархическую структуру, которая позволяет станции управления запрашивать у устройства информацию о таких вещах, как данные о температуре или доступное дисковое пространство. Это невозможно с Syslog - он просто отправляет сообщения в центральное место, когда инициируются определенные события. Syslog серверы Syslog - отличный способ объединить логи из нескольких источников в одном месте. Как правило, большинство серверов Syslog имеют несколько компонентов, которые делают это возможным. Syslog слушатель: Syslog сервер должен получать сообщения, отправленные по сети. Процесс прослушивания собирает данные системного журнала, отправленные через 514 UDP порт. Как мы знаем UDP-сообщения не подтверждаются или не гарантируются, поэтому имейте в виду, что некоторые сетевые устройства будут отправлять данные Syslog через 1468 TCP порт для обеспечения доставки сообщений. База данных: большие сети могут генерировать огромное количество данных syslog’а . Хорошие серверы будут использовать базу данных для хранения логов для быстрого поиска. Программное обеспечение для управления и фильтрации: из-за больших объемов данных иногда бывает сложно найти конкретные записи в журнале. Решение состоит в том, чтобы использовать syslog сервер, который автоматизирует часть работы и позволяет легко фильтровать и просматривать важные сообщения журнала. Серверы должны иметь возможность генерировать оповещения, уведомления и алерты в ответ на выбранные сообщения, чтобы администраторы сразу узнавали, когда возникла проблема, и могли предпринять быстрые действия Syslog сообщения Сообщения системного журнала обычно содержат информацию, помогающую определить основную информацию о том, где, когда и почему был отправлен лог: IP-адрес, отметка времени и фактическое сообщение. Системный журнал использует концепцию, называемое “facility”, чтобы идентифицировать источник сообщения на любом компьютере. Например, facility “0” будет сообщением ядра, а facility «11» будет сообщением FTP. Это восходит своими корнями к syslog'а UNIX. В большинстве сетевых устройств Cisco используются коды объектов «Local6» или «Local7». Syslog сообщения также имеют поле уровня серьезности. Уровень серьезности указывает, насколько важным считается сообщение. Серьезность «0» является чрезвычайной ситуацией, «1» - это предупреждение, которое требует немедленных действий, а шкала продолжается вплоть до «6» и «7» - информационных и отладочных сообщений. 0 Emergency Система не работоспособна 1 Alert Система требует немедленного вмешательства 2 Critical Состояние системы критическое 3 Error Сообщения об ошибках 4 Warning Предупреждения о возможных проблемах 5 Notice Сообщения о нормальных, но важных событиях 6 Informational Информационные сообщения 7 Debug Отладочные сообщения Недостатки syslog У протокола syslog есть несколько недостатков. Во-первых, проблема согласованности. Протокол Syslog не определяет стандартный способ форматирования содержимого сообщения - и существует столько же способов форматирования сообщения, сколько существует разработчиков. Некоторые сообщения могут быть удобочитаемыми, а некоторые нет. Syslog это не волнует - он просто предоставляет способ передачи сообщения. Есть также некоторые проблемы, которые возникают из-за того, что syslog использует UDP в качестве транспорта - поэтому возможно потерять сообщения из-за перегрузки сети или потери пакетов. Наконец, есть некоторые проблемы безопасности. В сообщениях syslog’а нет аутентификации, поэтому один компьютер может выдать себя за другой компьютер и отправить ложные события журнала. Он также подвержен повторным атакам. Несмотря на это, многие администраторы считают, что syslog является ценным инструментом, и что его недостатки относительно незначительны.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59