Статистика при помощи SNMP MRTG FreeBSD

Опубликовано admin -

SNMP (Simple Network Management Protocol) — простой протокол управления сетью.

Это технология, призванная обеспечить управление и контроль за устройствами и приложениями в сети связи путём обмена управляющей информацией между агентами, располагающимися на сетевых устройствах, и менеджерами, расположенными на станциях управления. В настоящее время SNMP является базовым протоколом управления сети Internet. SNMP определяет сеть как совокупность сетевых управляющих станций и элементов сети (главные машины, шлюзы и маршрутизаторы, терминальные серверы), которые совместно обеспечивают административные связи между сетевыми управляющими станциями и сетевыми агентами.

MRTG (Multi Router Traffic Grapher) – утилита позволяющая осуществлять мониторинг сетевых линков (да и не только их). MRTG на выходе генерирует HTML страницы с графиками в PNG.

Что для этого нужно ?

Сначала установим MRTG:

# cd /usr/ports/net-mgmt/mrtg
# make install clean

после инсталляции появится: /usr/local/bin/mrtg

Затем snmp:
# cd /usr/ports/net-mgmt/net-snmp
#/usr/ports/net-mgmt/net-snmp]# make install clea
n

 

Приступаем к настройке: SNMP

Если вам необходимо мониторить что либо на другом компьютере/сервере (он будет являться «клиентом»),
то после установки на нем snmp выполняем команду:

snmpconf -i -f

Запустится утилита которая поможет создать конфигурационный файл для snmp  /usr/local/share/snmp/snmpd.conf.

После запуска выбираем пункт 1 (1: snmpd.conf), затем пункт 2 (2: Access Control Setup), а затем пункт 3 (3: a SNMPv1/SNMPv2c read-only access community name).

На вопрос «The community name to add read-only access for:» отвечаем именем community на которое будет отзываться наш сервер, например pub.

На вопрос «The hostname or network address to accept this community name from [RETURN for all]:» у нас два варианта:

  1. нажать ENTER, но тогда любой хост в сети сможет «снимать» показания по SNMP с этого сервера используя community pub.

  2. четко указать IP-адрес хоста с которого будут приходить запросы. (это может быть и сам хост 127.0.0.1)

На последний вопрос об ограничениях просто жмем ENTER.

На этом конфигурирование для нас закончено, печатаем букву f, жмем ENTER, печатаем f жмем ENTER, печатаем q, жмем ENTER и программа конфигуратор завершает свою работу сообщая:

The following files were created:
snmpd.conf installed in /usr/local/share/snmp

Посмотрим как выглядит /usr/local/share/snmp/snmpd.conf

rocommunity pub 127.0.0.1

Это означает что, хост с IP-адресом 127.0.0.1 может только «читать» используя community pub (помним, что по snmp можно и «писать» (управлять)).

Добавляем в /etc/rc.conf:

snmpd_enable="YES"

Запускаем командой:

/usr/local/etc/rc.d/snmpd start

Смотрим на месте ли процесс snmp:

ps -ax | grep snmp
927 ?? S 0:23.01 /usr/local/sbin/snmpd -p /var/run/snmpd.pid
76815 p0 S+ 0:00.00 grep snmp

[root@work ~]# sockstat | grep :161
root snmpd 927 13 udp4 *:161 *:*

Все в порядке, процесс на месте и «слушает» порт udp 161.

Проверить доступность «чтения» данных по SNMP c любого устройства можно командой:

snmpwalk -v2c -c pub 127.0.0.1

Где pub это community, а 127.0.0.1 IP-адрес хоста с которого мы хотим получить данные.

Приступаем к настройке: MRTG
#cfgmaker pub@127.0.0.1 > /usr/local/etc/mrtg/mrtg.cfg

Конфигурационные файлы MRTG
/usr/local/etc/mrtg/mrtg.cnf
добовляем

Language: russian1251
WorkDir:
/usr/local/www/apache22/data/mrtg/
background[_]: #FBEDD0
Options[_]: Bits
Forks: 4

 

#ee /etc/rc.conf
mrtg_daemon_enable="YES"
mrtg_daemon_config="/usr/local/etc/mrtg/mrtg.cfg"

Запускаем командой:

#/usr/local/etc/rc.d/mrtg_daemon start
 

Проверяем конфиг

запустим руками для проверки, что мы не ошиблись в конфиге

/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

Если строчек «ERROR: CFG Error in» нет, то все ОК, если есть исправляем ошибки.
и создаем index.html файлы

#indexmaker --columns=1 /usr/local/etc/mrtg/mrtg.cfg > /usr/local/www/apache22/data/mrtg/index.html

Добавляем в файл /etc/crontab:

*/5 * * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

Теперь ждем 5-ть минут и смотрим в папку /usr/local/www/apache22/data/mrtg/, которая обозначена в нашем конфиге как WorkDir,
куда и будут складываться HTML страницы с графиками. Не пугайтесь если графики по началу пусты, подождите хотябы 30-ть минут,
что бы появилось достаточно данных для того, чтобы вы увидели рабочий график.

Благодаря crontab`у график будет обновляться каждые 5-ть минут и вы будете видеть графики отображающие среднее за 5-ть минут значение. Делать меньше 5-ти минут не рекомендую.

Теги

Комментарии

###########################
# 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]: Active CPU Load %
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]: Free Memory
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

cfgmaker --ifref=ip --global 'WorkDir: /usr/local/www/apache22/data/stat' --global 'LogDir: /var/log/mrtg' --global 'ImageDir: /usr/local/www/apache22/data/stat/img' --global 'Language: russian1251' --global 'Options[_]: growright,bits' --output /usr/local/etc/mrtg/mrtg.cfg pub@127.0.0.1

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA
2 + 4 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.