O soluție simplă pentru monitorizarea centralizată o reprezintă jurnalizarea la distanță (remote). Toate echipamentele din rețea vor trimite mesajele de jurnalizare (logging) către un server central.
În Linux, daemon-ul ce asigură jurnalizarea este rsyslogd
. Acesta este deja instalat pe majoritatea sistemelor Linux.
În mod implicit, rsyslogd
nu acceptă conexiuni din exterior. Pentru a activa această opțiune, trebuie editat fișierul de configurare /etc/rsyslog.conf
și decomentate liniile ce activează recepționarea de mesaje UDP sau TCP.
Vom realiza acest lucru pe statia monitor
:
# provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
După ce am decomentat liniile trebuie să resetăm serviciul rsyslog
:
root@monitor:~# /etc/init.d/rsyslog restart [ ok ] Stopping enhanced syslogd: rsyslogd. [ ok ] Starting enhanced syslogd: rsyslogd.
Pentru ca un router Cisco sa trimită mesaje de jurnalizare (logging) către un server extern, adresa acestui server trebuie configurată în modul global. În cazul nostru, vom configura adresa IP a stației monitor
pe ruterul R1
:
R1(config)# logging 192.168.1.4
De asemenea, se poate specifica și nivelul de logging. Vor fi trimise doar mesajele cu un nivel cel puțin la fel de grav ca nivelul specificat:
R1(config)# logging trap debugging
Pentru a verifica funcționalitatea, activați debugging-ul protocolului ICMP pe ruterul R1
și executați comanda ping
:
R1#debug ip icmp ICMP packet debugging is on R1#ping google.ro Translating "google.ro"...domain server (8.8.8.8) [OK] Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 173.194.70.94, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 40/40/40 ms
După cum se observă nu a apărut în consola ruterului nici un mesaj de debug. Vom verifica fișierul /var/log/syslog
de pe stația monitor
:
root@monitor:~# cat /var/log/syslog Mar 9 15:56:57 192.168.1.1 19: Mar 9 13:56:56.524: ICMP: echo reply rcvd, src 173.194.70.94, dst 192.168.1.1 Mar 9 15:56:57 192.168.1.1 20: Mar 9 13:56:56.564: ICMP: echo reply rcvd, src 173.194.70.94, dst 192.168.1.1 Mar 9 15:56:57 192.168.1.1 21: Mar 9 13:56:56.608: ICMP: echo reply rcvd, src 173.194.70.94, dst 192.168.1.1
Opriți debugging-ul protocolului ICMP:
R1#no debug ip icmp ICMP packet debugging is off
Configurați pe ruterul R2 jurnalizarea remote și testați funcționalitatea:
Soluția prezentată până acum are dezavantajul că toate mesajele sunt stocate în același fișier. Dacă dorim ca mesajele de la un anumit ruter să fie stocate într-un fișier separat, vom folosi opțiunea facility
ce ne permite clasificarea mesajelor de logging. Pe ruter R1 se configurează logging facility
diferit:
R1(config)# logging facility local1
Pe statia monitor
, în /etc/rsyslog.conf
vom specifica un fișier destinație pentru tipul de logging local1
, după care vom reseta serviciul:
root@monitor:~# cat /etc/rsyslog.conf |grep -B 2 R1 #### RULES #### ############### local1.* /var/log/R1.log root@monitor:~# /etc/init.d/rsyslog restart
local1
) sunt predefinite și NU pot fi înlocuite cu orice șir de caracter. Caracterul .
plasat după tipul de logging (local1
) este urmat nivelul de logging pentru care se va face scrierea în fișier. În acest caz caracterul *
semnifică orice nivel de logging al mesajelor.
Pentru testare:
R1#debug ip icmp ICMP packet debugging is on R1#ping acs.pub.ro Translating "acs.pub.ro"...domain server (8.8.8.8) [OK] Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 141.85.227.151, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/20/32 ms root@monitor:~# cat /var/log/R1.log Mar 9 16:11:16 192.168.1.1 45: Mar 9 14:11:15.651: ICMP: echo reply rcvd, src 141.85.227.151, dst 192.168.1.1 Mar 9 16:11:16 192.168.1.1 46: Mar 9 14:11:15.655: ICMP: echo reply rcvd, src 141.85.227.151, dst 192.168.1.1 Mar 9 16:11:16 192.168.1.1 47: Mar 9 14:11:15.687: ICMP: echo reply rcvd, src 141.85.227.151, dst 192.168.1.1
Configurați un fișier separat de logging și pentru ruterul R2
.