DTop CMS - система управления контентом
Текущая версия: 3.4.1



© 2002-2013

Статья опубликована: 2013.07.22

FreeBSD, mrtg - файл mrtg.cfg


Устанавливаем и настраиваем mrtg как описано здесь
Для того, чтобы мониторить сервер, у mrtg существует специальный файл, где записаны все объекты, которые необходимо мониторить. Этот файл /usr/local/etc/mrtg/mrtg.cfg
В этом файле записаны общие настройки а также блоки с конфигурацией.
  • Общие настройки
    WorkDir: /home/_default/htdocs/mrtg
    Language: russian
    Forks: 10
    EnableIPv6: no
    enablesnmpv3: yes
    Options[^]: nobanner
    
    WorkDir - директория, доступная web-серверу, где хранятся логи, html и картинки
    Forks - количество потоков при получении данных

  • mrtg и сетевые интерфейсы

    Мы установили, настроили и запустили snmpd а потому данные с сетевых интерфейсов будем получать по протоколу SNMPv3. Конфиг всех передающих и принимающих данные интерфейсов системы поможет создать утилита cfgmaker:
    # cd /root
    # cfgmaker --enablesnmpv3 --user ПОЛЬЗОВАТЕЛЬ --authpassword ПАРОЛЬ ИМЯ@localhost > config.cfg
    
    ПОЛЬЗОВАТЕЛЬ, ПАРОЛЬ, ИМЯ - эти данные задавались во время настройки snmpd
    Если все пройдет нормально, то вы получите файл /root/config.cfg с образцом конфигурации интерфейсов для mrtg. Ищем в файле нужные интерфейсы, нам оттуда понадобятся значения из строк с Target, SetEnv, MaxBytes

    ale0, сетевая карта, смотрит в домашнюю сеть
    Title[ale0]: LAN traffic
    PageTop[ale0]: <H1>LAN traffic</H1>
    Directory[ale0]: if_ale0
    Target[ale0]: 1:XXXXXX@localhost:
    SetEnv[ale0]: MRTG_INT_IP="192.168.0.3" MRTG_INT_DESCR="ale0"
    MaxBytes[ale0]: 125000000
    AbsMax[ale0]: 125000000
    WithPeak[ale0]: dwmy
    
    rl0, сетевая карта, подключена к провайдеру
    Title[rl0]: EXT traffic
    PageTop[rl0]: <H1>EXT traffic</H1>
    Directory[rl0]: if_rl0
    Target[rl0]: 7:XXXXXX@localhost:
    SetEnv[rl0]: MRTG_INT_IP="XXX.XXX.XXX.XXX" MRTG_INT_DESCR="rl0"
    MaxBytes[rl0]: 125000000
    AbsMax[rl0]: 125000000
    WithPeak[rl0]: dwmy
    
  • mrtg и nut - мониторим UPS
    Для снятия данных с nut используем утилиту upsc
    # upsc UPSNAME@127.0.0.1
    battery.charge: 100
    battery.voltage: 13.60
    battery.voltage.high: 13.00
    battery.voltage.low: 10.40
    battery.voltage.nominal: 12.0
    device.type: ups
    driver.name: blazer_usb
    driver.parameter.pollinterval: 2
    driver.parameter.port: /dev/ugen1.3
    driver.version: 2.6.5
    driver.version.internal: 0.09
    input.current.nominal: 3.0
    input.frequency: 49.9
    input.frequency.nominal: 50
    input.voltage: 230.8
    input.voltage.fault: 230.8
    input.voltage.nominal: 220
    output.voltage: 230.8
    ups.beeper.status: enabled
    ups.delay.shutdown: 30
    ups.delay.start: 180
    ups.load: 14
    ups.productid: 5161
    ups.status: OL
    ups.temperature: 25.0
    ups.type: offline / line interactive
    ups.vendorid: 0665
    
    Она выводит кучу параметров, так что выбрать можно всё, что угодно. У разных моделей UPS выводятся разные параметры, так что не ленитесь предварительно проверить. Я опишу пример настройки показа напряжения на входе (input.voltage) и выходе (output.voltage) UPS. Остальные параметры можно показывать по аналогии с примером ниже.
    # UPS input/output voltage
    Title[ups-v]: UPS Input/Output Voltage
    PNGTitle[ups-v]: UPS Input/Output Voltage
    PageTop[ups-v]: <h1>UPS Input/Output Voltage</h1>
    Directory[ups-v]: ups_v
    MaxBytes[ups-v]: 300
    Options[ups-v]: noinfo,unknaszero,nopercent,gauge
    Target[ups-v]: `upsc UPSNAME@127.0.0.1 | grep input.voltage: | awk -F " " '{print $2}' &&\
     upsc UPSNAME@127.0.0.1 | grep output.voltage: | awk -F " " '{print $2}'`
    YLegend[ups-v]: V
    ShortLegend[ups-v]: V
    LegendI[ups-v]: Input
    LegendO[ups-v]: Output
    WithPeak[ups-v]:  ymwd
    
    Вместо UPSNAME не забудьте подставить название своего UPS из nut.