Показаны сообщения с ярлыком MRTG. Показать все сообщения
Показаны сообщения с ярлыком MRTG. Показать все сообщения

8 сент. 2009 г.

Linux, FreeBSD. Установка MRTG

На нескольких машинах уже поставил MRG - удобный набор Perl-скриптов для построения графиков по некоторым данным. Данные могут быть любыми: входящий/исходящий траффик сетевого интерфейса, процент загрузки процессора, количество пользователей в системе, объемы данных на дисках и все, что только придет в голову. Главное, чтобы эти данные выводились четырьмя числами - значения входящего и исходящего траффика (не сетевого, а траффика данных в данном потоке) и uptime контролируемой системы. Данные преобразуются в настраиваемые графики из двух потоков (входящий и исходящий). Данные отображаются в разрезе суток, недели, месяца и года.
В общем, про MRTG написано много. Но я при его установке столкнулся с тремя сложностями.

1. Установка в Slackware Linux. Сборка пакета на всех машинах оканчивалась сообщением об отсутствии JPG-библиотек. Бился, пока не нашел описание проблемы... в документации :). Не, мануал по инсталляции я читал перед установкой. Но этот момент пропустил. Этой ошибки не возникает, если собирать пакет и необходимые библиотеки именно так, как указано в документации. То есть библиотеки собираются, но не инсталлируются. Конечное дефолтное конфигурирование происходит командой

./configure --prefix=/usr/local/mrtg-2 \
--with-gd=/usr/local/src/gd \
--with-z=/usr/local/src/zlib \
--with-png=/usr/local/src/libpng

, если, конечно, не нужны другие опции...

2. Установка во FreeBSD. Там всё решилось установкой из портов.

3. Ну, и регулярно возникала ошибка при запуске indexmaker (построитель index.html для начальной страницы просмотра графиков), говорящая о невозможности найти модуль Pod, которая разрешилась удалением соответствующей директории из etc/mrtg-2/ и доустановкой оного пакета по примеру этой заметки.

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

4 сент. 2009 г.

FreeBSD. MRTG. Загрузка сетевого интерфейса

После долгих мучений настроил таки (вроде) отображение загрузки сетевых интерфейсов. Прописал следующий скрипт для съема статистики:

#!/bin/sh
/usr/bin/netstat -inb -I $1 > /tmp/nettraff.tmp
sleep 1
/usr/bin/netstat -inb -I $1 >> /tmp/nettraff.tmp
cat /tmp/nettraff.tmp | /usr/bin/awk '\
function abs(x){return x<0 ? -x : x}
NR==3 {in_beg = $7}\
NR==3 {out_beg = $10}\
NR==6 {in_end = $7}\
NR==6 {out_end = $10}\
END { print abs(in_beg-in_end) "\n" abs(out_beg-out_end) "\n0\n0" }'


Здесь 2 раза с перерывом в 1 секунду снимаются показания входящего и исходящего трафика на указанном интерфейсе и выводятся модули их разницы.

3 сент. 2009 г.

FreeBSD. MRTG. Загрузка процессора

Обнаружил, что на одном из серверов под FreeBSD MRTG некорректно показывает информацию о загрузке процессора. Выяснил, что виной тому неправильный скрипт снятия данных. Вместо него поставил строку:
/usr/sbin/iostat -w 1 -c 2 -t proc | tail +4 | awk '{print $3"\n"$5""\n0\n0}'

Должно теперь показывать корректно - первый выводимый параметр загрузка процессами пользователя (us), второй - системы (sys).

upd: 2009-09-04
P.S. Путь к утилите iostat указывать обязательно, иначе при запуске из крона она не будет найдена и, соответственно, данные не выведутся.

14 авг. 2009 г.

MRTG. Дополнительные заголовки

Понадобилось в html-файлах, генерируемых MRTG, в самое начала файла поставить вызов своего скрипта. Вызываться он должен в самом начале файла. Однако штатный параметр AddHead файла конфигурации MRTG позволяет добавлять заголовки между тегами <HTML> и <title>. 

Залез в исполняемый скрипт mrtg, нашел строку, начинающуюся с "DOCTYPE", которую он вставляет в начало файла (строка 1381 ), и перед ней добавил строку 

print HTML "$$rcfg{'addhead'}{$router}";

Строку же $$rcfg{'addhead'}{$router} далее в коде (1534) закомментировал. 

Работает.