/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 |
apt-get install mrtg |
pkg install mrtg |
yum 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#ff00ff #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.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 |
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 Community | SNMP коммюнити для опроса |
| 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 мин |