Кроссплатформенная утилита мониторинга SNMP-трафика без зависимостей и наличия GUI

в 16:00, , рубрики: администрирование, С++, системное администрирование

Здравствуй!

В процессе своей работы (администрирование активного оборудования) столкнулся с необходимостью оперативного получения онлайн-данных (желательно с графиком) входящего/исходящего трафика на сетевом интерфейсе по SNMP.

При этом всегда попадается такое оборудование, которое либо не заведено в систему мониторинга, либо требует просмотра статистики чаще, чем раз в минуту (как rrdtool).
А в арсенале, зачастую, лишь консоль сервера на Windows или Debian.

Вот тогда и появилась идея сделать небольшую утилитку обладающую следующими возможностями:

— кроссплатформенность;
— без зависимостей (статическая линковка библиотек);
— построение графиков в онлайн-режиме;
— построение графиков в консоли (псевдографика — спасибо, curses);
— шаблоны для специальных OID (пока один для ifInOctets и ifOutOctets);
— возможность прорисовки нескольких кастомных графиков.

Пока альфа-версия бинарников. Разместил здесь на Sourceforge.
Проверено на Windows 7/8/10 32-bit и 64-bit. Debian и Ubuntu.
Кушает данные SNMP — COUNTER, INTEGER, GAUGE.

Примеры запуска утилиты.

Список интерфейсов с OID.

wtraf 10.1.16.2 -l

image

Теперь знаем OID интерфейса (наш №3) и запускаем.

wtraf 10.1.16.2 -i 3

Результат на Windows 8 в небольшом консольном окне:

image

Результат на Ubuntu 18.04 LTS на весь экран:

image

Запускаем с интервалом сбора данных (раз в 5 сек.) и ограничиваем пропускную способность до 50 МБит/сек.

wtraf 10.1.16.2 -i 3 -n 5 -m 50

Результат в PuTTY (прим. — для удобства восприятия график исходящего трафика течет слева, входящего — справа):

image

А теперь самое сочное. Пример кастомных графиков.

wtraf.exe 10.1.16.2 -xc -a .1.3.6.1.2.1.2.2.1.10.2:LAN:rl:x,8,*,1000,/,1000,/:Mbit/s -a .1.3.6.1.2.1.2.2.1.10.3:Internet:bl:x,8,*,1000,/,1000,/:Mbit/s:80 -a .1.3.6.1.2.1.2.2.1.10.4:LAN_to_GUS:gl:x,8,*,1000,/,1000,/:Mbit/s

image

В свою очередь хочу довести до ума утилитку, может порадует админов.

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

Автор: shprnu

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js