proyectos: sistema de monitorización nagios aplicado al centro de estudios stucom

81
Administració de Sistemes Informàtics en Xarxa 2011 - 2012 Sistema de monitorització Nagios aplicat al Centre d’Estudis Stucom Projecte de síntesi Jordi Muria Badia i Bernat Romeu Llabrés

Upload: francesc-perez

Post on 12-Jun-2015

1.406 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Administració de Sistemes Informàtics en Xarxa

2011 - 2012

Sistema de monitorització

Nagios aplicat al Centre

d’Estudis Stucom Projecte de síntesi

Jordi Muria Badia i Bernat Romeu Llabrés

Page 2: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

Índex

1 Introducció ............................................................................................................................ 1

1.1 Divisió de tasques .......................................................................................................... 2

2 Què és Nagios? ...................................................................................................................... 3

2.1 Versions de Nagios ........................................................................................................ 4

2.1.1 Nagios Core ........................................................................................................... 4

2.1.2 Nagios Fusion ........................................................................................................ 5

2.1.3 Nagios XI ................................................................................................................ 5

3 Funcionament de Nagios ....................................................................................................... 6

3.1 Estructura de Nagios ..................................................................................................... 7

3.2 Definició d'objectes ....................................................................................................... 8

3.3 Utilització de plugins ..................................................................................................... 9

4 Valoració dels softwares de monitorització descartats ...................................................... 10

4.1 Pandora FMS ............................................................................................................... 10

4.2 Cacti ............................................................................................................................. 10

5 Conceptes de monitorització .............................................................................................. 11

5.1 SSL ............................................................................................................................... 11

5.1.1 Funcionament SSL ............................................................................................... 11

5.2 Protocol SNMP ............................................................................................................ 12

5.2.1 Components bàsics ............................................................................................. 13

5.2.2 Comandaments bàsics ......................................................................................... 13

5.2.3 OID i MIB ............................................................................................................. 13

5.3 MRTG ........................................................................................................................... 15

6 Diagrama de l’estructura de Stucom................................................................................... 16

7 Diagrama de l’entorn virtual ............................................................................................... 17

8 Preparació del servidor Nagios ........................................................................................... 18

8.1 Instal·lació d’Ubuntu Server ........................................................................................ 18

8.2 Instal·lar interfície gràfica bàsica (OPCIONAL) ............................................................ 19

8.3 Configurar IP estàtica .................................................................................................. 19

9 Instal·lació de Nagios ........................................................................................................... 20

9.1 Crear Informació de contes ......................................................................................... 20

9.2 Descarregar Nagios Core, Plugins i Daemon NRPE ..................................................... 21

9.3 Compilar i instal·lar Nagios .......................................................................................... 21

9.3.1 Configurar la interfície web ................................................................................. 22

9.4 Compilar i instal·lar Nagios Plugins ............................................................................. 22

9.5 Compilar i instal·lar Daemon NRPE ............................................................................. 23

9.5.1 Provar la comunicació amb el daemon NRPE ..................................................... 23

9.5.2 Crear definició de comandaments NRPE............................................................. 23

9.6 Iniciar Nagios ............................................................................................................... 24

9.6.1 Accedir a la interfície web ................................................................................... 24

10 Preparació de màquines Windows client ........................................................................ 25

10.1 Instal·lació i configuració de l'agent Nagios ................................................................ 26

10.1.1 Funcionament ..................................................................................................... 26

10.1.2 Instal·lació i configuració ..................................................................................... 26

Page 3: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

11 Preparació de màquines Linux client .............................................................................. 28

11.1 Funcionament de l'agent NRPE ................................................................................... 28

11.1.1 Tipus de funcionament ........................................................................................ 28

11.2 Instal·lació de l'agent NRPE ......................................................................................... 29

11.2.1 Crear conta d'usuari "nagios" .............................................................................. 29

11.2.2 Instal·lar el Nagios plugins ................................................................................... 29

11.2.3 Instal·lar xinetd, llibreria SSL i Build Essential ..................................................... 29

11.2.4 Instal·lar el daemon NRPE ................................................................................... 30

11.2.5 Testejar el daemon NRPE localment ................................................................... 31

11.2.6 Obrir normes de firewall ..................................................................................... 31

12 Preparació de la màquina PfSense .................................................................................. 32

12.1 Instal·lació i configuració inicial de l'agent NRPE ........................................................ 32

13 Configuració del servidor Nagios .................................................................................... 33

13.1 Backups dels arxius de configuració ............................................................................ 33

13.2 Preparació de l'arxiu de configuració principal de Nagios .......................................... 34

13.3 Plantilles de Nagios ..................................................................................................... 35

13.3.1 Plantilles genèriques de host i de servei ............................................................. 35

13.4 Imatges dels host en la interfície web ......................................................................... 36

13.5 Monitorització del servidor Nagios ............................................................................. 37

13.5.1 Plantilla localhost i local-service (templates.cfg) ................................................ 37

13.5.2 Host i hostgroup (localhost.cfg) .......................................................................... 37

13.5.3 Serveis (localhost.cfg) .......................................................................................... 38

13.5.4 Interfície web ...................................................................................................... 38

14 Monitorització de Windows Server ................................................................................. 39

14.1 Plantilla i definicions ................................................................................................... 39

14.1.1 Comandaments personalitzats (commands.cfg) ................................................. 42

15 Monitorització de Ubuntu Server.................................................................................... 43

15.1 Plantilla i definicions ................................................................................................... 43

15.2 Definicions al host remot ............................................................................................ 44

16 Monitorització de servidors externs ............................................................................... 46

16.1 Plantilla i definicions ................................................................................................... 46

16.1.1 Comandaments personalitzats (commands.cfg) ................................................. 47

17 Monitorització de PfSense .............................................................................................. 48

17.1 Plantilla i definicions ................................................................................................... 48

18 Monitorització dels PC's d'aula ....................................................................................... 50

18.1 Plantilla i definicions ................................................................................................... 50

19 Grups de Serveis .............................................................................................................. 52

20 Monitorització d'elements de xarxa ............................................................................... 53

20.1 Plantilla i definicions ................................................................................................... 53

21 Integrar SNMP a Nagios .................................................................................................. 55

21.1 Definicions ................................................................................................................... 56

22 Actualitzar Nagios............................................................................................................ 59

22.1 Procés d'actualització .................................................................................................. 59

23 Afegir addon pnp4nagios ................................................................................................ 60

23.1 Funcionament ............................................................................................................. 60

Page 4: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

23.1.1 Mode Síncron ...................................................................................................... 60

23.1.2 Mode Massiu ....................................................................................................... 60

23.1.3 Mode Massiu amb NPCD ..................................................................................... 61

23.2 Instal·lació de pnp4nagios ........................................................................................... 61

23.3 Configuració en mode síncron .................................................................................... 62

23.4 Verificació de funcionament ....................................................................................... 63

23.5 Habilitar interfície web ................................................................................................ 64

23.6 Aplicació de popups .................................................................................................... 66

24 Configurar Postfix per a enviar alertes e-mail ................................................................. 67

24.1 Afegir i configurar usuaris de contacte ....................................................................... 67

24.2 Instal·lació i configuració de Postfix ............................................................................ 68

25 Configuració del sistema d'alertes .................................................................................. 71

25.1 Establiment d'alertes................................................................................................... 72

26 Valoració final i conclusions ............................................................................................ 74

27 Webgrafia ........................................................................................................................ 75

ANNEX: Script memòria RAM Linux ........................................................................................... 76

Page 5: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

1

1 Introducció

Aquest document és un informe que resumeix les tasques dutes a terme en el progrés de

realització del projecte de síntesi, del CFGS d'Administració de Sistemes informàtics i Xarxes.

El projecte ha estat realitzat conjuntament entre els alumnes Jordi Muria Badia i Bernat Romeu

Llabrés .

L’objectiu del projecte és investigar i configurar un software de monitorització, en el nostre cas

Nagios, per aplicar-lo posteriorment a la xarxa de servidors del Centre d’Estudis Stucom.

Abans de l’aplicació pràctica, treballarem en un entorn amb

màquines virtuals, per a poder garantir que les tasques

realitzades poden ser aplicades amb èxit als servidors reals.

Els objectius d'una infraestructura de monitorització de sistemes informàtics són principalment

la prevenció d’incidències i conèixer l'aprofitament dels recursos TIC disponibles. Donat que

aquests objectius són molt importants en qualsevol entitat independentment de la seva mida

és evident que tota organització hauria de tenir el seu propi sistema de monitorització.

El primer pas seria analitzar amb detall el sistema a monitoritzar amb l'objectiu de detectar els

sistemes crítics (ja siguin màquines o serveis) pel bon funcionament de l'entitat, i crear

polítiques d'actuació davant d'incidències en els sistemes. Per exemple pot ser molt important

assegurar-se de que una aplicació web corporativa està sempre en marxa o rebre avis

d'emergència sobre el sistema de correu electrònic de la organització.

S'ha de redactar un pla d’instal·lació i integració del nou sistema de monitorització en el nostre

entorn informàtic, sempre respectant aquestes tres normes:

o Mantenir les mesures de seguretat existents.

o Minimitzar el impacte en el propi sistema a estudiar.

o Minimitzar el número de sistemes entremitjos entre el sistema de monitorització i els

sistemes crítics.

En qualsevol sistema de monitorització també s'ha de tenir en compte que s'ha de buscar una

persona que s'encarregui de monitoritzar aquest sistema, sinó estaria incomplert. Aquest punt

no s'acostuma a tenir molt en compte i és igual d'important que els anteriors.

Per últim s'ha d’escollir un bon software especialitzat i procedir a la seva instal·lació i

configuració. A Internet disposem de sistemes amb llicència lliure com és el cas de Nagios, que

és el software que nosaltres em escollit pel nostre projecte.

La complexitat de configurar Nagios, es que utilitzarem la versió Nagios Core (versió gratuïta

Open Source), on haurem de treballar amb línia de comandaments (per a totes les

configuracions que vulguem fer a Nagios, haurem de modificar una sèrie d’arxius).

Page 6: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

2

1.1 Divisió de tasques

Jordi Muria:

o Preparar les màquines virtuals que seran monitoritzades.

o Informar-se de la topologia de xarxa de Stucom.

o Investigar sobre SNMP, MRTG, SSL i altres softwares de monitorització.

o Buscar software i procediments per comprovar el funcionament de Nagios.

o Configurar el sistema de reports i alertes adient a les necessitats de l'administrador.

o Realització de la presentació PowerPoint.

Bernat Romeu:

o Investigar sobre el funcionament, instal·lació i configuració de Nagios.

o Preparació de la màquina virtual amb Ubuntu Server on s'hi instal·larà Nagios.

o Configurar Nagios i agents de monitorització.

o Integrar SNMP a Nagios.

o Maquetatge de l'informe.

Cada un dels membres s'encarregarà de redactar i documentar les seves respectives parts.

Page 7: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

3

2 Què és Nagios?

http://www.nagios.org/

Nagios és un sistema de monitorització de xarxes de codi obert àmpliament utilitzat, que vigila

els equips (hardware) i serveis (software) que se especifiquen, alertant quan el comportament

dels mateixos no sigui el desitjat.

Entre les seves característiques principals figuren la monitorització de serveis de xarxa (SMTP,

POP3, HTTP, SNMP...), la monitorització dels recursos de sistemes hardware (carga del

processador, ús dels discos, memòria, estat dels ports...), independència de sistemes

operatius, possibilitat de monitorització remota mitjançant túnels SSL xifrats o SSH, i la

possibilitat de programar plugins específics per a nous sistemes.

Es tracta d’un software que proporciona una gran versatilitat per a consultar pràcticament

qualsevol paràmetre d’interès d’un sistema, i genera alertes, que poden ser rebudes pels

responsables corresponents mitjançant correu electrònic i missatges SMS, quan aquests

paràmetres excedeixen dels marges definits per l’administrador de xarxa.

Nagios originalment s'anomenava Netsaint, nom que es va haver de canviar per coincidència

amb una altre marca comercial. Va ser creat i es actualment mantingut per Ethan Galstad,

juntament amb un grup de desenvolupadors de software que mantenen també varis

complements. Nagios va ser originalment dissenyat per a ser executat en GNU/Linux, però

també s’executa bé en variants de Unix.

Nagios està llicenciat sota la GNU General Public License Version 2 publicada per la Free

Software Fundation.

Característiques de Nagios:

Monitorització de serveis de xarxa (SMTP, POP3, HTTP, NTTP, ICMP, SNMP).

Monitorització dels recursos hardware (càrrega del processador, ús dels discs...)

Monitorització remota, a través de túnels SSL xifrats o SSH.

Disseny simple de plugins, que permeten als usuaris realitzar els seus propis controls

de serveis depenent de les seves necessitats.

Possibilitat de definir la jerarquia de la xarxa, permetent distingir entre host caiguts i

host inaccessibles.

Page 8: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

4

Notificacions als contactes quan ocorren problemes en serveis o hosts, així com quan

són resolts (a través del correu electrònic, buscapersones, Jabber, SMS, o qualsevol

mètode definit per l'usuari juntament amb el seu corresponent complement).

Possibilitat de definir controladors d'esdeveniments que executin en ocórrer un

esdeveniment d'un servei o host per a resolucions de problemes.

Rotació automàtica del fitxer de registre.

Suport per implementar hosts de monitors redundants.

Visualització de l'estat de la xarxa en temps real a través d'interfície web, amb la

possibilitat de generar informes i gràfiques de comportament dels sistemes

monitoritzats, i visualització del llistat de notificacions enviades, historial de

problemes, arxius de registres...

2.1 Versions de Nagios

Nagios és un sistema estàndard en la indústria de la monitorització, permet a les

organitzacions monitoritzar, identificar i resoldre problemes en les TI abans que afectin a

processos crítics de negoci.

Nagios Core és la versió bàsica, de codi obert i gratuïta. Permet garantir els sistemes, les

aplicacions, els serveis i els processos amb la finalitat de que estiguin funcionant correctament.

En el cas de que es produeixi una alerta es pot avisar al personal tècnic perquè solucioni el

problema abans de que causi problemes més greus.

Nagios Core serveix com un dels blocs de la fundació Nagios XI i Nagios Fusion, que són les

solucions comercials de l’empresa.

2.1.1 Nagios Core

Control integral de la supervisió de tots els components de la infraestructura.

Visibilitat de tota la xarxa d’operacions i processos de negoci.

Enviament de notificacions als administradors escollits (per mail i sms).

Permet a les organitzacions millorar els seus equips i infraestructures abans de que és

quedin obsoletes.

Generar informes segons les necessitats de l’administrador.

Permet la fàcil integració amb les aplicacions internes i de tercers.

http://www.nagios.com/products/nagioscore

Page 9: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

5

2.1.2 Nagios Fusion

Proporciona al personal d’operacions visualitzar ràpidament els problemes des de

qualsevol lloc a través de la seva infraestructura.

Permet gestionar de forma remota tots els equips que estan geogràficament separats.

Alleugera la necessitat de complexes configuracions i problemes en les transferències de

dades.

S’ha desenvolupat pensant en la seva escalabilitat sense límits. A mida que la

infraestructura es faci més gran, el sistema de monitorització pot fer-ho al mateix nivell.

Aquesta versió permet la perfecta integració amb les altres versions de Nagios. Poden

treballar de forma paral·lela.

Els sistemes servidors permeten una gestió senzilla a traves de http o https.

2.1.3 Nagios XI

Integració basada en web que permet als administradors la configuració de la interfície de

control.

Arquitectura extensible: Múltiples api proporcionen una integració senzilla amb

aplicacions internes i de tercers.

http://www.nagios.com/products/nagiosfusion

http://www.nagios.com/products/nagiosxi

Page 10: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

6

3 Funcionament de Nagios

Nagios es configura mitjançant l’ús i la modificació de fitxers. En aquests fitxers s'especifiquen

els paràmetres de Nagios, com per exemple com es comunicarà el servidor amb els agents

instal·lats en les màquines a monitoritzar.

Muntarem una estructura jeràrquica que ens permetrà una fàcil escalabilitat:

Unificarem les màquines semblants en grups, com per exemple elements de xarxa,

màquines Windows, màquines Ubuntu...

Establirem monitorització de serveis aplicats als grups de màquines, la qual cosa ens

permetrà que només agregant una màquina nova i posar-la al grup corresponent, ja la

tindrem monitoritzada.

Modificarem les plantilles que Nagios ens ofereix per adequar-les a les nostres

necessitats (també en crearem). Algunes de les plantilles que utilitzarem seran les de

definicions de host Windows, Ubuntu i elements de xarxa.

També, durant l'agregació de host, anirem muntant la topologia de xarxa (indicant

quin és el "pare" de cada host, tenint en compte que el servidor Nagios és el host

principal).

A part, també monitoritzarem la connectivitat amb servidors públics externs per

assegurar-nos que el nostre router té sortida a Internet.

Page 11: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

7

3.1 Estructura de Nagios

Main Configuration File

L'arxiu de configuració principal conté una sèrie de directives que afecten la manera com el

daemon de Nagios funciona. Aquest arxiu de configuració es llegeix tant pel daemon de Nagios

i els CGIs.

Resource File(s)

Els arxius de recursos es poden utilitzar per emmagatzemar macros definides per l'usuari. El

principal punt de tenir els arxius de recursos és utilitzar-los per emmagatzemar la informació

de configuració sensibles (com contrasenyes), sense posar-los a disposició dels CGIs. Podeu

especificar un o més fitxers de recursos opcionals mitjançant la directiva resource_file al seu

fitxer de configuració principal.

Object Definition Files

Els arxius de definició d'objectes s'utilitzen per definir els hosts, serveis, contactes, hostgroups,

contactgroups, ordres, etc. Aquí és on es defineix tot el que es vol monitoritzar. Es pot

especificar un o més arxius de definició d'objectes mitjançant l'ús de la cfg_file i / o directives

cfg_dir al seu fitxer de configuració principal.

CGI Configuration File

L'arxiu de configuració CGI conté una sèrie de directives que afecten el funcionament dels CGI.

També conté una referència al fitxer de configuració principal, de manera que els CGIs saben

com s'ha configurat Nagios i on estan emmagatzemades les definicions d'objectes.

Page 12: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

8

3.2 Definició d'objectes

En Nagios, tot element que definim utilitzant el comandament define, es considera un objecte.

Els tipus d'objecte que es poden definir són els següents:

Host definitions

Host group definitions

Service definitions

Service group definitions

Contact definitions

Contact group definitions

Time period definitions

Command definitions

Service dependency definitions

Service escalation definitions

Host dependency definitions

Host escalation definitions

Extended host information definitions

Extended service information definitions

En la guia oficial de Nagios Core hi ha tot un apartat extens que explica detalladament les

possibilitats que ofereix Nagios en la definició d'objectes.

Page 13: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

9

3.3 Utilització de plugins

Nagios es comunica amb els agents instal·lats a les màquines a monitoritzar mitjançant plugins

que recullen la informació. Aquestes comunicacions s'estableixen per túnels SSL i poden estar

protegides amb contrasenya.

Els plugins s'instal·len durant el procés d'instal·lació de Nagios, els tenim a la ruta

/usr/local/nagios/libexec:

Per veure les opcions de cada plugin, utilitzar -h. Per exemple, dintre de la carpeta libexec,

executar ./check_swap -h.

No obstant, podem descarregar més plugins o addons a la web de Nagios Exchange.

Page 14: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

10

4 Valoració dels softwares de monitorització descartats

4.1 Pandora FMS

Pandora FMS (FMS ve de Flexible Monitoring System) és una

aplicació de monitorització per vigilar tot tipus de sistemes i

aplicacions. Permet conèixer l'estat de qualsevol element dels

sistemes de negoci. Vigila el hardware, els programes, les

aplicacions i per descomptat, els sistemes operatius. És capaç de detectar una interfície de

xarxa que ha caigut, així com el moviment de la configuració dels NASDAQ. Si cal, Pandora FMS

pot enviar un missatge SMS quan falli qualsevol sistema o aplicació, o quan el valor de Google

caigui per sota dels 330 US $.

Pandora FMS s'ajusta com un pop als sistemes i necessitats, ja que ha estat dissenyat per ser

obert, modular, multi plataforma i fàcil de personalitzar sense necessitat de ser un expert

desenvolupador. Pandora FMS està fet per a administradors de sistemes, encara que es pot

adaptar a tot tipus d'entorns software o fins i tot hardware.

La seva distribució és una imatge ISO que es pot descarregar de la web http://pandorafms.org.

És un petit sistema operatiu basat en OpenSUSE de Linux. El motiu per a descartar-lo, tot i que

té moltes funcionalitats, és perquè la versió gratuïta no té administració remota i no es pot

comunicar amb els agents mitjançant el protocol SNMP. La versió Enterprise si que té aquesta

possibilitat.

4.2 Cacti

Cacti és una completa solució per a la generació de gràfics en xarxa,

dissenyada per aprofitar el poder d'emmagatzematge i la funcionalitat

per a gràfiques que tenen les aplicacions RRDtool. Aquesta eina,

desenvolupada en PHP, proveeix un pool àgil, plantilles de gràfics

avançades, múltiples mètodes per a la recopilació de dades, i maneig

d'usuaris. Té una interfície d'usuari fàcil d'usar, que resulta convenient

per instal·lacions de la mida d'una LAN, així com també per a xarxes

complexes amb centenars de dispositius.

RRDtool és l'acrònim de Round Robin Database tool, és a dir que es tracta d'una eina que

treballa amb una base de dades que maneja Planificació Round-robin. Aquesta tècnica treballa

amb una quantitat fixa de dades i un punter a l'element actual. La manera com treballa una

base de dades utilitzant Round Robin és el següent; es tracta la BD com si fos un cercle,

sobreescrivint les dades emmagatzemades, un cop assolida la capacitat de la BD. La capacitat

de la BD depèn de la quantitat d'informació com historial que es vulgui conservar.

La pàgina de Cacti és http://www.cacti.net. De moment l’hem descartat perquè Cacti està més

orientat a la monitorització de la xarxa. Però és possible que durant el transcurs del projecte

l’acabem utilitzant.

Page 15: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

11

5 Conceptes de monitorització

Nagios utilitza protocols i plugins propis per a monitoritzar sistemes remots. Els agents

s'instal·len en aquests equips remots i recopilen dades que després envien al servidor Nagios

que les interpreta i les mostra en la interfície web. Aquestes dades són enviades per túnels

xifrats SSL.

No obstant, Nagios també pot utilitzar el protocol SNMP (Simple Network Management

Protocol) per a obtenir dades de màquines remotes.

5.1 SSL

El protocol SSL proporciona comunicacions segures per una xarxa, normalment Internet.

Proporciona autenticació i privacitat de la informació entre els dos costats d'Internet

mitjançant l'ús de criptografia. Normalment s'autentica només el servidor i el client queda en

l'anonimat.

SSL implica una sèrie de fases bàsiques:

o Negociar entre les parts de l'algoritme que s'utilitzarà a la comunicació.

o Intercanvi de claus públiques i autenticació basada en certificats digitals.

o Xifrat del tràfic basat en xifrat simètric.

Durant la primera fase el client i el servidor negocien quins algoritmes criptogràfics

s'utilitzaran. Les implementacions actuals proporcionen les següents opcions:

o Per criptografia de clau pública: RSA, Diffie-Hellman, DSA o Fortezza.

o Per xifrat simètric: RC2, RC4, IDEA, DES, Triple DES, i AES.

o Amb funcions hash: MD5 o de la família SHA.

5.1.1 Funcionament SSL

o El protocol intercanvia registres, opcionalment, cada registre pot ser comprimit, xifrat i

empaquetat amb un codi d'autenticació de missatge (MAC). Cada registre te el seu

propi camp "content_type", que especifica el protocol de nivell superior que està

utilitzant.

o Quan s'inicia la connexió, el nivell de registre encapsula un altre protocol, el protocol

handshake, que te el content_type 22.

o El client envia i rep varies estructures handshake.

o Envia un missatge "clienthello" especificant una llista de conjunts de xifrats, mètodes

de compressió i la versió del protocol SSL més alta admesa. Aquesta també envia bytes

Page 16: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

12

aleatoris que seran utilitzats més tard. A més a més, pot incloure el identificador de la

sessió.

o Després, rep un registre "serverhello", en el que el servidor escull els paràmetres de

connexió a partir de les opcions ofertes amb anterioritat pel client.

o Quan els paràmetres de connexió son coneguts, client i servidor intercanvien

certificats.

o El servidor pot requerir un certificat al client, perquè la connexió sigui mútuament

autenticada.

o Client i servidor negocien una clau secreta i simètrica comú anomenada "master

secret", possiblement utilitzant el resultat d'un intercanvi "diffie-hellman", o

simplement, xifrant una clau secreta amb una clau pública que és desxifra amb la clau

privada de cada part. Totes les dades de claus restants són derivades a partir d'aquest

"master secret", que son transmesos a través d'una funció pseudo-aleatòria

cuidadosament escollida.

TLS/SSL disposa d'una gran varietat d'eines de seguretat:

o Numerar tots els registres i utilitzant el número de seqüència en el MAC.

o Utilitzant un resum de missatge millorat amb una clau.

o Protecció contra atacs coneguts.

o El missatge que finalitza el protocol "handshake" envia un hash de que totes les dades

han sigut intercanviades i visualitzades per les dues parts.

o La funció pseudo-aleatòria divideix les dades d'entrada en 2 meitats i les processa amb

algoritmes diferents (MD5 y SHA).

5.2 Protocol SNMP

SNMP és un protocol de la capa d’aplicació que facilita el intercanvi d’informació

d’administració entre dispositius de xarxa. És part de la família de protocols TCP/IP. SNMP

permet als administradors supervisar el funcionament de la xarxa, buscar i resoldre els

problemes i plantejar el seu creixement.

Les versions de SNMP més utilitzades son SNMP versió 1 (SNMPv1) i SNMP versió 2 (SNMPv2).

SNMP en la seva última versió utilitza (SNMPv3) i te canvis molt significatius amb relació a les

versions anteriors, sobretot en aspectes de seguretat, encara que majoritàriament no ha sigut

acceptat a la indústria.

El port utilitzat per SNMP és: 161.

Page 17: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

13

5.2.1 Components bàsics

Una xarxa administrada a través de SNMP consisteix en tres components claus :

Dispositius administradors

Agents

Sistemes administradors de xarxa (Network Management Systems o NMS’s)

Un dispositiu administrat es un node de la xarxa que conté un agent SNMP i resideix en una

xarxa administrada. Aquests recullen i emmagatzemen informació d’administració, la qual es

posa a disposició dels NMS’s utilitzant SNMP. Els dispositius administradors, a vegades

anomenats elements de xarxa poden ser routers, servidors d’accés, switches, bridges, hubs,

ordinadors o impressores.

Un agent és un mòdul de software d’administració de xarxa que resideix en un dispositiu

administrat. Un agent disposa d’un coneixement local d’informació d’administració (memòria

lliure, número de paquets IP, rebuts, rutes, etc.). La qual és traduïda a un format compatible

amb SNMP i organitzada en jerarquies.

Un sistema administrador de xarxa (NMS) executa aplicacions que supervisen i controlen als

dispositius administradors. Els NMS’s proporcionen el volum de recursos de processament i

memòria requerits per l’administració de la xarxa. Un o més NMS’s han d’existir en qualsevol

xarxa administrada.

5.2.2 Comandaments bàsics

Els dispositius administradors son supervisats i controlats utilitzant quatre comandaments

SNMP bàsics: lectura, escriptura, notificació i operacions transversals.

El comandament de lectura és utilitzat per un NMS per supervisar elements de xarxa. El NMS

examina diferents variables que són mantingudes pels dispositius administradors.

El comandament d’escriptura és utilitzat per un NMS per controlar elements de xarxa. El NMS

canvia els valors de les variables emmagatzemades dintre dels dispositius administradors.

El comandament de notificació és utilitzat pels dispositius administradors per reportar events

en forma asíncrona a un NMS. Quan succeeix un event, un dispositiu administrat envia una

notificació al NMS.

Les operacions transversals son utilitzades pel NMS per determinar quines variables suporten

un dispositiu administrat i per recollir seqüencialment informació en taules de variables, com

per exemple, una taula de rutes.

5.2.3 OID i MIB

MIB és sinònim de la Base d'Informació de Gestió i és una col·lecció d'informació organitzada

jeràrquicament. S'accedeix a elles utilitzant un protocol com el SNMP. Hi ha dos tipus de MIB:

escalars i de taula. Objectes escalars defineixen una simple instància d'objecte i els objectes

tabulars defineixen múltiples instàncies d'objectes relacionats, agrupats en taules MIB.

Page 18: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

14

OID o identificadors d'objecte identificar de forma única els objectes manejades en una

jerarquia MIB. Això pot ser representat com un arbre, els nivells dels quals són assignats per

diferents organitzacions. Nivell superior MIB ID d'objecte (OID) que pertanyen a diferents

organitzacions de normalització. Els venedors defineixen les branques privades, incloent els

objectes gestionats per als seus propis productes.

Exemples:

Això es una estructura simple de un OID:

Iso(1).org(3).dod(6).internet(1).private(4).transition(868).products(2).chassis(4).card(1).slotCps

(2)­.-cpsSlotSummary(1).cpsModuleTable(1).cpsModuleEntry(1).cpsModuleModel(3).3562.3

O resumit:

1.3.6.1.4.868.2.4.1.2.1.1.1.3.3562.3

Aquests números són els que s'utilitzen en PRTG en configurar els sensors d'encàrrec, per tal

d'accedir als elements apropiats del dispositiu que es vol vigilar. OID general són proporcionats

pels fabricants de maquinari o bé pot trobar-se als anomenats dipòsits d'OID, on les

col·leccions d'arbres MIB i el OID respectius es pot accedir. PRTG llegeix aquests OID i els

nomena el dispositiu pertinent, respectivament, el seguiment del dispositiu i el seu OID

específic.

Page 19: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

15

5.3 MRTG

MRTG (Multi Router Traffic Grapher) és una eina, escrita en C i Perl per Tobias Oetiker i Dave

Rand, que s'utilitza per supervisar la càrrega de tràfic de interfícies de xarxa. MRTG genera un

informe en format HTML amb gràfiques que proveeixen una representació visual de l'evolució

del trànsit al llarg del temps.

Per recollir la informació del trànsit del dispositiu (habitualment routers) l'eina utilitza el

protocol SNMP (Simple Network Management Protocol). Aquest protocol proporciona la

informació en cru de la quantitat de bytes que han passat per ells distingint entre entrada i

sortida. Aquesta quantitat bruta haurà de ser tractada adequadament per a la generació

d'informes

També permet executar qualsevol tipus d'aplicació en lloc de consultar un dispositiu SNMP.

Aquesta aplicació proporciona com a sortida dos valors numèrics que es corresponen a

l'entrada i sortida. Habitualment solen utilitzar scripts que monitoritzen la màquina local.

Així mateix, proporciona una aplicació cfgmaker que genera la configuració per un router de

forma automàtica utilitzant la meta informació que proporciona SNMP

MRTG s'executa com un dimoni o invocat des de les tasques programades del cron. Per

defecte, cada cinc minuts recull la informació dels dispositius i executa els scripts que se li

indiquen en la configuració.

En un primer moment, MRTG consultava la informació, la processava i generava l'informe i les

gràfiques. En les últimes versions, aquesta informació és emmagatzemada en una base de

dades gestionada per RRDtool a partir de la qual, i de forma separada, es generen els informes

i les gràfiques.

Causa de les seves característiques, aquesta eina ha estat utilitzada de forma extensiva i

adaptada per tractar informació que no s'adequa a les mesures entrada / sortida com proxys,

processos...

Per això l'autor de l'eina va decidir crear una segona eina RRDtool més flexible que permet

emmagatzemar qualsevol tipus de dades. En les últimes versions, MRTG utilitza RRDtool

quedant restringida la seva funcionalitat a accedir als dispositius configurats per alimentar el

RRDtool. La gestió de les dades i la generació de les gràfiques es realitzen mitjançant RRDtool.

Page 20: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

16

6 Diagrama de l’estructura de Stucom

Centre d'Estudis Stucom es caracteritza per tenir una estructura forta en seguretat i totalment

escalable.

La xarxa d'alumnes disposa de quatre servidors, dos d'ells son servidors amb sistema operatiu

Windows Server 2003, amb Active Directory i DNS instal·lat, un és una copia de l'altre que

entra en funcionament quan el primer cau (redundància).

Els dos restants son dos servidors proxy que proporcionen sortida a Internet (utilitzen el

sistema operatiu PFsense) i estan connectats als mòdems/routers dels ISP.

Tots aquests servidors van connectats a un switch central. Des d'aquest switch es connecta un

altre equip entremig que fa de firewall i gestiona tota l'entrada i sortida de les aules.

Després d'aquest firewall hi ha un altre switch gestionable amb 11 vlans (una per aula).

Page 21: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

17

7 Diagrama de l’entorn virtual

Com es comentava abans, l'entorn virtual serà senzill per tal de centrar-se en monitoritzar bé

les màquines. Aquest entorn serà creat amb VMware Workstation, fent servir els tipus de

xarxa NAT (20.20.20.0/24) i HOST-ONLY (10.10.10.0/24). S'hauran de muntar amb l'editor de

xarxes virtuals de VMware les xarxes al nostre gust:

A la xarxa NAT hem establert com a gateway la IP 20.20.20.1 i hem habilitat el servei

DHCP per a que el PfSense tingui IP automàtica per la part de WAN.

A la part de HOST-ONLY, hem creat una VMnet amb el rang 10.10.10.0/24, on el

gateway serà la IP de LAN del PfSense (10.10.10.1).

Aquestes dos xarxes estaran separades per una màquina virtual PfSense amb dos targetes de

xarxa. El PFSense és utilitzat a Stucom com a proxy de sortida a Internet. A aquesta sortida a

Internet, utilitzarem la xarxa NAT fent servir el router virtual de VMware

Dintre del que seria la LAN (Host-Only), tindrem un servidor Ubuntu on hi instal·larem Nagios;

un Windows Server 2003 que farà de servidor DNS, DHCP, d'arxius i controlador de domini; un

Ubuntu Server; i un Windows XP que estarà dintre del domini.

El servidor Nagios serà l'encarregat de monitoritzar la topologia de xarxa especificada. Als

servidors DNS de Google que estan a la sortida d'Internet, només els hi anirem fent un ping

constant per a comprovar que la sortida a Internet és correcte. A la resta de màquines hi

instal·larem l'agent Nagios per a poder monitoritzar hardware com ús de CPU, estat dels discos

durs, RAM... i també serveis de software com per exemple el servei DHCP.

En el cas dels switchos, apareixeran a la topologia de xarxa de Nagios però amb la IP de

loopback del servidor (127.0.0.1). D'aquesta manera aconseguim que surtin en el plànol de

xarxa. Actuarien com a switchos no gestionables. I en el cas del router virtual, només hi

podrem comprovar el ping, però explicarem la manera de comprovar l'estat del router i dels

seus ports mitjançant SNMP.

Page 22: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

18

8 Preparació del servidor Nagios

8.1 Instal·lació d’Ubuntu Server

Durant el procés d’instal·lació de la màquina virtual, només es remarcaran els punts

d’importància.

El servidor tindrà de nom de màquina servernagios. Aquest nom identifica el sistema en la

xarxa.

El nom del usuari local serà bernat i contrasenya p@ssw0rd.

Finalment s'hi instal·larà el gestor d’engegada d’Ubuntu, el Grub. Aleshores es reinicia la

màquina i ja es pot començar a treballar amb el servidor.

Abans d’instal·lar Nagios, s'haurà d’optimitzar i actualitzar l'Ubuntu

Per a actualitzar la llista de repositoris d’Internet, executarem el comandament sudo apt-get

update. Per a aplicar les actualitzacions, executarem el comandament sudo apt-get upgrade.

Page 23: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

19

8.2 Instal·lar interfície gràfica bàsica (OPCIONAL)

Si es vol treballar de forma més còmode, es pot atorgar una interfície gràfica a Ubuntu Server.

Executar:

sudo apt-get install xorg gnome-core

Amb aquest comandament, s'instal·larà una interfície gràfica que només s'iniciarà si es vol. Es

disposarà d'algunes eines gràfiques com navegador web, editor de textos... que com hem

comentat abans, ens permetrà treballar de forma més còmode amb el Ubuntu Server.

Seguidament, instal·lar el paquet gksu per a que els menús funcionin correctament:

sudo apt-get install gksu

Per a instal·lar les "Herramientas de red" executar:

sudo apt-get install gnome-system-tools gnome-nettool

Un cop realitzats aquests passos, cal invocar la interfície gràfica. Executar:

startx

8.3 Configurar IP estàtica

Obrim el terminal i escriure:

sudo nano /etc/network/interfaces

Quan s’obri l’editor de text “Nano”, es veurà que la interfície de xarxa eth0 està configurada en

mode DHCP. S'ha de modificar aquella part de l’arxiu per a que quedi de la següent manera:

Finalment s'executarà el següent comandament per a reiniciar la targeta de xarxa:

sudo /etc/init.d/networking restart

Si tot surt correcte voldrà dir que la modificació ha estat bona. Si es vol comprovar que s’està

aplicant la IP estàtica que li hem assignat, es pot veure amb el comandament ifconfig.

Page 24: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

20

9 Instal·lació de Nagios

Per a la instal·lació de Nagios, s'haurà d’iniciar sessió en la màquina virtual d’Ubuntu. Recordar

que el nom de la màquina era “servernagios”, el nom d’usuari local “bernat” i la contrasenya

“p@ssw0rd”.

Abans de començar, caldrà instal·lar una sèrie de paquets addicionals amb apt-get install:

Apache 2 (apache2)

PHP (php5)

GCC compiler and development libraries (build-essential)

GD development libraries (libgd2-xpm-dev)

SSH i SSL libraries (openssh-server, libssl-dev)

SNMP (snmp, snmpd, libnet-snmp-perl)

SAMBA (samba, samba-client)

Móduls PERL (libcrypt-des-perl, libdigest-hmac-perl,

libdigest-sha1-perl libio-socket-inet6-perl, sasl2-bin,

php-net-ldap, libgd-gd2-perl)

A continuació es pot procedir a la instal·lació de Nagios.

9.1 Crear Informació de contes

1. Utilitzar l'usuari root (es treballarà durant tota la instal·lació amb aquest usuari):

o sudo -s

2. Crear la conta d'usuari nagios i donar-hi un password:

o /usr/sbin/useradd -m -s /bin/bash nagios

o passwd nagios

3. Crear el grup d'usuaris nagios i agregar-li 'usuari nagios:

o /usr/sbin/groupadd nagios

o /usr/sbin/usermod -G nagios nagios

4. Crear el grup d'usuaris nagcmd per a permetre accions externes de la interfície web:

o /usr/sbin/groupadd nagcmd

5. Afegir els usuaris d'Apache i Nagios al nou grup nagcmd:

o /usr/sbin/usermod -a -G nagcmd nagios

o /usr/sbin/usermod -a -G nagcmd www-data

Page 25: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

21

9.2 Descarregar Nagios Core, Plugins i Daemon NRPE

1. En el directori /home, crear el directori downloads:

o mkdir downloads

o cd downloads

2. Descarregar el codi font de Nagios, Nagios Plugins i Daemon NRPE (visitar

http://www.nagios.org/download/ per veure els links de les últimes versions estables). En

aquesta pràctica no s'utilitzaran les versions més recents, ja que han donat problemes.

Descarregarem Nagios 3.2.3, Nagios Plugins 1.4.15 i NRPE 2.8.

o wget http://prdownloads.sourceforge.net/sourceforge/nagios/

nagios-3.2.3.tar.gz

o wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/

nagios-plugins-1.4.15.tar.gz

o wget http://prdownloads.sourceforge.net/sourceforge/nagios/

nrpe-2.8.tar.gz

9.3 Compilar i instal·lar Nagios

1. Descomprimir el codi font de Nagios en el directori /home/downloads:

o tar xzf nagios-3.2.3.tar.gz

o cd nagios-3.2.3

2. Inicialitzar el script de configuració de Nagios especificant el grup nagcmd creat

anteriorment:

o ./configure --with-command-group=nagcmd

Page 26: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

22

3. Compilar el codi font de Nagios:

o make all

4. Instal·lar els arxius binaris, init script i sample config:

o make install

o make install-init

o make install-config

o make install-commandmode

9.3.1 Configurar la interfície web

1. Instal·lar l'arxiu "web config" en el directori d'Apache conf.d:

o make install-webconf

2. Crear la conta nagiosadmin per loguejar-se a la interfície web:

o htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

3. A continuació ens demana posar una contrasenya, en el nostre cas posem p@ssw0rd:

4. Reiniciar Apache per a que les noves configuracions tinguin efecte:

o /etc/init.d/apache2 reload

9.4 Compilar i instal·lar Nagios Plugins

1. Descomprimir el codi font de Nagios Plugins en el directori /home/downloads:

o tar xzf nagios-plugins-1.4.15.tar.gz

o cd nagios-plugins-1.4.15

2. Compilar i instal·lar els plugins.

o ./configure --with-nagios-user=nagios --with-nagios-

group=nagios

o make

o make install

Page 27: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

23

9.5 Compilar i instal·lar Daemon NRPE

Aquest Daemon també s'haurà d'instal·lar a les màquines Unix / Linux remotes que es vulgui

monitoritzar. La comunicació "Servidor Nagios / Client Unix" es produirà a través d'aquest

servei. Més endavant s'amplia aquesta descripció.

1. Descomprimir el codi font de NRPE en el directori /home/downloads:

o tar xzf nrpe-2.8.tar.gz

o cd nrpe-2.8

2. Compilar el Daemon NRPE:

o ./configure

o make all

3. Instal·lar el NRPE plugin:

o make install-plugin

9.5.1 Provar la comunicació amb el daemon NRPE

Per a fer aquesta prova, s'haurà d'esperar a tenir instal·lat i configurat el daemon NRPE a les

màquines Unix remotes.

S'ha d'executar el comandament següent, on la IP és la de la màquina remota a monitoritzar:

o /usr/local/nagios/libexec/check_nrpe -H 10.10.10.4

La resposta hauria de ser una cadena de text indicant la versió del daemon NRPE instal·lat:

9.5.2 Crear definició de comandaments NRPE

Modificar l'arxiu /usr/local/nagios/etc/objects/commands.cfg agregant el següent:

Page 28: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

24

9.6 Iniciar Nagios

1. Configurar Nagios per a que inicií automàticament quan arranqui el sistema:

o ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

2. Verificar els arxius de configuració de Nagios (molt important utilitzar quan realitzem

canvis a la configuració):

o /usr/local/nagios/bin/nagios -v /usr/local/nagios

/etc/nagios.cfg

3. Si no hi han errors, iniciar Nagios:

o /etc/init.d/nagios start

9.6.1 Accedir a la interfície web

Des de un navegador web, escriure la URL "http://ip-nagios-server/nagios". Ens demanarà

nom d'usuari (nagiosadmin) i contrasenya (p@ssw0rd en el cas de la pràctica).

Page 29: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

25

10 Preparació de màquines Windows client

Recordar que per a la realització d'aquest projecte s'utilitzaran dos màquines Windows amb

les següents característiques:

Windows Server 2003 (winserver): Active Directory, DHCP, DNS, SMTP, IIS, CIFS.

Windows XP Professional (winxp): Membre del domini, utilitzat per emular a un

ordinador d'una aula.

A continuació, s’han de realitzar una sèrie de passos previs abans d’instal·lar l’agent de Nagios:

Configurar IP estàtica

Afegir norma d'entrada al Firewall de Windows pel port 12489

Agregar característiques de Windows

o Panel de Control / Agregar características de Windows

Iniciar el servei WMI i SNMP

o Inicio / Herramientas Administradivas / Servicios

El servei WMI és propietari de Windows, és l'encarregat de recopilar les dades de l'estat del

hardware de la màquina. L'agent de Nagios que instal·larem seguidament, agafa les dades

recopilades per WMI i les transmet al servidor de monitorització.

Page 30: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

26

10.1 Instal·lació i configuració de l'agent Nagios

10.1.1 Funcionament

Per a controlar els serveis privats o atributs d'una màquina Windows s'ha d'instal·lar un agent

en ell. Aquest agent actua com un proxy entre el plugin de Nagios que fa el seguiment i el

servei real o atribut de la màquina Windows.

El servidor Nagios es comunicarà amb l'agent mitjançat el plugin check_nt que ve per defecte

instal·lat a Nagios.

10.1.2 Instal·lació i configuració

Instal·lar el paquet NSClient++, que es pot descarregar en aquest link:

http://www.nsclient.org/nscp, tant la versió de 32 bits com la de 64 bits.

A Allowed hosts, posem la direcció IP del servidor Nagios. I l'apartat de NSClient password, el

deixem buit, ja que així facilitarem la configuració del servei check_nt.

Page 31: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

27

Habilitem tots els mòduls de comprovació (check).

Al finalitzar la instal·lació, haurem de fer una sèrie de passos addicionals:

1. Anar a "Servicios de Windows" i assegurar-nos que funciona com a servei.

2. Anar a "C:\Archivos de programa\NSClient++" i modificar amb el bloc de notes l'arxiu

NSC.INI (si no estem en la conta d'Administrador, haurem d'executar com a

administrador o donar permisos totals al nostre usuari).

a. Descomentar els mòduls llistats a la secció [modules] excepte el "CheckWMI.dll" i

"RemoteConfiguration.dll".

b. Descomentar l'opció "allowed_hosts" a la secció [Settings] i afegir la IP del servidor

Nagios (10.10.10.2/24).

c. Descomentar l'opció "port" a la secció [NSClient] i establir el port per defecte

(12489).

d. Reiniciar l'agent (podem trobar els accessos directes en el menú inici)

Page 32: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

28

11 Preparació de màquines Linux client

11.1 Funcionament de l'agent NRPE

El complement NRPE està dissenyat per permetre que l'execució de plugins de Nagios en

màquines Linux / Unix remotes. La principal raó per fer això és permetre que Nagios pugui

supervisar els recursos "locals" (com la càrrega de la CPU, ús de memòria, etc) en màquines

remotes.

És possible executar plugins de Nagios en màquines Linux / Unix remotes a través de SSH. Hi ha

el plugin check_by_ssh que et permet fer això. L'ús de SSH és més segur que el complement

NRPE, però també imposa una major càrrega de CPU. Això pot esdevenir un problema quan hi

ha un gran nombre de màquines a monitoritzar. Molts administradors de Nagios prefereixen

optar per utilitzar el complement NRPE a causa de la menor càrrega que imposa.

11.1.1 Tipus de funcionament

DIRECTE: És el que té un ús més senzill, ja que vigila els recursos de l'equip remot. Això

inclou coses com la càrrega de CPU, ús de memòria, els usuaris actuals, l'ús del disc,

l'estat dels processos, etc

INDIRECTE: Comprovar indirectament els serveis públics i recursos dels servidors remots

que podrien no ser accessibles directament des del host de monitorització. Per exemple,

si el host remot on el daemon NRPE i els plugins estan instal·lats pot establir connectivitat

amb el lloc web, però l'amfitrió de vigilància no, es pot configurar el NRPE per a que li

permeti supervisar el lloc web remot indirectament.

Page 33: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

29

11.2 Instal·lació de l'agent NRPE

11.2.1 Crear conta d'usuari "nagios"

1. Loguejar-se com a superusuari (ho mantindrem durant tot el procés):

o sudo -s

2. Crear una conta d'usuari per Nagios i donar-li contrasenya:

o /usr/sbin/useradd nagios

o passwd nagios (p@ssw0rd)

11.2.2 Instal·lar el Nagios plugins

1. Anar a la carpeta /home/downloads per guardar-hi les descàrregues:

o cd /home/downloads

2. Descarregar el codi font dels Nagios plugins (visitar http://www.nagios.org/download per

veure les versions més recents). En la pràctica es farà servir la versió 1.4.15.

o wget http://prdownloads.sourceforge.net/sourceforge/

nagiosplug/nagios-plugins-1.4.15.tar.gz

3. Descomprimir el codi font

o tar xzf nagios-plugins-1.4.15.tar.gz

o cd nagios-plugins-1.4.15

4. Compilar i instal·lar els plugins:

o ./configure

o make

o make install

5. Donar permisos de propietat als plugins i als directoris instal·lats:

o chown nagios.nagios /usr/local/nagios

o chown -R nagios.nagios /usr/local/nagios/libexec

11.2.3 Instal·lar xinetd, llibreria SSL i Build Essential

o apt-get install xinetd

o apt-get install libssl-dev

o sudo apt-get install build-essential

Page 34: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

30

11.2.4 Instal·lar el daemon NRPE

1. Descarregar el codi font del daemon NRPE plugins (visitar

http://www.nagios.org/download per veure les versions més recents). Nosaltres farem

servir la versió 2.8:

o cd /home/downloads

o wget http://prdownloads.sourceforge.net/sourceforge/nagios

/nrpe-2.8.tar.gz

2. Descomprimir el paquet descarregat:

o tar xzf nrpe-2.8.tar.gz

o cd nrpe-2.8

3. Compilar el addon NRPE:

o ./configure

o make all

4. Instal·lar el NRPE plugin, el daemon i l'arxiu de configuració del daemon.

o make install-plugin

o make install-daemon

o make install-daemon-config

5. Instal·lar el daemon NRPE com un servei lligat a xinetd:

o make install-xinetd

6. Editar l'arxiu /etc/xinetd.d/nrpe i afegir la adreça IP del servidor Nagios de

monitorització:

7. Afegir la següent entrada pel daemon NRPE a l'arxiu /etc/services:

o nrpe 5666/tcp # NRPE

8. Reiniciar el servei xinetd:

o service xinetd restart

Page 35: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

31

11.2.5 Testejar el daemon NRPE localment

1. Comprovar que funciona com un servei:

o netstat -at | grep nrpe

2. Hauria de sortir una línia semblant a la següent:

o tcp 0 0 *:nrpe *:* LISTEN

11.2.6 Obrir normes de firewall

1. Afegir nova norma d'entrada en IPTABLES:

2. Verificar que esta ben afegida:

3. Guardar la nova norma de IPTABLES:

o Guardar l'arxiu iptables.rules amb la nova norma

iptables-save > /etc/iptables.rules

o Afegir la següent línia a /etc/network/interfaces

pre-up iptables-restore < /etc/iptables.rules

D'aquesta manera, al reiniciar la màquina es carregarà el script iptables.rules a iptables

quan s'iniciïn les interfícies de xarxa.

Page 36: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

32

12 Preparació de la màquina PfSense

PfSense és una distribució basada en FreeBSD. El seu

objectiu és tenir un tallafocs (firewall) fàcilment

configurable a través d'una interfície web i instal·lable en

qualsevol PC, incloent els miniPC d'una sola targeta. Es tracta, per tant, d'una solució molt

completa, sota llicència BSD i, per tant, de lliure distribució.

Com que l'objectiu de la pràctica es configurar un sistema de monitorització, no ens centrarem

en configurar el PfSense, sinó com poder monitoritzar-lo amb Nagios.

Es pot descarregar la ISO de PfSense de la pàgina web oficial http://www.pfsense.org. En el

nostre cas, ens hem baixat directament la màquina VMware que ve preparada a la web i s'ha

verificat que tingués dos targetes de xarxa i s'han configurat segons l'estructura de la xarxa de

la pràctica del punt 6.

Un cop situat el PfSense entre el router i la xarxa, des de la LAN per entrar a la interfície web

de PfSense s'ha d'escriure en el navegador web la direcció IP del PfSense. Per defecte, l'usuari

és "admin" i la contrasenya "pfsense".

12.1 Instal·lació i configuració inicial de l'agent NRPE

Ara, situats a la interfície web, s'ha de procedir a instal·lar el paquet NRPE v2.

Anem a la pestanya "System" i després a "Packages". Allí trobareu una llarga llista de paquets

que es poden aplicar a PfSense. En el nostre cas ens interessa "NRPE v2":

Un cop instal·lat el paquet, es va a la pestanya "Services" i allí es trobarà el NRPE v2 per a

configurar-lo. Inicialment establirem els paràmetres de connexió amb el servidor Nagios; més

endavant es configuraran els paràmetres a monitoritzar.

Page 37: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

33

13 Configuració del servidor Nagios

13.1 Backups dels arxius de configuració

Com que per configurar Nagios cal tocar certs arxius, realitzarem una copia de seguretat per si

ens equivoquen en les modificacions. Aquests arxius es troben a la ruta /usr/local/nagios/etc i

/usr/local/nagios/etc/objects. A cada un d'aquests directoris hi crearem una carpeta

anomenada "backup" mitjançant sudo mkdir backup.

Farem una còpia de seguretat de cada arxiu *.cfg (tant en la carpeta etc com en la objects) i el

col·locarem a la seva respectiva carpeta "backup".

Per a fer els backups, posarem l'exemple del que es faria a la carpeta /usr/local/nagios/etc:

o sudo cp cgi.cfg ./download cgi.cfg.bak

o sudo cp nagios.cfg ./download nagios.cfg.bak

o sudo cp resource.cfg ./download resource.cfg.bak

Page 38: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

34

13.2 Preparació de l'arxiu de configuració principal de Nagios

L'arxiu de configuració principal de Nagios el trobem a /usr/local/nagios/etc/nagios.cfg. En

aquest arxiu, s'indiquen les rutes dels diferents arxius que Nagios utilitzarà per estructurar-se i

funcionar. Podem comentar, descomentar o crear-ne de nous, però per a que no hi hagi errors,

l'arxiu ha d'existir en la ruta indicada i estar ben configurat.

Alguns d'aquests arxius ja venen creats per defecte per a usar-los com a plantilla, altres

s'hauran de crear afegint la línia i creant l'arxiu corresponent amb extensió *.cfg. En aquests

arxius, es declararan els host i els serveis a monitoritzar on correspongui, per exemple, en

l'arxiu windows.cfg s'hi declararà el grup de host "windows-servers", els host Windows Server i

els serveis que monitoritzarem. Els serveis genèrics, com la CPU, s'assignaran al grup de host, i

els específics, com un disc dur extra, al host en concret.

Els arxius localhost.cfg, windows.cfg i switch.cfg, venien per defecte, els hem descomentat i

modificat al nostre gust.

Els arxius grpsrv.cfg, pfsense.cfg, aula21.cfg, gateway.cfg i ubuntu.cfg, els hem creat a partir

dels que venen per defecte, i s'hi ha afegit la línia.

Definició de la funció de cada arxiu:

localhost.cfg: Definició del host local (Servidor nagios) i paràmetres a monitoritzar.

windows.cfg: Definició de host i hostgroup Windows Server i paràmetres a

monitoritzar.

ubuntu.cfg: Definició de host i hostgroup Ubuntu Server i paràmetres a monitoritzar.

switch.cfg: Definició de host i hostgroups d'elements de xarxa i paràmetres a

monitoritzar.

grpsrv.cfg: Definició de grups de serveis.

pfsense.cfg: Definició de host PFsense i paràmetres a monitoritzar.

aula21.cfg: Definició de host i hostgroup d'ordinadors d'aula.

gateway.cfg: Definició de servidors públics externs per controlar sortida a Internet.

Servidor local Nagios

Servidors d'Internet

Servidors Ubuntu

Servidors Windows

Elements de xarxa

Grups de serveis

Màquina PfSense

Ordinadors d'aula

Page 39: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

35

13.3 Plantilles de Nagios

Al instal·lar Nagios, et venen unes plantilles que s'utilitzen per a facilitar l'administració de

Nagios. Recordar que Nagios es configura amb una programació orientada a objectes, on cada

objecte té la seva funció i es pot relacionar amb altres objectes. Si es volés, es podria

configurar Nagios en un sol arxiu, però per a més facilitat alhora d'administrar nagios, és millor

separar els objectes segons la seva funció.

Les plantilles es troben a /usr/local/nagios/etc/objects/templates.cfg que està definit per

defecte en l'arxiu nagios.cfg. La funció bàsica de les plantilles és poder definir amb més

facilitat objectes que utilitzin aquestes plantilles, inclús plantilles que utilitzen altres plantilles.

Bàsicament, les plantilles contenen els paràmetres més comuns de la definició dels objectes.

Per exemple, es pot tenir una plantilla per servidors Windows, que la utilitzaran les definicions

d'objectes host de servidors Windows, definint paràmetres com el grup de contacte, les

opcions notificació, interval de check...

13.3.1 Plantilles genèriques de host i de servei

Page 40: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

36

13.4 Imatges dels host en la interfície web

Tota la configuració de la interfície web es troba en la carpeta /usr/local/nagios/share. Allí

tenim els arxius php i html, al igual que les imatges que faran servir els diferents elements.

Les imatges que nagios utilitza per als host de la interfície web les busca a

/usr/local/nagios/share/images/logos. Per a indicar a on aplicar les imatges, es pot fer a les

plantilles o a les definicions de host. Els paràmetres que s'han d'utilitzar son icon_image i

statusmap_image. Aquests paràmetres determinen quina imatge es mostrarà per a aquell

host en la interfície web.

El path per defecte en aquests paràmetres és el mateix on estan les imatges, però si tenim

imatges en una carpeta dintre de la carpeta logos, caldrà indicar aquesta carpeta i l'arxiu

separats per una "/".

Recalcar que per al paràmetre icon_image utilitzarem imatges amb extensió *.gif. I que per el

paràmetre statusmap_image utilitzarem imatges amb extensió *.gd2.

Els paquets d'imatges els podem descarregar de:

http://exchange.nagios.org/directory/Graphics-and-Logos/Images-and-Logos.

Un cop descarregats, es descomprimeixen a la carpeta images mencionada anteriorment.

Page 41: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

37

13.5 Monitorització del servidor Nagios

L'arxiu que determina la monitorització del servidor Nagios local es troba en la ruta

/usr/local/nagios/etc/objects/localhost.cfg. Aquest arxiu, juntament amb la seva plantilla,

venen per defecte amb la instal·lació de Nagios, no obstant, s'hi ha aplicat alguna modificació

tant a l'arxiu localhost.cfg com a la plantilla que utilitzarà.

13.5.1 Plantilla localhost i local-service (templates.cfg)

13.5.2 Host i hostgroup (localhost.cfg)

Page 42: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

38

13.5.3 Serveis

Els serveis que es monitoritzen en el servidor local es troben especificats al final de l'arxiu

localhost.cfg. Aquestes definicions venen per defecte amb la instal·lació i no s'ha modificat res,

per tant, només es posarà una d'exemple.

Exemple:

Tenim la definició del check de la CPU del servidor local:

I aquí la definició del comandament check_local_load que utilitza el plugin check_load. Les

definicions de comandaments es troben a /usr/local/nagios/etc/objects/commands.cfg.

13.5.4 Interfície web

Page 43: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

39

14 Monitorització de Windows Server

El plugin check_nt és el que s'utilitza per a màquines Windows. És un mètode que utilitza

Nagios per comunicar-se amb l'agent instal·lat a les màquines Windows.

L'arxiu que determina la monitorització de servidors Windows es troba en la ruta

/usr/local/nagios/etc/objects/windows.cfg. Aquest arxiu, juntament amb la seva plantilla,

venen per defecte amb la instal·lació de Nagios, no obstant, s'hi ha aplicat alguna modificació

tant a l'arxiu windows.cfg com a la plantilla que utilitzarà.

14.1 Plantilla i definicions

define service{ use generic-service hostgroup_name windows-servers service_description NSClient++ Version check_command check_nt!CLIENTVERSION } define service{ use generic-service hostgroup_name windows-servers service_description Uptime check_command check_nt!UPTIME }

Page 44: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

40

define service{ use generic-service hostgroup_name windows-servers service_description CPU check_command check_nt!CPULOAD!-l 5,80,90 } define service{ use generic-service hostgroup_name windows-servers service_description RAM check_command check_nt!MEMUSE!-w 80 -c 90 } define service{ use generic-service hostgroup_name windows-servers service_description Disk C check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 } define service{ use generic-service host_name winserver service_description Disk E check_command check_nt!USEDDISKSPACE!-l e -w 80 -c 90 } define service{ use generic-service hostgroup_name windows-servers service_description explorer.exe check_command check_nt_negate } define service{ use generic-service host_name winserver service_description DHCP check_command check_dhcp! -s 10.10.10.3 } define service{ use generic-service host_name winserver service_description DNS Intern check_command check_dns_intern } define service{ use generic-service host_name winserver service_description LDAP check_command check_ldap } define service{ use generic-service host_name winserver service_description SMPT check_command check_smtp }

Page 45: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

41

define service{ use generic-service host_name winserver service_description POP check_command check_pop } define service{ use generic-service host_name winserver service_description INTRANET check_command check_http } define service{ use generic-service hostgroup_name windows-servers service_description PING check_command check_ping!100.0,20%!500.0,60% } define service{ use generic-service host_name winserver service_description W3SVC check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC }

Primer de tot diferenciar entre els serveis que s'apliquen al grup de host Windows

(hostgroup_name) i els que s'apliquen a màquines específiques (host_name). En la pràctica

hem instal·lat varis serveis en un sol servidor Windows, però a la realitat els serveis haurien

d'anar separats en varies màquines.

Tots els serveis definits que en el paràmetre check_command tenen el comandament

check_nt són els que s'obtenen mitjançant el plugin check_nt que es comunica amb l'agent

NSClient. La definició del comandament d'aquest plugin és la següent:

Altres checks utilitzen els plugins de SMTP, POP, HTTP, TCP, PING, DHCP i DNS. La definició de

comandament per aquests plugins ve per defecte amb la instal·lació de Nagios. Per exemple la

definició del comandament check_smpt:

En alguns checks no s'han especificat valors de warning o critical, tot i que es podria fer.

Només cal anar a la carpeta /usr/local/nagios/libexec i consultar l'ajuda del plugin. Situat a la

carpeta en el terminal, executar ./check_[plugin name] -h. D'aquesta manera podrem veure

totes les opcions que ofereix el plugin. Es possible que per utilitzar segons quines opcions,

s'hauran d'afegir a la definició del comandament amb l'ús de variables.

Page 46: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

42

Després, hi han altres checks on hem personalitzat la definició del comandament a l'arxiu

commands.cfg.

14.1.1 Comandaments personalitzats (commands.cfg)

define command{ command_name check_ldap command_line $USER1$/check_tcp -H 10.10.10.3 -p 389 } define command{ command_name check_dns_intern command_line $USER1$/check_dns -H winxp.stucom.local -s 10.10.10.3 } define command{ command_name check_nt_negate command_line $USER1$/negate "/usr/local/nagios/libexec/check_nt -H $HOSTADDRESS$ -v PROCSTATE -p 12489 -l explorer.exe -d SHOWALL" }

En aquest últim cas, s'utilitza el plugin negate, que el que fa es fer funcionar al plugin associat

de forma inversa. Per exemple aquí es nega el resultat del plugin check_nt que comprova si hi

ha una sessió iniciada (explorer.exe). Per defecte, si no hi ha una sessió iniciada ens dóna com

a resultat error crític, i quan s'inicia sessió, ens diu que tot és correcte. Però en un servidor

Windows tenir una sessió iniciada molt temps consumeix recursos innecessaris, per això hem

negat el resultat.

Page 47: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

43

15 Monitorització de Ubuntu Server

El plugin check_nrpe és el que s'utilitza per a màquines Unix / Linux. És un mètode que

utilitza Nagios per comunicar-se amb l'agent NRPE instal·lat a les màquines Unix / Linux.

L'arxiu que determina la monitorització de servidors Linux es troba en la ruta

/usr/local/nagios/etc/objects/ubuntu.cfg. Aquest arxiu, juntament amb la seva plantilla, no

venien amb la instal·lació de Nagios, per tant, es van crear a partir d'altres plantilles.

15.1 Plantilla i definicions

Si ens hi fixem, totes les definicions de serveis utilitzen el plugin check_nrpe, i a continuació

tenen el nom del comandament especificat en les definicions de la màquina remota.

define service{ use generic-service hostgroup_name ubuntu-servers service_description CPU check_command check_nrpe!check_load }

Page 48: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

44

define service{ use generic-service hostgroup_name ubuntu-servers service_description Users check_command check_nrpe!check_users } define service{ use generic-service hostgroup_name ubuntu-servers service_description Hard Drive check_command check_nrpe!check_disk } define service{ use generic-service hostgroup_name ubuntu-servers service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use generic-service hostgroup_name ubuntu-servers service_description Zombie Processes check_command check_nrpe!check_zombie_procs } define service{ use generic-service hostgroup_name ubuntu-servers service_description SWAP check_command check_nrpe!check_swap } define service{ use generic-service hostgroup_name ubuntu-servers service_description RAM check_command check_nrpe!check_mem }

15.2 Definicions al host remot

La forma per configurar els checks amb NRPE és molt semblant a la del servidor local.

En el servidor Nagios, s'hauran de fer els checks mitjançant el plugin check_nrpe, i aquest

plugin executarà comandaments definits en el daemon NRPE del host remot. Recordar que el

host remot Ubuntu s'hi van instal·lar els plugins de Nagios, per tant, la definició d'aquests

comandaments es basarà en el funcionament dels plugins.

L'arxiu de configuració del daemon NRPE el trobem a la següent ruta del host remot que volem

monitoritzar: /usr/local/nagios/etc/nrpe.cfg.

Cap al final de l'arxiu, trobarem la definició de comandaments que farà servir el servidor

Nagios per a recaptar informació del host remot. Alguns venen per defecte, i altres els hem

afegit:

Page 49: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

45

En el cas del check_mem, el plugin check_mem.sh que utilitza no ve amb la instal·lació dels

plugins. Aquest plugin ha estat creat a partir d'un scrpit de Linux el qual hem ubicat a la

carpeta dels plugins (/usr/local/nagios/libexec) i li hem donat permisos d'execució per a

tothom (chmod a+x check_mem.sh).

El text del script es pot trobar al final del document en l'Annex.

Un cop creat aquest script, s'haurà d'anar a l'arxiu de configuració principal de NRPE

(usr/local/nagios/etc/nrpe.cfg) i afegir el següent al final:

command[check_mem]=/usr/local/nagios/libexec/check_mem.sh 85 95

Page 50: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

46

16 Monitorització de servidors externs

Una aportació interessant que es pot aplicar a Nagios, es monitoritzar servidors públics

d'Internet per a comprovar que la sortida del gateway és correcte. Però al ser servidors

externs a la nostra xarxa, només s'hi podran aplicar plugins que comprovin els serveis

públics, com per exemple ping, DNS...

L'arxiu que determina la monitorització de servidors d'Internet públics es troba en la ruta

/usr/local/nagios/etc/objects/gateway.cfg. Aquest arxiu, juntament amb la seva plantilla, no

venien amb la instal·lació de Nagios, per tant, es van crear a partir d'altres plantilles.

16.1 Plantilla i definicions

Page 51: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

47

define service{ use gateway-service hostgroup_name gateway service_description PING check_command check_ping!200.0,20%!600.0,60% normal_check_interval 5 retry_check_interval 1 } define service{ use generic-service host_name dns1.google service_description DNS 8.8.8.8 check_command check_dns_google1 } define service{ use generic-service host_name dns2.google service_description DNS 8.8.4.4 check_command check_dns_google2 }

16.1.1 Comandaments personalitzats (commands.cfg)

define command{ command_name check_dns_google1 command_line $USER1$/check_dns -H www.google.com -s 8.8.8.8 } define command{ command_name check_dns_google2 command_line $USER1$/check_dns -H www.google.com -s 8.8.4.4 }

En la pràctica es comproven els servidors DNS de Google que són els que utilitza la nostra

estructura per sortir a Internet. Es comprova el ping i la resolució de noms DNS amb els plugins

check_ping i check_dns.

Page 52: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

48

17 Monitorització de PfSense

El procés per a monitoritzar PfSense és pràcticament igual al del procés de les màquines

Ubuntu. La única diferència es que PfSense ofereix interfície gràfica per definir els

comandaments.

L'arxiu que determina la monitorització de servidors PfSense es troba en la ruta

/usr/local/nagios/etc/objects/pfsense.cfg. Aquest arxiu, juntament amb la seva plantilla, no

venien amb la instal·lació de Nagios, per tant, es van crear a partir d'altres plantilles.

17.1 Plantilla i definicions

Page 53: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

49

define service{ use generic-service hostgroup_name firewall service_description CPU check_command check_nrpe!check_load } define service{ use generic-service hostgroup_name firewall service_description Current Users check_command check_nrpe!check_users } define service{ use generic-service hostgroup_name firewall service_description /root check_command check_nrpe!check_root } define service{ use generic-service hostgroup_name firewall service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use generic-service hostgroup_name firewall service_description Zombie Processes check_command check_nrpe!check_zombie_procs } define service{ use generic-service hostgroup_name firewall service_description SWAP check_command check_nrpe!check_swap }

Page 54: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

50

18 Monitorització dels PC's d'aula

El procés per a monitoritzar el que serien els ordinadors d'aula, és el mateix que el dels

servidors Windows ja que a Stucom s'utilitza aquest sistema operatiu. La diferència bàsica es

que crearem plantilles personalitzades.

L'arxiu que determina la monitorització d'ordinadors d'aula es troba en la ruta

/usr/local/nagios/etc/objects/aula21.cfg. Aquest arxiu, juntament amb la seva plantilla, no

venien amb la instal·lació de Nagios, per tant, es van crear a partir d'altres plantilles.

18.1 Plantilla i definicions

S'han realitzat plantilles específiques pels PC d'aula on les notificacions, tant de host com de

servei, estan deshabilitades. Ja que a la realitat podrien haver més de 100 pc's d'aula i això

suposaria un possible gran nombre de reports per e-mail.

Tots els hosts que utilitzin aquesta plantilla

formaran part del hostgroup aula21

Notificacions deshabilitades

Page 55: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

51

define service{ use aula-service hostgroup_name aula21 service_description NSClient++ Version check_command check_nt!CLIENTVERSION } define service{ use aula-service hostgroup_name aula21 service_description Uptime check_command check_nt!UPTIME } define service{ use aula-service hostgroup_name aula21 service_description CPU check_command check_nt!CPULOAD!-l 5,80,90 } define service{ use aula-service hostgroup_name aula21 service_description RAM check_command check_nt!MEMUSE!-w 80 -c 90 } define service{ use aula-service hostgroup_name aula21 service_description Disc C check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 }

Page 56: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

52

19 Grups de Serveis

Una possibilitat que ens permet Nagios, és agrupar els serveis semblants de diverses

màquines per visualitzar-los junts a la interfície web. Per exemple, podem agrupar els serveis

que controlen l'espai de disc, i veure l'estat de tots els discos dels servidors.

L'arxiu que determina l'agrupació de serveis es troba en la ruta

/usr/local/nagios/etc/objects/grpsrv.cfg. Aquest arxiu, no venia amb la instal·lació de Nagios i

s'ha creat a partir de la informació del manual oficial.

La forma de definir un grup de serveis és la següent:

En el nostre cas, hem agrupat els serveis de càrrega de CPU, discos durs, memòria ram, i

memòria swap dels servidors:

Page 57: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

53

20 Monitorització d'elements de xarxa

Una altra possibilitat que ofereix Nagios, és integrar SNMP per a poder monitoritzar

elements de xarxa. Al treballar en un entorn virtual, no podem realitzar comprovacions

SNMP als elements de xarxa.

L'arxiu que determina la definició d'elements de xarxa es troba en la ruta

/usr/local/nagios/etc/objects/switch.cfg. Aquest arxiu i la seva respectiva plantilla venien

amb la instal·lació de Nagios, no obstant, s'hi han aplicat modificacions.

20.1 Plantilla i definicions

S'han creat dos plantilles: una pels elements de xarxa gestionables (routers i switch de capa 3)

i elements de xarxa no gestionables (switchos normals). En el cas dels no gestionables, es

declaren com un host normal per a que surtin en el mapa de la topologia de xarxa, però de IP

es posa la del servidor local per a que surtin en estat UP.

En un entorn real, com el de Stucom, es podria posar la IP del gateway de la aula en el cas dels

switchos d'aula. En la plantilla per aquests switchos, totes les notificacions i deteccions estan

deshabilitades.

Page 58: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

54

Com que treballem en un entorn virtual de VMware, només podrem utilitzar el plugin

check_ping a la IP del router virtual de VMware.

Page 59: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

55

21 Integrar SNMP a Nagios

Abans d'instal·lar Nagios, a la màquina Ubuntu es van instal·lar el servidor SNMP, el daemon

SNMPD i el mòdul Perl libnet-snmp-perl. Amb aquests paquets instal·lats, quan s'instal·len els

plugins de Nagios obtenim el plugin check_snmp. Podem configurar la comunicació SNMP tant

en la versió 1, la 2 o inclús la 3 que té autentificació.

La sintaxi més bàsica per a la utilització del plugin, és:

o check_snmp -H [host remot] -c [nom comunitat] -o [OID]

Si utilitzem el comandament check_snmp -h podrem veure la definició detallada de com

configurar el plugin més complexament.

Per a provar aquest plugin, s'ha contat amb un router Cisco 1800 series. Per a permetre les

consultes SNMP, cal fer unes configuracions prèvies:

o Primer s'ha afegit una targeta de xarxa virtual nova al servidor Nagios, en mode

bridged, per a poder-li donar connectivitat amb el router.

o Després, s'ha hagut de configurar la interfície Fast Ethernet per a donar-li la IP

desitjada. Un cop comprovat que Nagios i el router es comuniquen sense problemes,

es pot procedir a configurar el router per a que permeti consultes SNMP.

o En el mode configure terminal, s'hauran d'escriure les següents línies per a fer una

configuració senzilla:

snmp-server community public rw 20

access-list 20 permit [host o xarxa permesa]

Finalment, amb el software Ireasoning descarregat de http://ireasoning.com, hem anat

provant OID's contra el router Cisco per a veure que les respostes SNMP són correctes i poder-

ho aplicar després a les definicions de Nagios.

Page 60: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

56

21.1 Definicions

Per a la definició del router Cisco, hem creat un arxiu nou (cisco.cfg) a la carpeta

/usr/local/nagios/etc/objects, i hem afegit la línia corresponent a l'arxiu de configuració de

Nagios (nagios.cfg).

Per a la definició dels checkejos amb el plugin SNMP, s'han definit comandaments

personalitzats i després s'han definit els serveis i s'han aplicar al router Cisco.

Es monitoritzen elements generals del router com el temps que porta encès, la versió del

router, el nom del router i el nombre de serveis actius. I després es monitoritzen elements

específics, com per exemple el port Fast Ethernet 0/0 que és el que s'utilitza per a comunicar-

se amb Nagios. Del port es monitoritzen el estatus, el tipus de port, la velocitat, la MTU i els

octets d'entrada i de sortida.

# snmp_uptime define command{ command_name check_snmp_uptime command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.1.3.0 } define service{ use generic-service host_name cisco service_description Uptime check_command check_snmp_uptime! } # snmp_version define command{ command_name check_snmp_version command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.1.1.0 }

Page 61: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

57

define service{ use generic-service host_name cisco service_description Version check_command check_snmp_version! } # snmp_srv define command{ command_name check_snmp_srv command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.1.7.0 -l "Services" } define service{ use generic-service host_name cisco service_description Services check_command check_snmp_srv! } # snmp_sysname define command{ command_name check_snmp_sysname command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.1.5.0 } define service{ use generic-service host_name cisco service_description System Name check_command check_snmp_sysname! } # FastEthernet 0/0 define command{ command_name check_snmp_descr_1 command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.2.2.1.2.1 } define service{ use generic-service host_name cisco service_description Port 1 Description check_command check_snmp_descr_1! } define command{ command_name check_snmp_stat_1 command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.2.2.1.8.1 -l "Status" } define service{ use generic-service host_name cisco service_description Port 1 Status check_command check_snmp_stat_1! } define command{ command_name check_snmp_speed_1 command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.2.2.1.5.1 -u "b/s" -l "Speed" }

Page 62: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

58

define service{ use generic-service host_name cisco service_description Port 1 Speed check_command check_snmp_speed_1! } define command{ command_name check_snmp_octets_in_1 command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.2.2.1.10.1 -u "IN" -l "Octets IN" } define service{ use generic-service host_name cisco service_description Port 1 Octets IN check_command check_snmp_octets_in_1! } define command{ command_name check_snmp_octets_out_1 command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.2.2.1.16.1 -u "OUT" -l "Octets OUT" } define service{ use generic-service host_name cisco service_description Port 1 Octets OUT check_command check_snmp_octets_out_1! } define command{ command_name check_snmp_mtu_1 command_line $USER1$/check_snmp -H 192.168.21.254 -C public -o .1.3.6.1.2.1.2.2.1.4.1 -l "MTU" } define service{ use generic-service host_name cisco service_description Port 1 MTU check_command check_snmp_mtu_1! }

Page 63: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

59

22 Actualitzar Nagios

Al iniciar el projecte el setembre del 2011, vam començar a treballar amb la versió de Nagios

3.2.3. Cap al maig del 2012, va sortir la versió 3.4.0 i vam decidir actualitzar Nagios ja que les

proves de la versió van ser favorables.

Abans de procedir a l'actualització, és important fer un backup dels arxius de configuració de

Nagios, ja que un error en el procés d'actualització podria esborrar tota la configuració que

haguem fet.

Un cop fets els backups, s'hauran d'esborrar els arxius principals de la interfície web de Nagios:

rm /usr/local/nagios/share/{main,side,index}.html

22.1 Procés d'actualització

1. Descarregar la última versió de Nagios:

o http://www.nagios.org/download

2. Descomprimir el codi font tarball de Nagios:

o tar xzf nagios-3.4.0.tar.gz

o cd nagios-3.4.0

3. Iniciar el script de configuració passant el paràmetre del nom del grup que té permisos

per executar comandaments externs:

o ./configure --with-command-group=nagcmd

4. Compilar el codi de Nagios.

o make all

5. Instal·lar els binaris actualitzats, la documentació i la interfície web (aquests pas no

sobreescriu els actuals arxius de configuració).

o make install

6. Verificar els arxius de configuració.

o /usr/local/nagios/bin/nagios -v

/usr/local/nagios/etc/nagios.cfg

7. Reiniciar Nagios.

o /etc/init.d/nagios restart

Page 64: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

60

23 Afegir addon pnp4nagios

http://www.pnp4nagios.org/start

PNP és un complement per Nagios que

analitza les dades de rendiment

obtingudes pels plugins i els

emmagatzema automàticament en bases de dades RDD (Round Robin Databases). Aquestes

dades permeten la implementació de gràfiques de rendiment a Nagios.

PNP té una fàcil instal·lació i un mínim manteniment mentre està en funcionament. Un

administrador hauria de dedicar el seu temps a altres tasques en lloc de dedicar-se a

configurar les utilitats gràfiques.

23.1 Funcionament

PNP suporta diverses maneres per processar les dades de rendiment. Les maneres difereixen

en la complexitat i el rendiment que s'esperi.

Nagios invoca una ordre per cada equip i cada servei que tinguin dades de rendiment que

hagin de ser processades. Depenent de la manera escollida, les dades són passades a

process_perfdata.pl o seran escrites en fitxers temporals i processades més tard.

Process_perfdata.pl escriu les dades en fitxers XML i els emmagatzema en fitxers RRD usant

RRDtool.

La manera que ha de triar dependrà de la mida de la instal·lació de Nagios i el nombre d'equips

a monitoritzar.

23.1.1 Mode Síncron

És el més simple i senzill de configurar.

Nagios crida al script de perl

process_perfdata.pl per a cada servei i

equip, respectivament, per processar les

dades. La manera síncrona escala bé fins

uns 1.000 serveis amb un interval de 5

minuts.

(Mètode utilitzat en la pràctica)

23.1.2 Mode Massiu

Nagios escriu les dades necessàries en un fitxer temporal. Després d'un interval de temps

definit aquest fitxer és processat de cop i esborrat a continuació. El nombre de trucades a

process_perfdata.pl es redueix al mínim, en el seu lloc, l'execució de process_perfdata.pl dura

més temps.

Page 65: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

61

23.1.3 Mode Massiu amb NPCD

Nagios utilitza un fitxer temporal per emmagatzemar les dades i executa una ordre després de

cert temps predefinit. En lloc de processar immediatament les dades mitjançant

process_perfdata.pl, el fitxer és mogut a un directori de spool. A causa que únicament estem

movent un fitxer del mateix sistema de fitxers, això no porta pràcticament temps, de manera

que nagios es capaç d'executar el seu treball de forma immediata. El dimoni NPCD (Nagios

Performance C Daemon) monitoritza el directori a la recerca de nous fitxers i li passa els noms

a process_perfdata.pl.

23.2 Instal·lació de pnp4nagios

Paquets necessaris a part de Nagios en funcionament:

rrdtool

librrds-perl

php5-gd

Un cop instal·lats aquests paquets amb el apt-get install, es pot procedir a la descarrega de

pnp4nagios de la web oficial. En aquesta pràctica s'utilitza la versió 0.6.17.

Quan es tingui l'arxiu descarregat, es descomprimeix en una carpeta qualsevol, i des de la

terminal ens situem en aquella carpeta i ja pot començar la instal·lació (important iniciar sessió

com a root):

1. Comprovar que s'ha descomprimit bé i ajudar-se dels arxius README i INSTALL per a la

instal·lació, tot i així, a la web oficial hi ha documentació en espanyol.

2. Executar ./configure

Page 66: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

62

3. Executar make all.

4. Executar make install.

5. Executar make install-webconf.

6. Executar make install-init.

7. Executar make fullinstall.

23.3 Configuració en mode síncron

En aquest punt, s'haurà d'anar a l'arxiu principal de configuració de Nagios (nagios.cfg) i

realitzar alguns canvis:

1. Habilitar proces_performance_data.

o proces_performance_data=1

2. Habilitar macros d'entorn.

o enable_environment_macros=1

3. Habilitar comandaments per a processar les dades de rendiment.

o host_perfdata_command=process-host-perfdata

o service_perfdata_command=process-service-perfdata

Seguidament, anar a l'arxiu commands.cfg i afegir les següents definicions (es possible que ja

existeixin, per si un cas comentar les existents i afegir les noves):

define command { command_name process-service-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl } define command { command_name process-host-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA }

Page 67: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

63

En aquest punt, obrir el navegador web i escriure: http://localhost/pnp4nagios.

Quan tot sigui correcte, esborrar l'arxiu /usr/local/pnp4nagios/share/install.php.

23.4 Verificació de funcionament

De la web oficial de pnp4nagios, es pot descarregar un script per a verificar que tot es correcte

en el funcionament de l'addon i que Nagios està ben configurat per a utilitzar-lo.

En la terminal, ens situem a la carpeta /usr/local/nagios/libexec i executem el següent

comandament:

wget http://verify.pnp4nagios.org/verify_pnp_config

Page 68: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

64

Un cop descarregat el script, executar:

perl verify_pnp_config --mode sync --config=/usr/local/nagios/etc/nagios.cfg

--pnpcfg=/usr/local/pnp4nagios/etc

Els warning ens indica que hi ha serveis i host on el procés de performance_data no està

habilitat.

23.5 Habilitar interfície web

S'ha d'habilitar el process_perf_data a les definicions dels serveis i els host; es pot fer

individualment o a les plantilles (cal tenir en compte que hi ha serveis que per defecte no

generen informació, com per exemple la comprovació de la versió dels agents de Nagios).

Page 69: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

65

Un cop habilitat el procés de performance_data, caldrà afegir un paràmetre nou a les

definicions de host i serveis. Aquest paràmetre és el action_url, que ens farà aparèixer una

imatge al costat de cada host i servei on l'habilitem i serà un link directe cap a la seva

corresponent gràfica. Igual que en el cas anterior, es pot aplicar individualment o a les

plantilles, i cal tenir en compte que no tots els serveis ofereixen informació.

En el cas dels host, afegir:

action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_

En el cas dels serveis:

action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$

En aquest punt, reiniciar Apache i Nagios i entrar a la interfície web de Nagios. Es podrà

comprovar que ara al costat dels hosts i serveis surt un icona nou:

La icona funciona com un link a la interfície web de pnp4nagios enviant les variables php

corresponents per mostrar el gràfic correcte. Per exemple el gràfic de la CPU del servidor

Nagios és el següent:

Una opció interessant que ens ofereix aquest addon, es que es mostrin les gràfiques com a

popups quan es passi el ratolí per sobre de les icones.

Page 70: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

66

23.6 Aplicació de popups

Per a que funcionin els popups, cal que es compleixin una sèrie de requisits:

PNP ha d'estar instal·lat i funcionant.

Copiar l'arxiu status-header.ssi de la carpeta /contrib/ssi dintre del paquet

d'instal·lació de PNP a la carpeta /usr/local/nagios/share/ssi, i un cop copiat,

renombrar-lo a common-header.ssi.

Treure permisos d'execució a l'arxiu anterior.

Canviar la definició del paràmetre action_url de les definicions de host i serveis.

Host:

action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_

Servei:

action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$

Reiniciar Nagios i Apache i tornar a la interfície web de Nagios per a comprovar el

funcionament dels popups:

Page 71: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

67

24 Configurar Postfix per a enviar alertes e-mail

24.1 Afegir i configurar usuaris de contacte

De moment nomes hi ha com a usuari de contacte l'usuari "nagiosadmin". Per a afegir

modificar usuaris, cal modificar l'arxiu /usr/local/nagios/etc/objects/contacts.cfg.

o sudo /usr/local/nagios/etc/objects/contacts.cfg

A l'apartat de contactes, hem modificat el alias i el email de l'usuari nagiosadmin.

Seguidament, hi hem afegit un nou usuari que anomenarem stucomadmin.

Finalment, a l'apartat de grups de contacte, afegim el nou usuari al grup admins:

L'apartat use on posem "generic-contact", fa referència a una plantilla per a contactes que

podem trobar a /usr/local/nagios/etc/objects/templates.cfg.

Page 72: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

68

Nagios necessitarà una conta de correu per poder enviar les notificacions. Ens hem decantat

per crear una conta de Gmail:

NOM: Stucom Projecte

MAIL: [email protected]

PASSWORD: stucom12345

24.2 Instal·lació i configuració de Postfix

Instal·larem el paquet mailutils, que ens proporciona diferents eines de mail i el MUA Postfix.

Executar:

o sudo apt-get install mailutils

Seguidament començarà la instal·lació i se'ns obrirà una pantalla gràfica on haurem d'escollir la

manera en que configurarem el servei SMPT:

A continuació configurarem el nom host (deixem el que ve per defecte):

Finalment es procedeix a la instal·lació. Quan aquesta finalitzi, procedim a la configuració.

Nosaltres per a la pràctica

utilitzarem el servidor SMPT de

Gmail, per això escollirem l'opció

de "Internet Site"

Page 73: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

69

Recordar que si no estem loguejats amb l'usuari root, fer-ho amb sudo -s, ja que treballarem

més còmodament.

1. Creem l'enllaç per al comandament mail:

o ln -s /usr/bin/mail /bin/mail

2. Fem una còpia de la configuració original de Postfix:

o cp -p /etc/postfix/main.cf /etc/postfix/main.cf.original

3. Creem la nostra configuració per a Gmail:

o nano /etc/postfix/main.cf

Aquesta part està al final del document. S'han afegit les últimes 6 línies

4. Generem l'arxiu per la autentificació i hi afegim la línia de la imatge:

o nano /etc/postfix/sasl/passwd

5. Assignem permisos adequats:

o chmod 600 /etc/postfix/sasl/passwd

6. Transformem l'arxiu passwd a un arxiu indexat hash:

o postmap /etc/postfix/sasl/passwd

7. Afegim l'autoritat certificadora:

o cat /etc/ssl/certs/Equifax_Secure_CA.pem >>

/etc/postfix/cacert.pem

8. Reiniciem Postfix:

o /etc/init.d/postfix restart

Page 74: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

70

9. Provem l'enviament de correu:

o mail -s "prova" [email protected]

o CTRL+D (per a enviar)

10. En l'arxiu /var/log/mail.log podem veure el log del sistema de mail.

Finalment cal editar el comandament de Nagios de notificacions per e-mail. Aquest arxiu és

/usr/local/nagios/etc/objects/commands.cfg. A les definicions de comandaments "notify-

host-by-emal" i "notify-service-by-email", cal reemplaçar qualsevol referència "/bin/mail" per

"/usr/bin/mail".

Comprovar que tot és correcte i reiniciar Nagios:

o /usr/local/nagios/bin/nagios -v /usr/local/nagios

/etc/nagios.cfg

o /etc/init.d/nagios restart

Page 75: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

71

25 Configuració del sistema d'alertes

És igual d'important tenir un sistema de monitorització que tenir-lo ben configurat, per lo tant

posarem un exemple real on dos tècnics decideixen monitoritzar el centre d'estudis Stucom.

Les alertes es configuraran segons la necessitat i la importància del processos a monitoritzar. El

nostre sistema d'alertes ens enviarà per correu electrònic les notificacions que es vagin

generen. (No s'ha aplicat cap servei d'alertes per sms degut al seu cost econòmic)

Nagios gestiona dos tipus d'alertes: una de host i una altre per servei.

Alertes per host:

d (down)

u (unreachable)

r (recovery)

Alertes per servei:

w (warning)

u (unknown)

r (recovery)

c (critical)

Les alertes de unreachable i unknown, van lligades, ja que si el servidor Nagios no pot arribar a

un host sigui pel motiu que sigui, l'estat dels serveis d'aquell host serà desconegut. En canvi, si

un host està caigut, entra en acció l'alerta down i en el cas del servei critical.

Les alertes primer s'han d'especificar a la plantilla de contactes, on es definirà la informació del

usuari que rebrà les notificacions:

/usr/local/nagios/etc/object/contacts.cfg

A la plantilla de contactes es pot observar que hi ha el període de notificació 24x7, que està

definit a l'arxiu timeperiods.cfg. No obstant, es poden declarar noves definicions de períodes

de notificació, per exemple excloent els mesos de vacances, dies i hores específiques...

A la guia oficial de Nagios, a l'apartat de "Object definitions" hi ha un subapartat on

s'especifiquen totes les opcions per a configurar els períodes de temps i com aplicar-los.

Page 76: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

72

De la mateixa manera que es poden definir nous contactes, es poden definir grups de

contactes. Per exemple, es podria fer un grup encarregat dels servidors i un altre grup

encarregat dels elements de xarxa. En les plantilles respectives (servidors i elements de xarxa)

hi ha el paràmetre contact_groups, on es poden especificar els grups de Nagios que rebran

notificacions sobre aquell host o servei.

Nagios recomana activar totes les alertes en les definicions de contactes dels

administradors, i després en les definicions a les plantilles de serveis o de host,

desactivar les que no interessen.

Stucom disposa de dos administradors de xarxa, per la qual cosa es crearia un contacte per

cadascun i es posarien al grup admins.

Respecte als ordinadors de les aules, seria recomanable desactivar les notificacions de host i

de serveis ja que ens podrien inundar de notificacions. No obstant, gràcies a les gràfiques, es

podria comprovar per exemple l'ús de memòria RAM durant les hores de sistemes operatius,

ja que normalment es treballa molt amb màquines virtuals.

En el cas dels servidors de la xarxa d'alumnes, els elements més importants a monitoritzar

serien els servidors d'Active Directory, sense deixar de banda el firewall de les aules, els proxys

per sortir a Internet i els servidors externs per a comprovar que la sortida pel router es bona.

25.1 Establiment d'alertes

Servidors d'Active Directory

SERVIDOR: down, unreachable i recovery.

CPU: warning (80%), critical (90%) i recovery.

RAM: warning (80%), critical (90%) i recovery.

Discos durs: warning (80%) i critical (90%).

DHCP: critical i recovery.

DNS: critical i recovery.

LDAP: critical i recovery.

Servidors d'arxius

SERVIDOR: down, unreachable i recovery.

CPU: warning (80%), critical (90%) i recovery.

RAM: warning (80%), critical (90%) i recovery.

Discos durs: warning (80%) i critical (90%).

Page 77: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

73

Firewall

SERVIDOR: down, unreachable i recovery.

CPU: warning (80%), critical (90%) i recovery.

RAM: warning (80%), critical (90%) i recovery.

Ports: seria convenient comprovar que estan oberts els ports que tenen el pas permès pel

firewall. Els nivells de notificació serien critical i recovery.

o TCP: 389 (AD)

o UDP: 53 (DNS), 67 i 68 (DHCP)

Proxy

SERVIDOR: down, unreachable i recovery.

CPU: warning (80%), critical (90%) i recovery.

RAM: warning (80%), critical (90%) i recovery.

Router

ROUTER: down, unreachable i recovery.

PING: warning (300 ms), critical (500 ms).

Servidors Externs

Les notificacions d'aquests host venen determinades per la correcta sortida a Internet, que

depèn totalment del proxy, dels router i del ISP.

SERVIDOR: unreachable.

PING: warning (300 ms), critical (500 ms)

Page 78: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

74

26 Valoració final i conclusions

Aquest projecte ens ha servit per aprendre totes les avantatges que ofereix la monitorització

de sistemes i hardware, i lo important que és per un administrador informàtic tenir control

total sobre el que li passa a la xarxa o xarxes que administra.

Hem pogut analitzar amb detall els diferents mètodes i solucions de monitorització que hi ha

en el mercat, i hem descobert que no hi ha una solució millor que un altre, sinó que cada una

té els seus punts forts i febles, i s'ha d'avaluar quina s'adapta més a les nostres necessitats,

tant com per la capacitat del software com la complexitat de configuració.

En el projecte hem tingut la prioritat de buscar un sistema de monitorització orientat a la

xarxa, el hardware i sistemes amb la intenció d'aplicar-ho a la realitat al centre d'estudis

Stucom, però la configuració de Nagios es pot estendre molt més allà d'un centre d'estudis

gràcies a la seva alta escalabilitat i la possibilitat d'ampliar les capacitats del programa amb

software de tercers (addons, pluguins, etc...)

Page 79: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

75

27 Webgrafia

Documentació oficial:

http://www.nagios.org

http://library.nagios.com/library/products/nagioscore/manuals/

http://nagios.sourceforge.net

http://www.nsclient.org/nscp

Documentació no oficial

http://www.thegeekstuff.com/2008/11/how-to-monitor-network-switch-and-ports-

using-nagios/

http://blog.unlugarenelmundo.es/2007/06/29/instalando-nagios-3x-en-debian-etch/

http://blog.unlugarenelmundo.es/2007/07/11/configurando-nagios-3x-y-i/

http://nagioses.blogspot.com/2009/03/snmp.html

http://wiki.postgresql.org/wiki/Usando_Nagios

http://www.becodemyfriend.com/2011/04/manual-de-instalacion-y-configuracion-de-

nagios-3-monitoring-parte-ii/

http://www.descomsms.com/aplicaciones/alertas-por-sms-para-nagios.html

http://gnokii.org/index.shtml

http://cayu.com.ar/files/manuales-nagios.pdf

http://www.slideshare.net/rpm-alerts/manual-final-nagios

http://www.trucoslinux.es/nagios-monitorizar-memoria-ram-con-nrpe/

http://docs.pnp4nagios.org/es/pnp-0.6/start

http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-traves-de-un-

relay-host-autenticado-gmail

SNMP, MRTG i SSL:

http://es.wikipedia.org/wiki/Simple_Network_Management_Protocol

http://www.alcancelibre.org/staticpages/index.php/como-linux-snmp

http://www2.linuxparatodos.net/web/comunidad/base-de-conocimiento

https://support.ipmonitor.com/snmp_center.aspx

http://es.wikipedia.org/wiki/MRTG

http://www.netcraftsmen.net/resources/archived-articles/370-configuring-snmp-in-

cisco-routers.html

Altres recursos utilitzats:

http://www.cacti.net

http://pandorafms.org

http://www.ubuntu.com

http://www.fpnetzone.com

http://www.pfsense.com

Page 80: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

76

ANNEX: Script memòria RAM Linux

#!/bin/sh

# check_mem.sh

# Determine memory usage percentage on Linux servers.

# Original write for RHEL3 for PC1 Project - jlightner 05-Jul-2005

#

# Modified for RHEL5 on mailservers.

# -Some of the escapes previously required for RHEL3's ksh not needed on

RHEL5.

# -Changed comparisons to allow for decimal rather than integer values.

#

# Usage: check_mem.sh WARNING CRITICAL

# Where WARNING and CRITICAL are the integer only portions of the

# percentage for the level desired.

# (i.e. 85% Warning & 95% Critical should be input only as "85 95".)

# Define Levels based on input

#

WARNLEVEL=$1

CRITLEVEL=$2

# Setup standard Nagios/NRPE return codes

#

UNKNOWN_STATE=3

CRITICAL_STATE=2

WARNING_STATE=1

OK_STATE=0

# Give full paths to commands - Nagios can't determine location otherwise

#

BC=/usr/bin/bc

GREP=/bin/grep

AWK=/bin/awk

FREE=/usr/bin/free

TAIL=/usr/bin/tail

HEAD=/usr/bin/head

# Get memory information from the "free" command - output of top two lines

# looks like:

# total used free shared buffers

cached

# Mem: 8248768 6944444 1304324 0 246164

5647524

# The set command will get everything from the second line and put it into

# posiional variables $1 through $7.

#

set `$FREE |$HEAD -2 |$TAIL -1`

# Now give variable names to the positional variables we set above

Page 81: Proyectos: Sistema de monitorización Nagios aplicado al centro de Estudios Stucom

Jordi Muria Badia, Bernat Romeu Llabrés PROJECTE – ASIX

77

#

MEMTOTAL=$2

MEMUSED=$3

MEMFREE=$4

MEMBUFFERS=$6

MEMCACHED=$7

# Do calculations based on what we got from free using the variables defined

#

REALMEMUSED=`echo $MEMUSED - $MEMBUFFERS - $MEMCACHED | $BC`

USEPCT=`echo "scale=3; $REALMEMUSED / $MEMTOTAL * 100" |$BC -l`

#USEPCT=`echo scale=3 "n" $REALMEMUSED / $MEMTOTAL * 100 |$BC -l |$AWK -F.

'{print $1}'`

# Compare the Used percentage to the Warning and Critical levels input at

# command line. Issue message and set return code as appropriate for each

# level. Nagios web page will use these to determine alarm level and

message.

#

#if [ `echo "5.0 > 5" |bc` -eq 1 ]

#then echo it is greater

#else echo it is not greater

#fi

if [ `echo "$USEPCT > $CRITLEVEL" |bc` -eq 1 ]

then echo "CRITICAL - Memory usage is ${USEPCT}%"

exit ${CRITICAL_STATE}

elif [ `echo "$USEPCT > $WARNLEVEL" |bc` -eq 1 ]

then echo "WARNING - Memory usage is ${USEPCT}%"

exit ${WARNING_STATE}

elif [ `echo "$USEPCT < $WARNLEVEL" |bc` -eq 1 ]

then echo "OK - Memory usage is ${USEPCT}%"

exit ${OK_STATE}

else echo "Unable to determine memory usage."

exit ${UNKNOWN_STATE}

fi

echo "Unable to determine memory usage."

exit ${UNKNOWN_STATE}