База знаний

www. IT-Mehanika .ru --  журнал доброго админа

Бесплатная система мониторинга - 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 и отображению их количества на фоне устройства.


Комментарии   

0 #11 Vyacheslav Zamshilov 16.09.2016 08:34
Спасибо
0 #10 IgantenkoDmitry 07.09.2016 20:50
Цитирую REW:
Переменная выдает ответ по событию "работает" а через сэндмейлер приходят краказяблы (( что делать???


У меня нормально всё приходит. Проверьте кодировку в Outlook.
0 #9 REW 29.08.2016 01:04
Переменная выдает ответ по событию "работает" а через сэндмейлер приходят краказяблы (( что делать???
0 #8 IgantenkoDmitry 22.05.2016 11:36
Ещё вопрос к автору этих замечательных статей о Dude. Возможно вы уже сталкивались, как можно при помощи Dude мониторить доступность по DNS-имени? Т.е. как бы пинговать DNS-имя. Зараннее спасибо!
0 #7 IgantenkoDmitry 22.05.2016 11:31
Виталий, отвечая вам:

Дело было не в индексах, а в отрицательных значениях, возвращаемым по OID. Я уже разобрался. Дело было связано с тем, что диск очень большой (28 Tb), а SNMP-поле в котором приходил ответ, 32-битное, из-за этого и была проблема. Решается она путём добавления определённого числа в формулу расчёта Full (общего места на диске и соответственно свободного места на диске). Если нужно подробнее рассказать с примерами, пишите, расскажу.
0 #6 Виталий1 22.05.2016 11:22
Цитирую volodimir.haba:
Здраствуйте!
Извините, но не смог найти, как заставить Dude - общатса с девайсом (1) на котором присвоеная серая ір, через сервер (2) с белой ір, на котором сделан проброс портов в Nat.
Пример:

Девайс (1) - 172.16.16.2/24
ето тот же 217.198.2.23:8000

Сервер (2) - 217.198.2.23


Так не получиться, сделать любой понравившийся порт для Dude с пробросом его до хоста не получиться. Либо необходимо устанавливать внутри ЛВС агента, в виде сервера Dude.
Можно сделать проброс порта 161 (порт snmp) до хоста, но мониторить можно будет только этот хост.
0 #5 Виталий 21.05.2016 13:54
Цитирую Taras:
Спасибо за замечательные статьи, очень сильно мне помогли! Есть вопрос, можно ли сделать так что бы делать настройки [Device.Name],cpu, [Device.FirstAddress], и др. не по оддельности на каждому интерфейсу, а сразу на всех девайсах? Так возможно, или такой ф-ции в The Dude нет? Спс.



Конечно можно. Это нужно делать в общих настройках. Настройки - Карта - Внешний вид устройства
0 #4 Виталий 21.05.2016 13:50
Цитирую IgnatenkoDmitry:
Добрый день!
Попробовал данный метод отображения информации в Dude, и что интересно, он не по всем HDD выдаёт корректно информацию. Например, у меня на сервере есть 3 диска (С,Y и Z), так по диску С я получаю корректные данные, а по остальным двум данные full и соответственно free получаются отрицательные (со знаком минус и некорректная цифра), только use у всех трёх дисков отображается корректно. Проверил несколько раз правильность заполнения индексов. Подскажете в чём может быть проблема?


В данном случае мало информативен вопрос. Индексы могут менять в зависимости от вставленных usb флешек и прочего. Так же не все диски определяются по индексу в ОС WIN. В таком случае, нужно анализировать snmp trap и смотреть какой OID выдает именно ту информацию по диску которая необходима для отображения.
0 #3 IgnatenkoDmitry 01.02.2016 12:28
Добрый день!
Попробовал данный метод отображения информации в Dude, и что интересно, он не по всем HDD выдаёт корректно информацию. Например, у меня на сервере есть 3 диска (С,Y и Z), так по диску С я получаю корректные данные, а по остальным двум данные full и соответственно free получаются отрицательные (со знаком минус и некорректная цифра), только use у всех трёх дисков отображается корректно. Проверил несколько раз правильность заполнения индексов. Подскажете в чём может быть проблема?
0 #2 Taras 16.06.2015 17:15
Спасибо за замечательные статьи, очень сильно мне помогли! Есть вопрос, можно ли сделать так что бы делать настройки [Device.Name],c pu, [Device.FirstAd dress], и др. не по оддельности на каждому интерфейсу, а сразу на всех девайсах? Так возможно, или такой ф-ции в The Dude нет? Спс.

You have no rights to post comments