/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
Настройка
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]: Users  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]: Total Users: LegendO[vpn_count]: 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]: Percent  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]: CPU Load 1 Min. Avg.: LegendO[server-load]: 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.htm
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
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
Дополнительно
Включение 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