/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

Клиент-серверное приложение для мониторинга и построения графиков загрузки сети и учёта работы различных сервисов. Для построения графиков используется MRTG. В пакет входит 2 программы:

  • rstats - Сервер мониторинга

    ПараметрОписание
    ipfw num:numПолучать данные с ipfw
    snmp oid:oidДанные SNMP
    iptable трафик с iptable
    net_bufs FreeBSD net buffer
    load Загрузка системы
    mysql Количество mysql запросов и медленных запросов 
    memoryПамять
    memnocache memory cache
    swap Swap info
    tuns_trafтрафик по всем tun интерфейсам
    ppp_count количество активных pppd интерфейсов
    ng_count количество активных mpd 
    tun_count Количество активных tun интерфейсов
    mikrotik_ppp Количество ppp сессий
    mikrotik_loadНагрузка на процессор
    mikrotik_mem Нагрузка на память


  • rstatc - Клиент для снятия данных с удалённого сервера

    Другие файлы:

  • mrtg.cfg - Примеры настройки конфигурационного файла MRTG.

Возможности

  • Мониторинг проходящего трафика через интерфейс

  • Съём данных с ipfw (FreeBSD) iptables (Linux)

  • Мониторинг загрузки процессора

  • Мониторинг использования памяти

  • Мониторинг количества VPN сессий (tun, ng, pppd)

  • Мониторинг загрузки сервера баз данных (Mysql)

  • Мониторинг количества консольных пользователей

  • Мониторинг почтовой очереди

  • Поддержка ОС Linux, FreeBSD

  • Мониторинг сервисов как локально, так и на удалённых серверах

Установка

git clone https://github.com/nabat/rstat.git
cd rstat
make install

Установка MRTG

apt-get install mrtg

pkg install mrtg


yum install mrtg


Или берём MRTG пакет с сайта http://oss.oetiker.ch/mrtg/download.en.html и устанавливаем по инструкции https://oss.oetiker.ch/mrtg/doc/mrtg-unix-guide.en.html.

Настройка

  WithPeak[_]: ymwd
  XSize[_]: 300
  XScale[_]: 1.5
  Options[_]: growright, transparent
  # Каталог для графиков. 
  WorkDir: /usr/abills/webreports/
   
  # Мониторинг загрузки fxp2 интерфейса на локальном сервере
  Target[vpn_traf]: `/usr/local/sbin/rstats iface fxp2`
  Options[vpn_traf]: growright, transparent
  MaxBytes[vpn_traf]: 12500000
  Title[vpn_traf]: VPN Interface
  PageTop[vpn_traf]: <H1>Traffic Analysis for VPN interface </H1>
  
  # Мониторинг количества активных VPN соединений
  Target[vpn_count]: `/usr/local/sbin/rstats tun_count`
  Ylegend[vpn_count]: VPN Counts
  ShortLegend[vpn_count]: &nbsp;Users&nbsp
  Options[vpn_count]: gauge,nopercent,noinfo,transparent,growright
  MaxBytes[vpn_count]: 200
  Title[vpn_count]: VPN Interface count
  PageTop[vpn_count]: <H1>VPN interface count</H1>
  Legend1[vpn_count]: Total users logged in
  Legend2[vpn_count]: Unique users logged in
  Legend3[vpn_count]: Maximal 5 Minute Incoming Traffic
  Legend4[vpn_count]: Maximal 5 Minute Outgoing Traffic
  LegendI[vpn_count]: &nbsp;Total Users:
  LegendO[vpn_count]: &nbsp;Unique Users:
  Colours[vpn_count]: SILVER#C0C0C0,BLACK#000000,DARKGREEN#006600,VIOLET#ff0

#Server load from local server
Target[server-load]: `/usr/local/sbin/rstats load`
Title[server-load]: Abills billing CPU load
PageTop[server-load]: <h1>  portal.caspel.net CPU load</H1>
MaxBytes[server-load]: 500
Ylegend[server-load]: Load Avg
Options[server-load]: gauge,nopercent,noinfo,growright,transparent
ShortLegend[server-load]: &nbsp;Percent&nbsp
Legend1[server-load]: CPU Load 1 Minute Avgerage
Legend2[server-load]: CPU Load 5 Minute Average
Legend3[server-load]: Maximal 5 Minute Incoming Traffic
Legend4[server-load]: Maximal 5 Minute Outgoing Traffic
LegendI[server-load]: &nbsp;CPU Load 1 Min. Avg.:
LegendO[server-load]: &nbsp;CPU Load 5 Min. Avg.:
Colours[server-load]: RED#ff0000,BLACK#000000,DARKGREEN#006600,VIOLET#ff00ff


Для отображения статистики по радиусу, нужно:

В /usr/local/etc/mrtg/mrtg.cfg добавить содержимое файла mrtg_radius.cfg из директории rstat.

cp /usr/local/etc/raddb/sites-available/status /usr/local/etc/raddb/sites-enabled/

Перезапускаем радиус.
Создаём центральную страницу для графиков. Для дистрибутива ABillS каталог /usr/abills/webreports/.

indexmaker /usr/local/etc/mrtg/mrtg.cfg > /usr/abills/webreports/index.html


https://your.host:9443/reports/


*/5     *       *       *       *       root  /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg


На некоторых системах mrtg может ругаться на некорректную работу с UTF-8

В таком случае запускаем указывая env LANG=C :

*/5     *       *       *       *		root	env LANG=C  /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg


Настройка мониторинга с удалённого сервера

Если VPN работает на удалённом сервере, тогда на локальном сервере правим в mrtg.cfg

/usr/local/sbin/rstats меняем на /usr/local/bin/rstatc remotehost 

remotehost - Адрес удалённого сервера
На удалённом сервере.
tar zxvf rstat.tgz
cd rstat
cp rstats /usr/local/sbin/


rstats         30003/tcp

При использовании inetd:
Правим /etc/inetd.conf

  rstats  stream  tcp     nowait  root    /usr/local/sbin/rstats rstats

Перезагружаем inetd

killall -1 inetd
При использовании xinetd:
/etc/xinetd.d/rstats
 service rstats
{
    disable                 = no
    port                    = 30003
    socket_type             = stream
    protocol                = tcp
    wait                    = no
    user                    = root
    passenv                 = PATH
    server                  = /usr/local/sbin/rstats
    env                     = HOME=/var/log
}

Перезапуск сервиса:

/etc/rc.d/xinetd restart

Дополнительно


В админ панели по пути

Настройка > Сервер доступа > выбрать NAS  > MRTG доступна генерация mrtg config для выбранного NAS

Генерируется конфиг путем опроса NAS по SNMP соотвественно выбранного темплейта.

Темплейты размещены в  /usr/abills/misc/mrtg/templates

ПараметрЗначение
MRTG WorkDirРабочая директория для MRTG
SNMP CommunitySNMP коммюнити для опроса
MRTG TemplateПредустановленный темплейт



Включение SNMP на Cisco:

snmp-server community abills RO 50

На сервере выполняем следующие команды :

# по желанию, работаем в отдельной рабочей директории
mkdir -p /usr/abills/webreports/cisco-mrtg
# опрашиваем по snmp коммюнити abills , Cisco с ip адресом 10.0.0.1 и создаем mrtg config
cfgmaker --global 'WorkDir: /usr/abills/webreports/cisco-mrtg' --output /etc/mrtg/cisco.cfg abills@10.0.0.1
# в конфиге просматриваем и правим данные (имена графиков, расположение и т.д.) для лучшей визуализации или оставляем как есть
# генерируем html с данными
indexmaker /etc/mrtg/cisco.cfg > /usr/abills/webreports/cisco-mrtg/index.html
# добавляем в крон
vim /etc/crontab
*/5     *       *       *       *       root  /usr/local/bin/mrtg /usr/local/etc/mrtg/cisco.cfg




Минимальный интервал обновления графиков 5 мин