пятница, 3 марта 2017 г.

MRTG мониторинг linux.

Если статья оказалась полезной для вас, пожалуйста подпишитесь на мой телеграм канал:

Наиболее простой вариант для сбора статистики о работе системы и формирование графиков использовать программный пакет MRTG. Так как я использую веб сервер на слабом железе (orange pi one), то анализа нагрузки на систему необходим для принятия решения о оптимизации работы сервера.

Пример мониторинга за веб-сервером на orange-pi с операционной системой Armbian(подойдет и для любых дистрибутивов на основе GNU/Debian). В системе уже установлен веб-сервер и настроена root-директория для статистики по адресу /var/www/mrtg/

Устанавливаем пакет mrtg который будет обрабатывать статистику и строить график, а так же демон и клиент SNMP:

apt-get install mrtg snmp snmpd

Легкость конфигурирования mrtg позволяет обойтись и без сбора SNMP статистики и использовать стандартные утилиты linux для сбора данных о работе системы, ниже я представлю несколько вариантов как с SNMP статистикой, так  и без нее.

Дополнительно установим пакет snmp-bims-downloader он поможет использовать MIBS SNMP не по номерами, а в человечном виде(здесь указана таблица)

apt-get install snmp-mibs-downloader

и добавьте строку(или разкомментируйте) в файле /etc/default/snmpd:

export MIBS=/usr/share/mibs

Закоментируйте mibs в файле /etc/snmp/snmp.conf:

# mibs :

Базовая настройка snmpd не требует серьезных изменений, достаточно убедиться, что не закомментирована следующая строка, она говорит о том какой хост обслуживает данный демон snmpd и имя комьюнити, понадобится для дальнейшей настройки mrtg:

rocommunity public localhost

Перезапустите snmpd, чтобы применить изменения:

systemctl restart snmpd

Проверьте какую статистику выдает нам демон snmpd:

snmpwalk -v1 -cpublic localhost

Теперь на основании данной информации начинаем настраивать MRTG.

По умолчанию mrtg обрабатывает конфигурационный файл находящийся по адресу /etc/mrtg.cfg, для автоматического формирования данного файла используйте команду:

cfgmaker --global 'WorkDir: /var/www/mrtg' --output /etc/mrtg.cfg public@localhost

где WorkDir: /var/www/mrtg каталог в котором будет находится html файлы со статистикой.

Создадим файлы конфигураций для работы с различной информацией о работе нашего сервера.

/etc/mrtg/cpu.cfg :
Target[server.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[server.cpu]: public@127.0.0.1
MaxBytes[server.cpu]: 100
Title[server.cpu]: CPU Load
PageTop[server.cpu]: <H1>Active CPU Load % </H1>
Unscaled[server.cpu]: ymwd
ShortLegend[server.cpu]: %
YLegend[server.cpu]: CPU Utilization
Legend1[server.cpu]: Active CPU in % (Load)
Legend2[server.cpu]:
Legend3[server.cpu]:
Legend4[server.cpu]:
LegendI[server.cpu]: Active
LegendO[server.cpu]:
#Colours[server.cpu]: WHITE#FFFFFF,BLUE#1000ff,WHITE#FFFFFF,WHITE#FFFFFF
Options[server.cpu]: growright,nopercent

/etc/mrtg/mem.cfg :
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost
PageTop[localhost.mem]:<H1>Free Memory</H1>
WorkDir: /var/www/mrtg
Options[localhost.mem]: nopercent,growright,gauge,noinfo
Title[localhost.mem]: Free Memory
MaxBytes[localhost.mem]: 1000000
kMG[localhost.mem]: k,M,G,T,P,X
YLegend[localhost.mem]: bytes
ShortLegend[localhost.mem]: bytes
LegendI[localhost.mem]: Free Memory:
LegendO[localhost.mem]:
Legend1[localhost.mem]: Free memory, not including swap, in bytes

/etc/mrtg/memfree.cfg :
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
WorkDir: /var/www/mrtg/
Target[server.memory]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.5.0:public@localhost
Title[server.memory]: Free Memory
PageTop[server.memory]: <H1>Free Memory</H1>
MaxBytes[server.memory]: 100000000000
ShortLegend[server.memory]: B
YLegend[server.memory]: Bytes
LegendI[server.memory]: Free
LegendO[server.memory]: Total
Legend1[server.memory]: Free memory, not including swap, in bytes
Legend2[server.memory]: Total memory
Options[server.memory]: gauge,growright,nopercent
kMG[server.memory]: k,M,G,T,P,X

/etc/mrtg/mempercent.cfg :
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
WorkDir: /var/www/mrtg/
Title[server.mempercent]: Percentage Free Memory
PageTop[server.mempercent]: <H1>Percentage Free Memory</H1>
Target[server.mempercent]: ( .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost ) * 100 / ( .1.3.6.1.4.1.2021.4.5.0&.1.3.6.1.4.1.2021.4.5.0:public@localhost )
options[server.mempercent]: growright,gauge,transparent,nopercent
Unscaled[server.mempercent]: ymwd
MaxBytes[server.mempercent]: 100
YLegend[server.mempercent]: Memory %
ShortLegend[server.mempercent]: Percent
LegendI[server.mempercent]: Free
LegendO[server.mempercent]:
Legend1[server.mempercent]: Percentage Free Memory
Legend2[server.mempercent]: Percentage Free Memory

/etc/mrtg/disk.cfg :
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
WorkDir: /var/www/mrtg/
Target[server.disk]: dskPercent.1&dskPercent.1:public@localhost
Title[server.disk]: Disk Partition Usage
PageTop[server.disk]: Disk Partition Usage /home and /var
MaxBytes[server.disk]: 100
ShortLegend[server.disk]: %
YLegend[server.disk]: Utilization
LegendI[server.disk]: /
LegendO[server.disk]: /
Options[server.disk]: gauge,growright,nopercent
Unscaled[server.disk]: ymwd

Создаем скрипты для планировщика, по каждому из конфигурационных файлов:

Центральный процессор:

/etc/cron.mrtg/cpu
#!/bin/sh
env LANG=C /usr/bin/mrtg /etc/mrtg/cpu.cfg

Оперативная память:

/etc/cron.mrtg/mem
#!/bin/sh
env LANG=C /usr/bin/mrtg /etc/mrtg/mem.cfg

Свободная оперативная память:

/etc/cron.mrtg/memfree
#!/bin/sh
env LANG=C /usr/bin/mrtg /etc/mrtg/memfree.cfg

Оперативная память в процентах:

/etc/cron.mrtg/mempercent
#!/bin/sh
env LANG=C /usr/bin/mrtg /etc/mrtg/mempercent.cfg

Занятость диска:

/etc/cron.mrtg/disk
#!/bin/sh
env LANG=C /usr/bin/mrtg /etc/mrtg/disk.cfg

Обязательно запустим каждый из указанных скриптов не менее трех раз:
$sh /etc/cron.mrtg/disk
$sh /etc/cron.mrtg/disk
$sh /etc/cron.mrtg/disk
...

и добавим выполнение всех скриптов из /etc/cron.mrtg/ в планировщик на выполнение каждые 5 минут:
*/5 * * * * /bin/run-parts /etc/cron.mrtg 1> /dev/null

Генерируем index.html:
#/usr/bin/indexmaker –output=/var/www/mrtg/index.html \
–title=”Memory and CPU Usage ” \
–sort=name \
–enumerate \
/etc/mrtg/cpu.cfg \
/etc/mrtg/mem.cfg \
/etc/cron.mrtg/memfree \
/etc/cron.mrtg/mempercent \
/etc/cron.mrtg/disk


Теперь в зависимости от настроек вашего web-сервера доступна статистика:



Поиск проблем.

Если какие либо из скриптов не отрабатывает, можно проверить если данный MIB в системе:
snmpwalk -v1 -cpublic localhost .1.3.6.1.4.1.2021.4.6.0
или
snmpwalk -v1 -cpublic localhost memAvailReal.0

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

Отправить комментарий