Если статья оказалась полезной для вас, пожалуйста подпишитесь на мой телеграм канал:
Наиболее простой вариант для сбора статистики о работе системы и формирование графиков использовать программный пакет MRTG. Так как я использую веб сервер на слабом железе (orange pi one), то анализа нагрузки на систему необходим для принятия решения о оптимизации работы сервера.
Пример мониторинга за веб-сервером на orange-pi с операционной системой Armbian(подойдет и для любых дистрибутивов на основе GNU/Debian). В системе уже установлен веб-сервер и настроена root-директория для статистики по адресу /var/www/mrtg/
Устанавливаем пакет mrtg который будет обрабатывать статистику и строить график, а так же демон и клиент SNMP:
Легкость конфигурирования mrtg позволяет обойтись и без сбора SNMP статистики и использовать стандартные утилиты linux для сбора данных о работе системы, ниже я представлю несколько вариантов как с SNMP статистикой, так и без нее.
Дополнительно установим пакет snmp-bims-downloader он поможет использовать MIBS SNMP не по номерами, а в человечном виде(здесь указана таблица)
и добавьте строку(или разкомментируйте) в файле /etc/default/snmpd:
Закоментируйте mibs в файле /etc/snmp/snmp.conf:
Базовая настройка snmpd не требует серьезных изменений, достаточно убедиться, что не закомментирована следующая строка, она говорит о том какой хост обслуживает данный демон snmpd и имя комьюнити, понадобится для дальнейшей настройки mrtg:
Перезапустите snmpd, чтобы применить изменения:
Проверьте какую статистику выдает нам демон snmpd:
Теперь на основании данной информации начинаем настраивать MRTG.
По умолчанию mrtg обрабатывает конфигурационный файл находящийся по адресу /etc/mrtg.cfg, для автоматического формирования данного файла используйте команду:
где WorkDir: /var/www/mrtg каталог в котором будет находится html файлы со статистикой.
Создадим файлы конфигураций для работы с различной информацией о работе нашего сервера.
/etc/mrtg/cpu.cfg :
/etc/mrtg/mem.cfg :
/etc/mrtg/memfree.cfg :
/etc/mrtg/mempercent.cfg :
/etc/mrtg/disk.cfg :
Создаем скрипты для планировщика, по каждому из конфигурационных файлов:
Центральный процессор:
/etc/cron.mrtg/cpu
Оперативная память:
/etc/cron.mrtg/mem
Свободная оперативная память:
/etc/cron.mrtg/memfree
Оперативная память в процентах:
/etc/cron.mrtg/mempercent
Занятость диска:
/etc/cron.mrtg/disk
Обязательно запустим каждый из указанных скриптов не менее трех раз:
и добавим выполнение всех скриптов из /etc/cron.mrtg/ в планировщик на выполнение каждые 5 минут:
Генерируем index.html:
Теперь в зависимости от настроек вашего web-сервера доступна статистика:
Поиск проблем.
Если какие либо из скриптов не отрабатывает, можно проверить если данный MIB в системе:
snmpwalk -v1 -cpublic localhost .1.3.6.1.4.1.2021.4.6.0
или
snmpwalk -v1 -cpublic localhost memAvailReal.0
Пример мониторинга за веб-сервером на 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
Комментариев нет:
Отправить комментарий