Связка snmpd + mrtg » Записки старого сисадмина Связка snmpd + mrtg » article » Записки старого сисадмина

Связка 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]: &nbsp;In:
LegendO[eth0]: &nbsp;Out:
WithPeak[eth0]: ymwd

###########################
# CPU

LoadMIBs: /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

###########################
# Memory

LoadMIBs: /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. ;)

15 комментариев, “Связка snmpd + mrtg”

  1. d1em00n aka Dmitry |

    А меня интересует программы для мониторинга удаленных юних систем без передачи всевозможных auth деталей.
    Под форточку есть IPCheck Server Monitor. В принцыпи, под вайном клиент загружается, серверную часть не пробывал… Но хотелось что то подобное так сказать linux native.

  2. Lecactus |

    в целом работает, но рисует все по нулям……

  3. Silver Ghost |

    d1em00n, Nagios Вам поможет. :)

    Lecactus, как это по нулям? Не может быть.

  4. Lecactus |

    А БЕЗ snmp можно настроить? говорят можно но не пойму как

  5. Silver Ghost |

    Можно…для интерфейсов тогда используется cban. А вот для памяти и проца ничего не посоветую. :(

  6. Osgald |

    Небольшая добавочка. При мониторинге системы захотелось посчитать число онлайновых юзеров на сервере доступа 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. В Вашем конкретном случае это число может отличаться.

  7. Silver Ghost |

    Osgald, спасибо за дополнение, но чую, что можно и проще как-то. :)

  8. aleksandr |

    Хм… а для двухядерных процов конфиг другой? На моем амд 64 график загрузки ЦП не рисует…. по нулям

  9. Silver Ghost |

    Алекс, вполне может быть. Используй snmpwalk, чтобы найти нужные MIB.

  10. aleksandr |

    Еще такой вопрос.Мой 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 соеденение?

  11. Silver Ghost |

    Да, если запятые на точки поменяешь. :)

  12. aleksandr |

    Создаю 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#

  13. aleksandr |

    Ой…Поменял везде с [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” …

  14. aleksandr |

    Сорри. Разобрался. Спасибо за внимание :)

  15. aleksandr |

    Жаль нету конфигов на такие графики, как температура, загрузка ЦП, и тд…

Комментировать