1. Вы находитесь в архивной версии форума xaker.name. Здесь собраны темы с 2007 по 2012 год, большинство инструкций и мануалов уже неактуальны.
    Скрыть объявление

Мониторинг системных параметров с помощью графиков MRTG

Тема в разделе "FAQ", создана пользователем ma5ter, 6 окт 2011.

  1. ma5ter

    ma5ter Новичок

    Регистрация:
    4 окт 2011
    Сообщения:
    22
    Симпатии:
    4
    Баллы:
    0
    Довольно удобно применять эту тулзу для мониторинга своих серверов, причем для любых параметров: загрузка процессора, температура чипсета, забитость винта и т.п.

    Примеры мониторов:
    Сетевой интерфейс (день):
    [​IMG]
    Вентиляторы (месяц):
    [​IMG]
    Память:
    [​IMG]
    Число ошибок (тьфу-тьфу = 0) и температура винта из С.М.А.Р.Т.:
    [​IMG]

    Ссылка на офсайт: http://oss.oetiker.ch/mrtg/

    УСТАНОВКА

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

    Для генту:
    Код:
    emerge net-analyzer/mrtg
    Для RH-based
    Код:
    yum install mrtg
    Для остальных и ручной установки надо помнить что MRTG требуются следующие библиотеки:
    * gd - graph drawing library. Библиотека, ответственная за формирование графики (http://www.boutell.com/gd/);
    * libpng - требуется gd для создания графики в формате png (http://www.libpng.org/pub/png/src/);
    * zlib - данная библиотека используется для компрессии созданной графики (ftp://sunsite.cnlab-switch.ch/mirror/infozip/zlib/);

    НАСТРОЙКА

    Настройка производится фактически редактированием файла настроек mrtg.conf, образец которого чаще всего при установке попадает в /etc/mrtg или /usr/etc/mrtg.

    Основные параметры. Обязательные для работы mrtg параметры - это папки куда складывать графики и держать логи, впринципе можно использовать одну директорию вебсервера (ну для порядку установить доступ в хтакцессе по типам файлов):

    Код:
    HtmlDir: /var/www/localhost/htdocs/mrtg
    ImageDir: /var/www/localhost/htdocs/mrtg
    LogDir: /var/www/localhost/htdocs/mrtg
    ThreshDir: /var/www/localhost/htdocs/mrtg
    Общие для всех мониторов настройки можно описать с индексом "_" и не включать в секцию каждого монитора, например:

    Код:
    kilo[_]: 1024
    YTics[_]: 16
    YSize[_]: 200
    XSize[_]: 500
    Далее необходимо описать каждый монитор. Необходимо учитывать что mrtg изначально затачивался для мониторинга траффика по snmp на роутерах и каждый монитор имеет два графика (условно называемых IN и OUT), которые фактически могут бытиь использованы как угодно, или отключены вовсе.

    Пример секции монитора, индексом в этом случае является условное имя монитора, например "eth0":
    Код:
    Title[eth0]: Traffic <b>eth0</b> # тайтл страницы
    MaxBytes[eth0]: 2097152 # верхняя граница максимума, отображается на графике чертой
    AbsMax[eth0]: 52428800 № максимально возможное значение данных
    Options[eth0]: nobanner, noinfo, logscale, noborder, transparent # опции отображения
    Target[eth0]: `/etc/mrtg/if2mrtg eth0` # источник данных, важный параметр о нем ниже
    PageTop[eth0]: <H1>Traffic eth0</H1> # заголовок
    YLegend[eth0]: Bytes/s # легенды и подписи по обоим графикам
    ShortLegend[eth0]: B/s
    Legend1[eth0]: Incoming Traffic
    Legend2[eth0]: Outgoing Traffic
    Legend3[eth0]: Maximum Incoming Traffic
    Legend4[eth0]: Maximum Outgoing Traffic
    LegendI[eth0]: In:
    LegendO[eth0]: Out:
    WithPeak[eth0]: ymwd # где отображать пиковые значения данных: y-годовой график m-месячный и т.п.
    Источник данных это либо snmp протокол либо скрипт (что значительно интереснее для нас). Если используется скрипт то он должен выдавать информацию в четыре строки:
    Код:
    Счетчик 1 (IN)
    Счетчик 2 (OUT)
    Время работы (опционально)
    Условное имя монитора
    Самые важные первые две. Если не установлена опция монитора gauge (использовать значения как есть) то из текущего значения счетчика вычитается предыдущее и эта разница считается объемом за пять минут и переводится в соответствующие единицы.

    Приведу пример простого скрипта, который выдает статистику по сетевому интерфейсу (указанный в примере конфигурации выше):
    Код:
    #!/bin/bash
    /bin/grep "$1" /proc/net/dev |/bin/awk -F ":" ' {print $2 }' | /bin/awk '{print $1 "\n" $9}' 
    /usr/bin/uptime | /bin/sed 's/.*up //g' | /bin/sed 's/,  .*//g'
    echo $1
    
    После редактирования конфигурационного файла необходимо сздать индексные файлы для вебсервера, для этого можно воспользоваться утилитой из комплекта mrtg:
    Код:
    indexmaker --output=/var/www/localhost/htdocs/mrtg/index.html /etc/mrtg/mrtg.conf
    ЗАПУСК

    Обычно демон для работы mrtg идет в комплекте. После настройки попробуйте сразу запустить сервис привычным в вашем дистрибутиве способом, например /etc/init.d/mrtg start

    Если демона нет, можно воткнуть его в крон,учитывая что очень много параметров завязано на запуск раз в пять минут это лучше не менять:
    Код:
    crontab -e 
    */5 * * * * /usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log
    
    PS. Если интересно могу привести свои скрипты для сбора статистики о свободном месте на винте, статистиках lmsensors (температура, вентиляторы и т.п.), статистики S.M.A.R.T.
     
    Последнее редактирование: 6 окт 2011
    1 человеку нравится это.

Поделиться этой страницей