rstat
Клиент-серверное приложение для мониторинга и построения графиков загрузки сети и учёта работы различных сервисов. Для построения графиков используется 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 пакет с сайта http://oss.oetiker.ch/mrtg/download.en.html
Пример mrtg.cfg:
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
Создаём центральную страницу для графиков. Для дистрибутива ABillS каталог /usr/abills/webreports/.
# indexmaker /usr/local/etc/mrtg/mrtg.cfg > /usr/abills/webreports/index.htm
Посмотреть графики можно за адресом:
https://your.host:9443/reports/
/etc/crontab
*/5 * * * * root /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/
Правим /etc/services
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