В этой статье рассмотрю возможность увеличение информативности отображения устройства. Т.е. Я хочу вывести отображение информации по устройству, не в таком количестве как у нас в настоящий момент, это CPU, RAM, Virtual RAM, Disk и все это в процентном соотношении, а в более развернутом виде. Я хочу добавить информацию о количестве процессоров на устройстве, и конечно же загрузке этих процессоров, общее время работы данного устройства в днях и часах, IP-адрес устройства, и конечно же полную и развернутую информацию о жестких дисках (это общий объем HDD, занятое пространство, и сколько свободно) и все вывести в мегабайтах, так как это более понятней будет нежели писать в процентах. Конечно можно зайти в настройки устройства и перейти во вкладку snmp -> раздел Хранилище и там посмотреть всю инфу, но представьте что у вас 5-6 серверов и надо на каждом все это щелкать и смотреть, если это можно вывести прямо на устройство и видеть на карте.
Теперь вы поняли что я хочу увидеть, и какую информацию. Я знаю как это делать, и теперь мне надо изложить в статье. Это не трудно.
Для начала немного лирики и отступления. У каждого устройства по протоколу snmp собирается информация, и при получении данных, например жестких дисков, каждому жесткому диску присваевается так называемые "Индекс" по базе OID из mib'ов. Но все прекрасно понимают что на разных устройствах может быть разное количество и жестких дисков и оперативной памяти, т.е. конфигурация оборудования может очень сильно отличается. А также може стоять разная операционная система. Соответственно присвоение как раз этих индексов зависит от оборудования и его количества, и эти индексы могут быть разными для всех устройств. Поэтому нам необходимо узнать индекс жестких дисков и оперативной памяти данного устройства. Это узнать очень просто, и эту информацию нужно для начала выписать себе на бумажечку.ÂÂÂÂÂ
Щелкаем 2 раза ЛКМ (левая кнопка мыши) на выбранном устройстве и идем: вкладка "SNMP" -> Хранилище -> выбираем жесткий диск и 2 раза ЛКМ и записываем данные с поля "Индекс" ну и поле "Описание". Также мы узнаем индекс и других жестких дисков. Для определения "Индекса" RAM, щелкаем на пункте "Physical Memory" и записываем индекс RAM.
Теперь данные для настройки собраны, можно начать добавлять информативность.
Щелкаем 1 раз (ПКМ - правой кнопкой мыши) на устройстве с которого сняли данные по индексам, и выбираем пункт меню "Вид"
После чего щелкаем 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 и отображению их количества на фоне устройства.
Комментарии
У меня нормально всё приходит. Проверьте кодировку в Outlook.
Дело было не в индексах, а в отрицательных значениях, возвращаемым по OID. Я уже разобрался. Дело было связано с тем, что диск очень большой (28 Tb), а SNMP-поле в котором приходил ответ, 32-битное, из-за этого и была проблема. Решается она путём добавления определённого числа в формулу расчёта Full (общего места на диске и соответственно свободного места на диске). Если нужно подробнее рассказать с примерами, пишите, расскажу.
Так не получиться, сделать любой понравившийся порт для Dude с пробросом его до хоста не получиться. Либо необходимо устанавливать внутри ЛВС агента, в виде сервера Dude.
Можно сделать проброс порта 161 (порт snmp) до хоста, но мониторить можно будет только этот хост.
Конечно можно. Это нужно делать в общих настройках. Настройки - Карта - Внешний вид устройства
В данном случае мало информативен вопрос. Индексы могут менять в зависимости от вставленных usb флешек и прочего. Так же не все диски определяются по индексу в ОС WIN. В таком случае, нужно анализировать snmp trap и смотреть какой OID выдает именно ту информацию по диску которая необходима для отображения.
Попробовал данный метод отображения информации в Dude, и что интересно, он не по всем HDD выдаёт корректно информацию. Например, у меня на сервере есть 3 диска (С,Y и Z), так по диску С я получаю корректные данные, а по остальным двум данные full и соответственно free получаются отрицательные (со знаком минус и некорректная цифра), только use у всех трёх дисков отображается корректно. Проверил несколько раз правильность заполнения индексов. Подскажете в чём может быть проблема?
RSS лента комментариев этой записи