How to monitor single ip with MRTG

По принцип MRTG има възможност да рисува графика на интерфейса, но в моя случай искам да правя графики на отделни айпи адреси на които моя интерфейс е гейт. В моя случай MRTG сървъра и трафик сървъра / кръстен е fw / са различни машини.

За целта съм направил следното :

1. Направих ssh ключ чрез които достъпвам fw без парола

2. На fw добавих 2 реда в таблица mangle :

iptables -t mangle -I FORWARD -s 10.0.20.2 -j MARK --set-mark 0xa101
iptables -t mangle -I FORWARD -d 10.0.20.2 -j MARK --set-mark 0xd101

3. Написах си малък скрипт кръстен “traffic-counter.sh” и го сложих в /root/ :

#!/bin/bash
iptables -t mangle -vxnL | grep "$1"| awk '{ print $2 }'

4. Написах скрипт на MRTG сървъра които да взима инфото от fw и го кръстих /web-bg/check-traffic-fw.sh:

#!/bin/bash
/usr/bin/ssh root@fw 'sh /root/traffic-counter.sh 10.0.20.2' > /web-bg/traffic-stats/10.0.20.2.txt

Тук можем да добавим колкото си искаме айпи адреси като предварително сме ги добавили в mangle на fw
5. Направих и крон през 1 минута които да прави проверките :

*/1 * * * * root /web-bg/check-traffic-fw.sh >/dev/null >/dev/null

6. Накрая следва и конфига в mrtg.cfg за цялата тая работа :

Title[fw-traffic-10.0.20.2]: detailed fw traffic for 10.0.20.2
Target[fw-traffic-10.0.20.2]: `cat /web-bg/traffic-stats/10.0.20.2.txt`
MaxBytes[fw-traffic-10.0.20.2]: 1250000
AbsMax[fw-traffic-10.0.20.2]: 3750000
Directory[fw-traffic-10.0.20.2]: fw-traffic
Options[fw-traffic-10.0.20.2]: growright, bits, unknaszero, noinfo, pngdate
PageTop[fw-traffic-10.0.20.2]:

fw traffic for 10.0.20.2

И в обобщение ето и резултата 🙂
How to monitor single ip with MRTG