Бесплатная система мониторинга - The Dude (Часть 5)

В этой статье рассмотрю возможность увеличение информативности отображения устройства. Т.е. Я хочу вывести отображение информации по устройству, не в таком количестве как у нас в настоящий момент, это CPU, RAM, Virtual RAM, Disk и все это в процентном соотношении, а в более развернутом виде. Я хочу добавить информацию о количестве процессоров на устройстве, и конечно же загрузке этих процессоров, общее время работы данного устройства в днях и часах, IP-адрес устройства, и конечно же полную и развернутую информацию о жестких дисках (это общий объем HDD, занятое пространство, и сколько свободно) и все вывести в мегабайтах, так как это более понятней будет нежели писать в процентах. Конечно можно зайти в настройки устройства и перейти во вкладку snmp -> раздел Хранилище и там посмотреть всю инфу, но представьте что у вас 5-6 серверов и надо на каждом все это щелкать и смотреть, если это можно вывести прямо на устройство и видеть на карте.

Device Information

Теперь вы поняли что я хочу увидеть, и какую информацию. Я знаю как это делать, и теперь мне надо изложить в статье. Это не трудно.

Для начала немного лирики и отступления. У каждого устройства по протоколу snmp собирается информация, и при получении данных, например жестких дисков, каждому жесткому диску присваевается так называемые "Индекс" по базе OID из mib'ов. Но все прекрасно понимают что на разных устройствах может быть разное количество и жестких дисков и оперативной памяти, т.е. конфигурация оборудования может очень сильно отличается. А также може стоять разная операционная система. Соответственно присвоение как раз этих индексов зависит от оборудования и его количества, и эти индексы могут быть разными для всех устройств. Поэтому нам необходимо узнать индекс жестких дисков и оперативной памяти данного устройства. Это узнать очень просто, и эту информацию нужно для начала выписать себе на бумажечку. 

Щелкаем 2 раза ЛКМ (левая кнопка мыши) на выбранном устройстве и идем: вкладка "SNMP" -> Хранилище -> выбираем жесткий диск и 2 раза ЛКМ и записываем данные с поля "Индекс" ну и поле "Описание". Также мы узнаем индекс и других жестких дисков. Для определения "Индекса" RAM, щелкаем на пункте "Physical Memory" и записываем индекс RAM.

ID

Теперь данные для настройки собраны, можно начать добавлять информативность.

Щелкаем 1 раз (ПКМ - правой кнопкой мыши) на устройстве с которого сняли данные по индексам, и выбираем пункт меню "Вид"

Metka

После чего щелкаем 1 раз ЛКМ на поле "Метка" и удаляем все что там автоматически прописалось. Далее пишем свои данные.

Например:

============= General Info ============

Имя устройтсва: [Device.Name]

[device_performance()][Device.ServicesDown]

Статус: [Device.Status]

System Uptime: [oid("1.3.6.1.2.1.1.3.0","5","300","192.168.55.50","v1-public")]

IP Address: [Device.FirstAddress]

============== CPU Info ==============

Load on [array_size(oid_column("iso.org.dod.internet.mgmt.mib-2.host.hrDevice.hrProcessorTable.hrProcessorEntry.hrProcessorLoad"))] CPU('s): [oid_column("iso.org.dod.internet.mgmt.mib-2.host.hrDevice.hrProcessorTable.hrProcessorEntry.hrProcessorLoad")]

============ Hard drive Info ===========

HDD C:\

full: [round(((oid("1.3.6.1.2.1.25.2.3.1.5.1")*oid("1.3.6.1.2.1.25.2.3.1.4.1")/1024)/1024)/1024)] Gb use: [round(((((oid("1.3.6.1.2.1.25.2.3.1.6.1"))*oid("1.3.6.1.2.1.25.2.3.1.4.1"))/1024)/1024)/1024)] Gb free: [round(((((oid("1.3.6.1.2.1.25.2.3.1.5.1")-oid("1.3.6.1.2.1.25.2.3.1.6.1"))*oid("1.3.6.1.2.1.25.2.3.1.4.1"))/1024)/1024)/1024)] Gb

RAM

full: [round((oid("1.3.6.1.2.1.25.2.3.1.5.4")*oid("1.3.6.1.2.1.25.2.3.1.4.4")/1024)/1024)] Mb use: [round((((oid("1.3.6.1.2.1.25.2.3.1.6.4"))*oid("1.3.6.1.2.1.25.2.3.1.4.4"))/1024)/1024)] Mb free: [round((((oid("1.3.6.1.2.1.25.2.3.1.5.4")-oid("1.3.6.1.2.1.25.2.3.1.6.4"))*oid("1.3.6.1.2.1.25.2.3.1.4.4"))/1024)/1024)] Mb

Разберем все постепенно.

1-а строчка

[Device.Name] - это запрос который берется из полей настроек

2-я строчка 

[device_performance()] - это уже функция которая обращается за логическими вычислениями в систему мониторинга, а именно за данными CPU, RAM Virtual RAM, HDD 

[Device.ServicesDown] - это переменная которая информирует о включенных и выключенных службах, т.е. меняет цвет фона устройства если зонд показал что служба на устройстве не отвечает.

[Device.Status] - показывает статус устройства (работает/не работает)

System Uptime: [oid("1.3.6.1.2.1.1.3.0","5","300","192.168.55.50","v1-public")] - это уже созданный нами запрос с помощью oid опрашивающий данные из поля 1.3.6.1.2.1.1.3.0 далее два параметра идут 5 и 300 это через какое время и с каким интервалом запрашивать данные, далее стоит IP адрес устройства и профиль snmp по которому обращаться к IP адресу , и в итоге мы получаем время работы устройства в днях, часах, минутах, и долях секунд

[Device.FirstAddress] - эта переменная отображает IP адрес устройства

в разделе CPU Info вписана целая функция и отображения опроса, сколько у нас процессоров на устройстве, и какая загрузка каждого процессора в отдельности. Данный пример не стоит копировать отсюда, а лучше вручную переписать. В этом разделе 2 строчки, но правильно написать ее в одну строку, так как у меня не вмещается такая длинная строка на страницу сайта. Так же стоит сделать и в разделе Hard Drive Info.

В разделе Hard Drive Info описаны oidы которые отображают данные по жестким дискам. Красным цветом стоит именно индексы наших жестких дисков и оперативной памяти, все остальное это данные oid, в них менять ничего не надо на других устройствах, кроме последней циферки где находится индекс устройства.

После чего стоит нажать кнопку OK и вы сразу же увидите данные которые будут отображаться на фоне устройства. 

В итоге я получил довольно информативную картинку, да и вообще полностью карту. От себя посоветую использовать пункт меню SNMP Walk из контекстного меню устройства, где за вас система мониторинга автоматически опросит устройство по протоколу snmp и отобразит таблицу oid и его значение, по которому необходимо ориентироваться и выбирать oidы для своих нужд.

В следующей статье опишу как добавлять функцию для опроса подключенных клиентов по WiFi и отображению их количества на фоне устройства.