Связка snmpd + mrtg
4 мая 2008
Версия для печати
Давненько я хотел разобраться как мониторить сетевые интерфейсы локальной машины через snmp и рисовать графики через mrtg. Еще больше мне хотелось через тот же snmp мониторить загрузку CPU и памяти.
Вчера собственно я с этим и разобрался, о чем и хочу Вам поведать. :)
Ставим необходимый софт:
$ sudo apt-get install snmpd mrtg
После чего правим файл /etc/snmp/snmpd.conf всего лишь в одном месте. Было:
com2sec paranoid default public
#com2sec readonly default public
#com2sec readwrite default private
Стало:
#com2sec paranoid default public
com2sec readonly default public
#com2sec readwrite default private
Теперь перезапускаем snmpd:
$ sudo /etc/init.d/snmpd restart
SNMPd готов к использованию. Остается отрисовка графиков - mrtg. Правим файл /etc/mrtg.cfg, приводя его к примерно следующему виду:
# Global configuration
HtmlDir: /path/to/htdocs
ImageDir: /path/to/htdocs/images
LogDir: /path/to/htdocs/logs
EnableIPv6: no###########################
# Сетевой интерфейс маршрутизатораTitle[eth0]: Output interface
PNGTitle[eth0]: Interface to Internet
MaxBytes[eth0]: 64000
AbsMax[eth0]: 128000
Options[eth0]: growright, bits
SetEnv[eth0]: MRTG_INT_IP="192.168.0.1" MRTG_INT_DESCR="eth0"
Target[eth0]: 2:public@localhost:
PageTop[eth0]: <h1> Output interface</h1>
YLegend[eth0]: bits/s
ShortLegend[eth0]: b/s
Legend1[eth0]: Incoming Traffic
Legend2[eth0]: Outgoing Traffic
Legend3[eth0]: Maximum Incoming Traffic
Legend4[eth0]: Maximum Outgoing Traffic
LegendI[eth0]: In:
LegendO[eth0]: Out:
WithPeak[eth0]: ymwd###########################
# CPULoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1+ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[cpu]: public@127.0.0.1
MaxBytes[cpu]: 100
Title[cpu]: CPU Load
PageTop[cpu]: <H1>Active CPU Load %</H1>
Unscaled[cpu]: ymwd
ShortLegend[cpu]: %
YLegend[cpu]: CPU Utilization
Legend1[cpu]: Active CPU in % (Load)
Legend2[cpu]:
Legend3[cpu]:
Legend4[cpu]:
LegendI[cpu]: Active
LegendO[cpu]:
Options[cpu]: growright,nopercent###########################
# MemoryLoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost
PageTop[mem]: <H1>Free Memory</H1>
Options[mem]: nopercent,growright,gauge,noinfo
Title[mem]: Free Memory
MaxBytes[mem]: 1000000
kMG[mem]: k,M,G,T,P,X
YLegend[mem]: bytes
ShortLegend[mem]: bytes
LegendI[mem]: Free Memory:
LegendO[mem]:
Legend1[mem]: Free memory, not including swap, in bytes
Итого мы имеем отрисовку графиков сетевого интерфейса, загрузку процессора, использования памяти. Остается только нарисовать общий файл со всеми графиками:
$ sudo indexmaker /etc/mrtg.cfg > /path/to/htdocs/index.html
Собственно синтаксис файла конфигурации прост до безобразия. Кому интересно разобраться - .
И не забываем подписываться на RSS. ;)



А меня интересует программы для мониторинга удаленных юних систем без передачи всевозможных auth деталей.
Под форточку есть IPCheck Server Monitor. В принцыпи, под вайном клиент загружается, серверную часть не пробывал… Но хотелось что то подобное так сказать linux native.
в целом работает, но рисует все по нулям……
d1em00n, Nagios Вам поможет. :)
Lecactus, как это по нулям? Не может быть.
А БЕЗ snmp можно настроить? говорят можно но не пойму как
Можно…для интерфейсов тогда используется cban. А вот для памяти и проца ничего не посоветую. :(
Небольшая добавочка. При мониторинге системы захотелось посчитать число онлайновых юзеров на сервере доступа Cisco. Как такового MIBа, в котором отображается это число, нет. Cisco 2511 OS v12.0(26). По указанной в новости ссылочке есть чудная фича как раз для этого случая - CnTWaLK. Одна проблема - эта фича введена в дистрибутивы MRTG начиная с версии 2.16. Можно написать скриптик, обрабатывать и считывать из файла, но хотелось поэлегантней, одной строкой… Путем раздумий родилась такая конструкция:
Target[cisco]: `snmpwalk -v2c -c public CISCO_IP RFC1213-MIB::ipRouteDest | awk ‘{s++} END {print(s-3)}’ && echo 0`
Некоторые комментарии: данная строка считает число интерфейсов на кошке, к которым прописаны роуты. При моей конфигурации 3 есть внутренних. Соответственно, от итогового числа отнимаю 3. В Вашем конкретном случае это число может отличаться.
Osgald, спасибо за дополнение, но чую, что можно и проще как-то. :)
Хм… а для двухядерных процов конфиг другой? На моем амд 64 график загрузки ЦП не рисует…. по нулям
Алекс, вполне может быть. Используй snmpwalk, чтобы найти нужные MIB.
Еще такой вопрос.Мой ifconfig говорит
ppp0 Link encap:Протокол PPP (Point-to-Point Protocol)
inet addr:172.17.0.133 P-t-P:172.17.0.1 Mask:255.255.255.255
ВВЕРХ POINTOPOINT RUNNING NOARP MULTICAST MTU:1412 Metric:1
RX packets:62898 errors:0 dropped:0 overruns:0 frame:0
TX packets:61837 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:3
RX bytes:39527172 (37.6 MB) TX bytes:6133404 (5.8 MB)
А следовательно, если я в конфиге изменю SetEnv[eth0]: MRTG_INT_IP=”192.168.0.1″ MRTG_INT_DESCR=”eth0″ на SetEnv[eth0]: MRTG_INT_IP=”172,17,0,133″ MRTG_INT_DESCR=”ppp0″ . Будет ли правильно мониториться pptp соеденение?
Да, если запятые на точки поменяешь. :)
Создаю pptp.cfg
# Сетевой интерфейс маршрутизатора
Title[eth0]: Output interface
PNGTitle[eth0]: Interface to Internet
MaxBytes[eth0]: 64000
AbsMax[eth0]: 128000
Options[eth0]: growright, bits
SetEnv[eth0]: MRTG_INT_IP=”172.17.0.133″ MRTG_INT_DESCR=”ppp0″
Target[eth0]: 2:public@localhost:
PageTop[eth0]: Output interface. (ppp0)
YLegend[eth0]: bits/s
ShortLegend[eth0]: b/s
Legend1[eth0]: Incoming Traffic
Legend2[eth0]: Outgoing Traffic
Legend3[eth0]: Maximum Incoming Traffic
Legend4[eth0]: Maximum Outgoing Traffic
LegendI[eth0]: In:
LegendO[eth0]: Out:
WithPeak[eth0]: ymwd
Сохранил.
root@lo1-desktop:/usr/local/src# indexmaker /etc/mrtg/pptp.cfg > /var/www/mrtg/pptp.html
ERROR: CFG Error in “setenv[eth0]“, line 10: MRTG_INT_IP=”172.17.0.133″ MRTG_INT_DESCR=”eth0″ must be XY=”dddd” AASD=”kjlkj” …
root@lo1-desktop:/usr/local/src#
Ой…Поменял везде с [eth0]: на [ppp0] .
Теперь пишет
ERROR: CFG Error in “setenv[ppp0]“, line 10: MRTG_INT_IP=”172.17.0.133″ MRTG_INT_DESCR=”ppp0″ must be XY=”dddd” AASD=”kjlkj” …
Сорри. Разобрался. Спасибо за внимание :)
Жаль нету конфигов на такие графики, как температура, загрузка ЦП, и тд…