On Wed, 2001-09-19 at 03:33, Silviu Marin-Caea wrote:
>
> Exista vreo reteta scurta de tot ca sa vad cu mrtg traficul pe o placa
> de retea? Sau trebuie sa ma koiesc mii de ani sa inteleg toate
> sofisticariile alea. De nevoie o s-o fac si pe asta.
>
> Ideea este ca vreau un lucru simplu, si ar fi fost misto daca-l puteam
> obtine pe o cale simpla, dupa aia urmand sa aprofundez, daca am
> nevoie.
>
> Routerul este un linux cu doua placi de retea.
>
> mrtg-ul l-am instalat pe el, din rpm, de la ei de pe site. N-a zis
> nimic de rau, deci presupun ca dependintele sunt verificate.
Deci, daca vrei sa urmaresti traficul pe aceeasi masina pe care rulezi
mrtg, nu ai nevoie de snmp. snmp ai nevoie doar ca sa faci chestii
dintr-astea _prin_retea_ (adica sa monitorizezi alte masini).
"Reteta scurta de tot":
Ce este, de fapt, mrtg? Este o chestie care, daca-i dai la intervale
regulate doua numere, iti trage un grafic cu ele (linia verde si linia
albastra). Ce sint numerele alea de fapt? Pe mrtg nu-l intereseaza. Pot
sa fie numarul de la pantofi. ;-)
Asadar, pentru a rezolva problema ta, si pentru a intelege intr-adevar
ce ai de facut, si pentru a nu mai avea nevoie sa intrebi asta vreodata
:-), trebuie de fapt sa rezolvi doua probleme mai simple:
1. Sa configurezi corect mrtg astfel incit, atunci cind il apelezi cu un
script care-i comunica patru linii la fiecare 5 minute, primele doua
linii fiind numere, sa-ti deseneze corect un grafic.
2. Sa scrii un script care, folosind comenzi ipchains/iptables, sa
extraga counterii de trafic de pe o interfata si sa-i trimita la stdout
(adica sa-i afiseze) intr-un format cum ii place lui mrtg (patru linii,
primele doua fiind variabilele monitorizate).
Pentru problema 1:
Presupun ca ai instalat mrtg in $dir="/usr/local/mrtg-2" (rpm-ul parca
instaleaza in alta parte, asa ca adapteaza si tu, ce pana mea...).
Trebuie sa creezi $dir/etc/trafic.conf care sa arate cam asa:
#######################
# global parameters
WorkDir: /var/www/traffic
Refresh: 300
Interval: 5
IconDir: /mrtgicons
Options[_]: growright, transparent
# per-target parameters
# eth0
Target[eth0]: `/usr/local/mrtg-2/bin/traf-get eth0`
Title[eth0]: Traffic through eth0
PageTop[eth0]: <h2>Traffic through eth0</h2>
MaxBytes[eth0]: 1000000
AbsMax[eth0]: 1100000
Unscaled[eth0]: dwmy
YLegend[eth0]: kBytes
# eth1
Target[eth1]: `/usr/local/mrtg-2/bin/traf-get eth1`
Title[eth1]: ...
...
#########################
Pentru problema 2:
Concepi regulile de iptables care sa "prinda" traficul prin interfetele
respective.
Le aplici de mina.
Verifici ca merg.
Le scrii in script-urile sistemului si te asiguri ca sint aplicate la
reboot.
Acuma creezi /usr/local/mrtg-2/bin/traf-get care sa arate cam asa:
#########################
#!/bin/sh
ipt="/sbin/iptables"
case $1 in
eth0)
in=`${iptables} -L -n -v blah` | grep blah | cut blah
out=`${iptables} blah
;;
eth1)
in=blah
out=blah
;;
*)
in="0"
out="0"
esac
echo $in
echo $out
echo "0"
echo $1
#########################
...unde "blah" inseamna ca $in si $out trebuie sa fie exact valorile
alea in bytes pentru trafic asa cum sint prinse de iptables. Adica, daca
rulezi "./traf-get eth0" trebuie sa-ti afiseze pe primele doua linii
("formatul mrtg") exact counterii de trafic din iptables, in bytes.
Acum cuplezi problemele 1 si 2.
Ruleaza "crontab -e" si adauga linia asta:
*/5 * * * * /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/etc/trafic.conf
Verifici in timp ca graficele construite sint reale.
Copiezi iconurile mrtg in /var/www/mrtgicons
Creezi index.html in /var/www/trafic care sa dea link-uri
corespunzatoare la html-urile generate (eye-candy, da' util!).
Daca vrei sa mai adaugi o interfata:
- adaugi inca un caz la case-ul din traf-get
- adaugi target-ul corespunzator in trafic.conf
Daca vrei sa extinzi monitorizarea la alte masini de pe retea, prin
snmp, se poate in multe feluri, dar merge sigur daca adaugi la traf-get
cazuri noi cu comenzi snmpwalk/snmpget corespunzatoare (pe verificate).
;-)
Este recomandabil sa separi script-urile si fisierele de configurare si
liniile din crontab per scopul urmarit:
- traf-get, traffic.conf si linie in crontab pentru trafic
- cpu-get, cpu.conf si linie in crontab pentru monitorizare CPU
- disk-get, disk.conf....
- mem-get....
Sau poti separa per masini, sau per culoarea de la ciorapi, cum iti vine
mai comod. ;-)
Pentru trafic ai doua variabile per target (in si out). Pentru
target-urile care au o singura variabila (CPU, memory, etc.) poti pur si
simplu sa echo-ezi de doua ori aceeasi valoare in script-ul *-get
corespunzator (adica calculezi efectiv pe $in, si pe out il faci
"out=$in" dup-aia).
Gata. ;-)
--
Florin Andrei
"Our kernel does have source control: its name is
Linus Torvalds, CVS with a brain." - Nicholas Knight
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
unsubscribe from this list.