Прежде всего Интерфо предназначен для мониторинга сетевых интерфейсов на коммутаторах и маршрутизаторах.
Конечно, вы можете мониторить сетевые интерфейсы непосредственно на серверах, когда, например, у вас нет доступа к сетевому оборудованию, но есть десятки или сотни арендованных серверов (физических или виртуальных).
Сервис предназначен специально для мониторинга физический Ethernet-интерфейсы.
Что, кстати, позволяет увидеть искажения трафика в Port Channels из-за неправильной настройки или каких-то других проблем.
Если у вас другие задачи и вам необходимо отслеживать другие типы интерфейсов, то обратите внимание на Observium и его собратьев (LibreNMS, NetXMS и т. д.) или SolarWind NPM. Основной целью создания сервиса было желание видеть вершины загрузки интерфейса и ошибок, чтобы все проблемные или потенциально проблемные места были как на ладони.
В zabbix или cacti сделать такой динамический экран, мягко говоря, проблематично.
Кроме того, мне хотелось иметь топ-историю за неделю, а не на текущий момент - за неделю, лучший вариант для многих сетей, когда нагрузка увеличивается после выходных и снижается к концу недели, или наоборот - в пиковые выходные дни, а в будние дни нагрузка ниже.
И вторая, не менее важная цель — минималистичный интерфейс без лишних наворотов, усложнений и хитростей.
Не всем это понравится или понравится, да.
Сервис решает 3 проблемы
- Показывает узкие места сети.
Это может быть восходящий канал коммутатора доступа на уровне распределения, который перегружен в час пик.
Или перегруженный порт на резервный или memcached-сервер.
Вы можете отдельно назначить интерфейсы внутренними или внешними аплинками, чтобы видеть их в отдельном топе.
Все графики основаны на максимумах – недельные, месячные и годовые графики не усредняются.
- Показывает ошибки на интерфейсах, для удобства группирует данные по хостам и датацентрам, отображает топ ошибок со всех устройств.
Ошибок в таблице хостов и интерфейсов - количество за неделю, на графиках - ошибок в секунду.
- Контролирует количество свободных и занятых портов на коммутаторах, что помогает своевременно решать задачи расширения сети.
Единственная ручная работа — добавление новых устройств или серверов в конфиг агента.
Со временем будет добавлена функция автообнаружения, но ее пока нет. Inperfo вам точно не подойдет, если вам нужно: – Мониторинг процессора/памяти – Мониторинг жесткого диска, температуры и других вещей, не связанных с Ethernet. – Умение рисовать карты и сетевые диаграммы.
Системные компоненты
Сервис состоит из двух компонентов: сервера и агента.Агент собирает snmp-данные об интерфейсах и отправляет их на сервер.
Сервер обрабатывает (сортирует, обновляет rrd-файлы и т.п.
) полученные данные и отображает их через веб-интерфейс.
Как работает сервер
Сервер представляет собой Docker-контейнер со «стандартным» набором ПО: nginx/php-fpm/memcached/mysql/rrdtool. Сервер ожидает, что агенты будут отправлять данные каждые 5 минут. Данные сохраняются в базе данных — еженедельная история ведется по нагрузке интерфейса и ошибкам, из которой рассчитывается 95-й процентиль и топ по max/avg. Это сделано для того, чтобы «видеть» сеть на разных «участках» — без редких всплесков или наоборот, когда нужно смотреть только всплески.Данные контейнера хранятся в хост-системе для удобного обновления, резервного копирования и передачи с сервера на другие хосты.
Обновиться можно буквально одной командой (идея взята из Docker, см.
ниже).
Как работает агент
Агент — это также 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-мониторинг
-
Не Воруйте Мою Информацию
19 Oct, 24 -
Два Способа Улучшить Коэффициент Конверсии
19 Oct, 24 -
Речевой Акт
19 Oct, 24 -
О Простой Конструкции Недорогих Wifi-Мостов
19 Oct, 24 -
Total Commander 7.5 Pb7 И…
19 Oct, 24 -
Как Именно Освободить Интернет
19 Oct, 24