Inperfo – Минималистичный Мониторинг Сети



Inperfo – минималистичный мониторинг сети

Прежде всего Интерфо предназначен для мониторинга сетевых интерфейсов на коммутаторах и маршрутизаторах.

Конечно, вы можете мониторить сетевые интерфейсы непосредственно на серверах, когда, например, у вас нет доступа к сетевому оборудованию, но есть десятки или сотни арендованных серверов (физических или виртуальных).

Сервис предназначен специально для мониторинга физический Ethernet-интерфейсы.

Что, кстати, позволяет увидеть искажения трафика в Port Channels из-за неправильной настройки или каких-то других проблем.

Если у вас другие задачи и вам необходимо отслеживать другие типы интерфейсов, то обратите внимание на Observium и его собратьев (LibreNMS, NetXMS и т. д.) или SolarWind NPM. Основной целью создания сервиса было желание видеть вершины загрузки интерфейса и ошибок, чтобы все проблемные или потенциально проблемные места были как на ладони.

В zabbix или cacti сделать такой динамический экран, мягко говоря, проблематично.

Кроме того, мне хотелось иметь топ-историю за неделю, а не на текущий момент - за неделю, лучший вариант для многих сетей, когда нагрузка увеличивается после выходных и снижается к концу недели, или наоборот - в пиковые выходные дни, а в будние дни нагрузка ниже.

И вторая, не менее важная цель — минималистичный интерфейс без лишних наворотов, усложнений и хитростей.

Не всем это понравится или понравится, да.



Сервис решает 3 проблемы

  1. Показывает узкие места сети.

    Это может быть восходящий канал коммутатора доступа на уровне распределения, который перегружен в час пик.

    Или перегруженный порт на резервный или memcached-сервер.

    Вы можете отдельно назначить интерфейсы внутренними или внешними аплинками, чтобы видеть их в отдельном топе.

    Все графики основаны на максимумах – недельные, месячные и годовые графики не усредняются.

  2. Показывает ошибки на интерфейсах, для удобства группирует данные по хостам и датацентрам, отображает топ ошибок со всех устройств.

    Ошибок в таблице хостов и интерфейсов - количество за неделю, на графиках - ошибок в секунду.

  3. Контролирует количество свободных и занятых портов на коммутаторах, что помогает своевременно решать задачи расширения сети.

И конечно, автоматически отслеживает изменения — переименование интерфейсов, описаний (ifDescr), изменение статуса интерфейса и так далее.

Единственная ручная работа — добавление новых устройств или серверов в конфиг агента.

Со временем будет добавлена функция автообнаружения, но ее пока нет. Inperfo вам точно не подойдет, если вам нужно: – Мониторинг процессора/памяти – Мониторинг жесткого диска, температуры и других вещей, не связанных с Ethernet. – Умение рисовать карты и сетевые диаграммы.



Системные компоненты

Сервис состоит из двух компонентов: сервера и агента.

Агент собирает snmp-данные об интерфейсах и отправляет их на сервер.

Сервер обрабатывает (сортирует, обновляет rrd-файлы и т.п.

) полученные данные и отображает их через веб-интерфейс.



Как работает сервер

Сервер представляет собой Docker-контейнер со «стандартным» набором ПО: nginx/php-fpm/memcached/mysql/rrdtool. Сервер ожидает, что агенты будут отправлять данные каждые 5 минут. Данные сохраняются в базе данных — еженедельная история ведется по нагрузке интерфейса и ошибкам, из которой рассчитывается 95-й процентиль и топ по max/avg. Это сделано для того, чтобы «видеть» сеть на разных «участках» — без редких всплесков или наоборот, когда нужно смотреть только всплески.

Данные контейнера хранятся в хост-системе для удобного обновления, резервного копирования и передачи с сервера на другие хосты.

Обновиться можно буквально одной командой (идея взята из Docker, см.

ниже).

https://get.docker.com )

Как работает агент

Агент — это также Docker-контейнер, в котором раз в 5 минут запускается агент, собирающий snmp-данные об интерфейсах с сетевых устройств или серверов.

На данный момент интервал обновления (опроса) устройств изменить нельзя.

Клиент поддерживает две версии SNMP – v2 и v3. Конфигурация агента, журналы и отправленные данные хранятся в хост-системе.

Это позволяет легко редактировать конфиги и при необходимости переносить агент на другие хосты.



Случаи использования



Мониторинг сетевого оборудования

В идеале нам нужно установить и настроить по одному агенту для каждого из дата-центров или удаленных офисов, чтобы агент мог локально опрашивать устройства внутри дата-центра по snmp и отправлять собранные данные на центральный сервер, который может находиться в одном из дата-центров или где-нибудь в облако (Amazon, DigitalOcean, Azure и т. д.).

Если у вас один дата-центр или есть «быстрые» каналы связи с другими дата-центрами, то достаточно установить сервер и агент на одну Linux-машину, с которой будут опрашиваться все сетевые устройства.

Или, например, на той же машине, где у вас уже установлены кактусы — вам не нужно будет настраивать snmp-доступ на вашем сетевом оборудовании (если он у вас есть :) Основной «недостаток» этой схемы: необходим snmp-доступ к сетевому оборудованию.



Мониторинг сетевых интерфейсов на серверах

Для мониторинга сетевых интерфейсов на серверах нам необходимо на каждый из них установить демон snmp, например, через Ansible-Playbook .

В этом случае каждый Linux-сервер для агента будет выглядеть как отдельное сетевое устройство с одним или несколькими сетевыми интерфейсами.

Плюсы:

  • Можно обойтись без доступа к сетевому оборудованию
  • Мы довольно легко можем автоматизировать установку и настройку мониторинга.

    Минусы:

  • Нет пропускной способности портов (при необходимости)
  • Вам нужно будет вручную добавить новые серверы в конфигурацию агента.



Смешанный режим

Здесь все понятно, мониторить можно и свитчи/маршрутизаторы, и серверы вместе — агент не различает тип устройства, а информацию об интерфейсах берет из базы MIBv2. Кстати, это еще один минус — если у вас устройство, информация об интерфейсах которого предоставляется из «нестандартных» MIB (например, BTI 7000), то Inperfo на данный момент вам не подойдет.

Производительность

Он хорошо работает на «среднем» оборудовании (16 ЦП/16 ГБ) с количеством устройств до 100 (более 6000 портов); У меня еще не было возможности запустить и понаблюдать за работой на большем количестве.

Но так как агент создает отдельный процесс (форк) для опроса каждого устройства, то голанг с горутинами просто томится и запрашивает этот кусок кода.

Аналогично работает сервер при получении данных.



Что будет добавлено в будущих версиях

– Укажите максимальную скорость для интерфейса.

Это необходимо в ситуациях, когда вы подключены к провайдеру по ссылке на 1ГБ, но платный канал на самом деле меньше, аля ограничен 500МБ.

— Еженедельные отчеты о топах по электронной почте.

– Уведомления по электронной почте.

— Отдельная сборка Docker-контейнера с сервером и агентом.

Это идеальное решение для небольших сетей.

Плюс появится возможность добавлять хосты через веб-интерфейс.

– Топы/графики по пакетам – Поиск по имени устройства, интерфейсу, описанию и псевдониму — Переписать агента и часть сервера на golang. На данный момент сервис не отправляет никаких оповещений или чего-либо еще, а по URI. /экспорт/ вы можете импортировать данные в тот же Zabbix и получать уведомления.

Сервис пока сырой, но проблемы решает. Установить & наслаждаться.

Теги: #*nix #Сетевые технологии #it-инфраструктура #Системное администрирование #сети #мониторинг #snmp-мониторинг #snmp-мониторинг

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.