Записная книжка сисадмина
Все статьи
Инструкции
Веб-софт
MRTG - рисуем графики для более подробного контроля
Mar
nd
2015
10:17 pm
MRTG - свободное программное обеспечение для организации сервиса мониторинга.
Установка MRTG
Установка на
Ubuntu
Server
(в данном случае 12.04)
apt-get
install mrtg mrtgutils mrtg-ping-probe
Настройка MRTG
Создаём конфигурацию в таком виде /etc/mrtg.cfg (или /etc/mrtg/mrtg.cfg для
CentOS
WorkDir: /var/www/mrtg
WriteExpires: Yes
Конфигурации для случаев
Ниже идут примеры, когда не используется
SNMP
Проверяем скорость канала
Если периодически нужно замерять канал, можно это делать, загружая определённые файлы со стороннего сервера с хорошим каналом. Например, есть файл на 1МБ по ссылке
http://wikiadmin.net/file
Итак, добавляем в конфиг следующее
Title[mrtg.speed]: speed download
PageTop[mrtg.speed]: <H1>speed download</H1>
Target[mrtg.speed]: `/etc/mrtg/mrtg.speed`
MaxBytes[mrtg.speed]: 2000000
Options[mrtg.speed]: growright,unknaszero,nopercent,gauge
YLegend[mrtg.speed]: RTT (speed)
И создаём скрипт /etc/mrtg/mrtg.speed
#!/bin/bash
echo "scale=1; `curl --silent -w "%{speed_download}" http://wikiadmin.net/file -o /dev/null`" | bc | xargs -I {} echo {}
echo 131072
Значение 131072 - это указываем для синий линии, значит мегабит, который должен быть по тарифу. Если у вас другой тариф - укажите его.
Мониторим сторонние сервисы с помощью
ICMP
(ping)
Добавим в конфиг следующее
Title[localhost.ping]: RTT to 8.8.8.8
PageTop[localhost.ping]: <H1>Ping to 8.8.8.8</H1>
Target[localhost.ping]: '/etc/mrtg/mrtg.ping'
MaxBytes[localhost.ping]: 2000
Options[localhost.ping]: integer,nobanner,growright,nopercent,gauge
Создаём скрипт /etc/mrtg/mrtg.ping
#!/bin/sh
PING8=`ping -c2 -s50 8.8.8.8 -q | awk '/time/{print $10}' | sed 's/ms//g'`
LOSS=`ping -c2 -s50 8.8.8.8 -q | awk '/time/{print $6}' | sed 's/%//g'`
echo $PING8
echo $LOSS
Делаем его исполняемым
chmod +x /etc/mrtg.ping
Мониторим сколько процентов места занято на диске
Добавим в конфиг следующее
10
11
12
Target[disk]: `/etc/mrtg/mrtg.disk`
Title[disk]: Root partition % used
MaxBytes[disk]: 100
PageTop[disk]: <H1> Root partition % used </H1>
Suppress[disk]: y
LegendI[disk]: % used_root
LegendO[disk]: % used_boot
Legend1[disk]: % used_root
Legend2[disk]: % used_boot
YLegend[disk]: percent used
ShortLegend[disk]: used
Options[disk]: growright, gauge
Создаём скрипт /etc/mrtg/mrtg.disk
10
#!/usr/bin/perl
foreach $_ (`df -k | grep -v "Filesystem"| grep md1`)
($device, $size, $used, $free, $percent, $mount) = split(/\s+/);
chop($percent);
print "$percent\n";
print "0";
Учтите, что grep md1 - это для моего случая, у вас диск может быть другим. Посмотрите это с помощью
df -k | grep -v "Filesystem"
и решите, что туда добавить. Делаем скрипт исполняемым
chmod +x /etc/mrtg/mrtg.disk
Мониторим количество соединений в общем
Добавим в конфиг следующее
Target[net]: `/etc/mrtg/mrtg.net`
MaxBytes[net]: 15000000000
Options[net]: nopercent,growright,bits
Title[net]: Traffic Analysis for eth0
PageTop[net]: <h1>Traffic Analysis for eth0</h1>
Создаём скрипт /etc/mrtg/mrtg.net
#!/bin/bash
INPUT=`netstat -iv | grep -m 1 'eth0' | awk {'print $4'}`
OUTPUT=`netstat -iv | grep -m 1 'eth0' | awk {'print $8'}`
DATE=`date +%s`
NAME='MANAGEMENT'
echo $INPUT
echo $OUTPUT
echo $DATE
echo $NAME
Делаем скрипт исполняемым
chmod +x /etc/mrtg/mrtg.net
Мониторим количество соединений на отдельных портах
Можно мониторить любые порты. например 25,110 или 143 для тех же почтовиков. У меня была задача получать кол-во соединений на 80 порту (
Nginx
) и на 8080 (
Apache
). Это несложно. Добавляем в конфиг следующее:
10
11
12
Target[connect]: `/etc/mrtg/mrtg.connect`
Title[connect]: connect to our web in sec
MaxBytes[connect]: 100000
PageTop[connect]: <H1> connect to our web </H1>
Suppress[connect]: y
LegendI[connect]: 80 portMRTG - рисуем графики для более подробного контроля - Записная книжка сисадмина
Материал перенесён из старой базы знаний ATC-IP и оформлен в едином стиле нового сайта.