IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Eines de monitorització. Control d'una xarxa, SNMP

SNMP

Definició: SNMP és un protocol del nivell d'aplicació que facilita l'intercanvi d'informació d'administració entre dispositius de xarxa.
  • Utilitza un servei no orientat a connexió (protocol UDP)
  • Permet als administradors supervisar de forma remota els dispossitius d'una xarxa.
  • Hi han 3 versons del protocol:
  • Les més utilitzades són SNMPv1 i SNMPv2.
  • A la nova versió SNMPv3 s'han introduït força canvis sobretot respecte al tema de seguretat però encara no està gaire suportat per la industria.

Faustomendoza1ArquitecturaSNMP.png


Components bàsics d'una xarxa.

  • Dispositius administrats
  • Agents de programari
  • Sistemes administradors de xarxa.
  • Els dispositius administrats tenen instal·lat un programari (agent) que sencarrega de recollir i emmagatzemar la informació de la màquina administrada.
  • La informació emmagatzemada es posa a disposició dels sistemes administradors de la xarxa mitjançant SNMP.

Management Information Bases (MIB)

  • Emmagatzema una col·lecció d'informació d'administració que està organitzada jeràrquicament.
  • Són les dades que guarden els dispositius administrats i que es posen a disposició dels gestors de la xarxa (NM) a través de SNMP.
  • Sovint els dispositius administrats s'anomenen objectes MIB.
  • Es tracta doncs d'una base de dades jeràrquica on cada node de l'arbre és un objecte. Hi ha dos tipus d'objectes:
  • Escalars: Els objectes tabulars són simplement una variable.
  • Tabulars: Estan formats per altres objectes.

Jerarquia MIB pot ser representada com un arbre

Faustomendoza1SNMP jerarquia.png

IMPORTANT: Quan no s'indica al SNMP quin objecte volem buscar(la ruta sencera), buscarà a partir de la seva l'arrel que per defecte és el mgmt

  • Cada objecte té un identificador (object ID) que l'identifica de forma única dins de l'arbre MIB.
  • L'estructura de l'arbre MIB està força definida tot i que localitzar un paràmetre específic per a un dispositiu específic dependrà en gran part en conèixer l'arbre MIB del fabricant del dispositiu. No tots els dispositius proporcionen totes les variables.
Instal·lació del client
sudo apt-get install snmp snmpd

Protocol SNMP

  • SNMP utilitza UDP (servei no orientat a connexió) per enviar missatges entre els administradors de xarxa i els agents instal·lats als dispositius administrats.
  • S'utilitza UDP per assegurar-se que les tasques d'administració no afectaràn al rendiment de la xarxa.
  • Ports utilitzats.
[email protected]:~$ cat /etc/services | grep snmp
snmp		161/tcp				# Simple Net Mgmt Protocol
snmp		161/udp				# Simple Net Mgmt Protocol
snmp-trap	162/tcp		snmptrap	# Traps for SNMP
snmp-trap	162/udp		snmptrap	# Traps for SNMP


[email protected]:~$ sudo nmap -sU localhost -p 161

Starting Nmap 5.21 ( http://nmap.org ) at 2012-04-12 19:54 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00099s latency).
PORT    STATE SERVICE
161/udp open  snmp
Missatges SNMP
  • GetRquest: l'administrador del sistema sol·licita a l'agent que li retorni el valor d'un objecte a partir del seu identificador.
  • GetNextRequest:
  • SetRquest:
  • GetResponse:


Client SNMP

  • El client snmp (paquet snmp) proporciona diverses eines per treballar amb snmp.
  • Consulta de dades: snmpget, snmpgetnext, snmpwalk, snmpbulkget, snmpbulkwalk
  • Establiment de dades snmpset
  • Obtenir l'espai lliure: snmpdf
  • Comandes de consulta de l'espai lliure, l'estat de la xarxa i altres...
  • Totes les comandes tenen el seu corresponent manual unix (man)

Comanda SNMPWALK

[email protected]:~$ snmpwalk -Os -c public -v 2c 10.36.253.1 system
sysDescr.0 = STRING: RouterOS RB600A
sysObjectID.0 = OID: enterprises.14988.1
sysUpTimeInstance = Timeticks: (191750700) 22 days, 4:38:27.00
sysContact.0 = STRING: [email protected]
sysName.0 = STRING: TortosaINSEbreRd1
sysLocation.0 = STRING: TortosaINSEbre
sysServices.0 = INTEGER: 78


Cacti

  • Cacti és una aplicació web XAMP (Apache, Mysql i PHP multiplataforma) per a crear gràfiques de dispositius de xarxa.
  • La interficie està molt elaborada i és fàcil d'utilitzar.
  • Utilitza RRDTool, MRTG i SNMP per monitoritzar dispositius de xarxa.
  • Com funciona:
  • Cacti cumpleix 3 tasques:
  • Data Retrieval: Cal definir com s'obtenen les dades a monitoritzar.
  • Data Storage: Cal definir com s'emmagatzemen les dades.
  • S'utilitza el RRDTOOL per emmagatzemar les dades.
  • És completament configurable,
  • Data Presentation: Cal definir com es presenten les dades a monitoritzar.

Requeriments

Cacti depèn de:

  • LAMP: és una aplicació web desenvolupada en PHP i que utilitza MySQL com a gestor de base de dades
  • RRDTool: L'eina de Tobi Eitiker per a realitzar gràfiques.
  • net-snmp: client snmp.

Pre Instal·lació

LAMP
  • Instal·lem l servidor LAMP amb la següent comanda:
$ sudo tasksel
Usuari-Gerardsese-CDS-00.png

Ara ens demanarà una paraula de pas per a l'usari root de MySQL i també ens instal·larà el MySQL Server:

Usuari-Gerardsese-CDS-01.png

NOTA: Potse no tenim instal·lada l'eina tasksel. Per fer-ho executem $ sudo apt-get install tasksel

NOTA: Seleccionem el que volem instal·lar pitjant espai

Instal·lació

  • Instal·lem el Cacti amb la següent comanda:
$ sudo apt-get install cacti
  • Ens apareix un avís que ens indica que ha canviat una ruta i tnm ue fer una modificació a un fitxer. Ho farem un cop instal·lada l'aplicació:
Usuari-Gerardsese-CDS-02.png
  • Seleccionem quin tipus de servidor utilitzarem:
Usuari-Gerardsese-CDS-03.png
  • Ara ens farà una sèrie de preguntes per a acabar de configurar la base de dades del Cacti:
Usuari-Gerardsese-CDS-04.png


Usuari-Gerardsese-CDS-05.png
  • Introduïm la paraula de pas per a Cacti i després la paraula de pas de MySQL:
Usuari-Gerardsese-CDS-06.png


NOTA: La paraula de pas de cacti per accedir a la base de dades es guardarà a un fitxer de configuració. No utilitzeu cap paraula de pas important ja que serà visible. Podeu utilitzar mkpasswd per generar una paraula de pas aleatòria i segura ja que no calda recordar-la

Fitxers

  • Els fitxers de configuració son els següents:
$ dpkg -L cacti | grep etc
/etc
/etc/cacti
/etc/cron.d
/etc/cron.d/cacti
/etc/logrotate.d
/etc/logrotate.d/cacti
  • Documentació:
$ dpkg -L cacti | grep doc
...
/usr/share/doc/cacti
...

Accés

http://localhost/cacti
  • La primera vegada que accedim apareixerà l'assistent per configurar-lo. Fem clic a "Next":
Usuari-Gerardsese-CDS-07.png
  • Seleccionem "New Install" per a una instal·lació nova i fem clic a "Next":
Usuari-Gerardsese-CDS-08.png
  • A la següent pàgina ens comproba si tenim totes les aplicacions necessàries per a que Cacti funcioni instal·lades. Si es així fem clic a "Finish":
Usuari-Gerardsese-CDS-09.png
  • Ens condueix a la pàgina principal on ens demanarà l'usuari i la paraula de pas:
Usuari-Gerardsese-CDS-10.png

IMPORTANT: La primera vegada que accedim l'usauri i la paraula de pas seran les següents:

Usuari:admin
Paraula de pas: admin
  • Ara ens demanarà canviar la paraula de pas per a l'usuari admin:
Usuari-Gerardsese-CDS-11.png
  • Pantalla d'inici:
Usuari-Gerardsese-CDS-12.png

Configuració

Anem a monitoritzar una màquina (host), ho podem fer a la mateixa màquina o a una màquina de la xarxa.

  • Primer que res instal·lem el paquet snmpd per a fer de servidor de monitorització:
$ sudo apt-get install snmp
  • Ara descarreguem el paquet snmp. Aquest paquet el tenim que instal·lar a tots els hosts que volguèssim monitoritzar:
$ sudo apt-get install snmpd
  • Per qüestió de llicències cal descarregar-nos els mibs:
$ sudo apt-get install snmp-mibs-downloader
  • Ara tenim que configurar una línia al fitxer /etc/snmp/snmp.conf per a activar les bases de dades:
$ sudo nano/etc/snmp/snmp.conf
#
# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loaging them by commenting out the following line.
#mibs :


Host Local
  • Fem clic a "Console" i després a "New Graph":
Usuari-Gerardsese-CDS-13.png
  • Seleccionem "Create New Host":
Usuari-Gerardsese-CDS-14.png
  • Emplenem la següent informació:
Usuari-Gerardsese-CDS-15.png
Description: Posem un nom de màquina. Per exemple "Server"
Hostname: Posem la IP de la màquina local (127.0.0.1)
Host template: Posem "Generic SNMP-enabled host" per a que ens carregui la plantilla
Downed Device Detection: Posem "SNMP Uptime". És el mètode com Cacti determina si un host es pot monitoritzar
  • Fem clic a "Create"
Host en Xarxa
  • En el cas d'afegir un host en xarxa, el farem de la mateixa forma d'abans però amb la diferència de que a l'opció Hostname possarem la IP del host a monitoritzar, hem de recordar de que les plantilles ens proporciona valors per defecte més intel·ligents per aquest tipus de huèsped.

Faustomendoza1cacti-01.png

  • Una vegada afegit el dispossitiu ens apareixerà les següents linies:

Faustomendoza1cacti-02.png

IMPORTANT: S'ha de tenir en compte de tenir instal·lat el paquet snmpd a la màquina a monitoritzar ja que en cas contrari obtindrem un error.

Possibles problemes

En alguns sistemes el servidor no ens afegia la màquina client, llavors a la màquina client es féiem el següent: Anirem a l'arxiu /etc/default/snmpd

$ sudo joe /etc/default/snmpd 

I canviarem la linia següent:

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'

Per:

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid' 

reiniciarem el servei:

$ sudo /etc/init.d/snmpd restart

I per últim permetrem l'accès anant al fitxer /etc/snmp/snmpd.conf

$ sudo joe /etc/snmp/snmpd.conf

Buscarem la linia:

com2sec paranoid default public 

I la canviarem per:

com2sec readonly default public 

Per aplicar els canvis reiniciarem el servei snmpd

$ sudo /etc/init.d/snmpd restart
Afegir Gràfica

Una vegada ja tenim afegit un dispossitiu en aquest cas un servidor amb varies targetes de xarxa, anem a monitoritzar una targeta específica d'aquest servidor i el farem de la següent forma:

  • Farem clic a afegir una gràfica:

Faustomendoza1cacti-03.png

  • Ens apareixerà la següent finestra en la que ens assegurarem de seleccionar els host a monitoritzar, i en aquest cas seleccionar nomès una targeta de xarxa, per exemple la interficie aula4 i farem clic a Create:

Faustomendoza1cacti-04.png

  • Podem veure com tenim diferents apartats per monitoritzar, per una part tenim la monitorització del recursos de l'ordinador, CPU, RAM, espai de disc, per l'altra totes les interficies de xarxa i per últim totes les particions del sistema.


  • Si volem monitoritzar totes les interficies de xarxa nomès caldrà seleccionar-les totes i automàticament començarà a registrar les estadístiques de cada interficie, les gràfiques creades les podem veure a l'apartat següent:

Faustomendoza1cacti-05.png


  • Podem veure el resutat d'una gràfica que hem creat abans, en aquest cas es tracta de la tarja de xarxa aula2 i es veu l'ús de la xarxa d'aquesta classe, hi han quatre taules, la primra s'actualitza cada 5 minuts i són les estadístiques del dia, la segona indica les estadístiques de la setmana, la tercera és mensual i l'última anual.

Faustomendoza1cacti-09.png

lm-sensors