Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command...

103
Optimisacion del ancho de banda Monitoreo/Nagios Christian Benvenuti [email protected] Managua, Nicaragua, 1-5/3/2010 UNAN-Managua

Transcript of Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command...

Page 1: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Optimisacion del ancho de bandaMonitoreo/Nagios

Christian [email protected]

Managua, Nicaragua, 1-5/3/2010

UNAN-Managua

Page 2: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Before we start ...

● Have you ever used Nagios?● Have you ever installed Nagios?

● How? (tarball or via GUI)● If yes, can you remember any specific problem you

had to resolve?

● What kind of monitoring information can Nagios provide? (examples)

● What kind of monitoring information can't Nagios provide? (examples)

Page 3: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Schedule● Introduction to the class of network monitoring

features provided by Nagios● Architectural overview: object types and

relationships, etc● Overview of basic features and examples of

configurations● Overview of more advanced features and

examples of configurations● Installation and basic configuration● Exercises

Page 4: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Basic Features● Object types and relationships

● Hosts vs Services● Host groups, Service groups

● Contacts and notifications● Contact groups, escalations

● Templates● Object Dependencies● Templates and Object Inheritance● Passive checks and NCSA (quick intro)● Management (Web Interface)

I know thisalready (Y/N)

Page 5: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Advanced features

● Nagios Check Service Acceptor (NCSA)● Remote monitoring

● Nagios Remote Plugin Executor (NRPE)● Simple Network Management Protocol (SNMP)

I know thisalready

Probably tomorrow, together with MRTG & Cacti

OPTIONAL(time permitting)

Page 6: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Functionalities Overview● What do we want/need to monitor?● What do we want/need to do with the information

returned by the monitoring process?● What if a host is down?● What if the web server is UP (=reachable) but not

working properly?

● How would the organization of the monitoring configuration change when applied to a big network?● Scalability● Easiness of upgrade/troubleshooting● etc

Page 7: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Example

Nagios

Internet

WWW Mail

...

PC1 PCn

...

Admin1

Admin2

Suporte tecnico

...

DHCP

How would I write (in plain English orSpanish) the monitoring rules/configthat would simplify the admin's life?

Page 8: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object types

● Monitored object types:● Hosts (routers, switches, servers, ...)● Services (www, dhcp, ftp, ssh, ...)● Derived monitored object types

– Host groups– Service groups

● Xxx object types:● Contacts and Contact Groups● Time periods● Commands

Page 9: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Host vs Service

Nagios

Internet

WWW Mail

...

PC1 PCn

...

Admin1

Admin2

Suporte tecnico

...

DHCP

Is this ahost or a service?

What is this?

And this?

Page 10: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

What's the difference between hosts and services?

TCP/IP stack

Applications

WE

B s

erve

r

Em

ail s

erve

r

DN

S s

erve

r

...

host

services

This rule does not apply always.Example?

SS

HD

ser

ver

Page 11: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: host

define host {

host_name default_gw

alias default gateway

address 10.0.1.1

...

}

10.0.1.1/24

10.0.1.100/24

NagiosInternet

gw.mynet.edu

Page 12: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: host

define host {

}

host_name default_gwalias default_gatewayaddress 10.0.1.1...

... check parameters ...

... contact/notificationparameters ...

check_commandcheck_intervalretry_intervalmax_check_attemptscheck_period

Page 13: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: host

define host {

}

host_name default_gwalias default_gatewayaddress 10.0.1.1...

... check parameters ...

... contact/notificationparameters ...

contactscontact_groupsfirst_notification_delaynotification_intervalnotification_periodnotification_options

Page 14: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: hostExample

define host {

host_name default_gw

alias default gateway

address 10.0.1.1

check_command check-host-alive

check_interval 5

retry_interval 1

max_check_attempts 5

check_period 24x7

contacts [email protected]

notification_interval 60

notification_period 24x7

notification_options d,u,r

}

Page 15: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: hostExample

define host {

host_name default_gw

alias default gateway

address 10.0.1.1

check_command check-host-alive

check_interval 5

retry_interval 1

max_check_attempts 5

check_period 24x7

contacts [email protected]

notification_interval 60

notification_period 24x7

notification_options d,u,r

}

define host { host_name router_eng alias Router for the Engineering campus address 10.0.1.1 ...}define host { host_name router_law alias Router for the Law campus address 10.0.2.1 ...}define host { host_name router_art alias Router for the Art campus address 10.0.3.1 ...}

Eng

Law

Art

10.0.1.2

10.0.1.3

10.0.1.4

Nagios

Internet

10.0.1.1

Nagios

Nagios

Page 16: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define host { host_name router_eng alias Router for the Engineering campus address 10.0.1.1 ...}define host { host_name router_law alias Router for the Law campus address 10.0.2.1 ...}define host { host_name router_art alias Router for the Art campus address 10.0.3.1 ...}

Eng

Law

Art

10.0.1.2

10.0.1.3

10.0.1.4

Internet

10.0.1.1

Nagios

define host {

host_name router_eng

alias Router for the Engineering campus

address 10.0.1.1

...

}

define host {

host_name router_law

alias Router for the Law campus

address 10.0.1.2

...

}

define host {

host_name router_art

alias Router for the Art campus

address 10.0.1.3

...

}

define hostgroup {

hostgroup_name campus_routers

alias All the routers that connect the university campuses

members router_art, router_law, router_eng

}

Object type: hostgroup

Page 17: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define host { host_name router_eng alias Router for the Engineering campus address 10.0.1.1 ...}define host { host_name router_law alias Router for the Law campus address 10.0.2.1 ...}define host { host_name router_art alias Router for the Art campus address 10.0.3.1 ...}

Eng

Law

Art

10.0.1.2

10.0.1.3

10.0.1.4

Internet

10.0.1.1

Nagios

define host {

host_name router_eng

alias Router for the Engineering campus

address 10.0.1.2

...

}

define host {

host_name router_law

alias Router for the Law campus

address 10.0.1.3

...

}

define host {

host_name router_art

alias Router for the Art campus

address 10.0.1.4

...

}

define hostgroup {

hostgroup_name campus_routers

alias All the routers that connect the university campuses

members 10.0.2.1, 10.0.3.1, 10.0.4.1

}

Is this config correct?

Page 18: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define host { host_name router_eng alias Router for the Engineering campus address 10.0.1.1 ...}define host { host_name router_law alias Router for the Law campus address 10.0.2.1 ...}define host { host_name router_art alias Router for the Art campus address 10.0.3.1 ...}

Eng

Law

Art

10.0.1.2

10.0.1.3

10.0.1.4

Internet

10.0.1.1

Nagios

define host {

host_name router_eng

alias Router for the Engineering campus

address 10.0.2.1

...

}

define host {

host_name router_law

alias Router for the Law campus

address 10.0.3.1

...

}

define host {

host_name router_art

alias Router for the Art campus

address 10.0.4.1

...

}

define hostgroup {

hostgroup_name campus_routers

alias All the routers that connect the university campuses

members router_eng, router_law, router_art

}

Is this config correct?

Page 19: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define host { host_name router_eng alias Router for the Engineering campus address 10.0.1.1 ...}define host { host_name router_law alias Router for the Law campus address 10.0.2.1 ...}define host { host_name router_art alias Router for the Art campus address 10.0.3.1 ...}

Eng

Law

Art

10.0.1.2

10.0.1.3

10.0.1.4

Internet

10.0.1.1

Nagios

define host {

host_name router_eng

alias Router for the Engineering campus

address 10.0.1.2

...

}

define host {

host_name router_law

alias Router for the Law campus

address 10.0.1.3

...

}

define host {

host_name router_art

alias Router for the Art campus

address 10.0.1.4

...

}

define hostgroup {

hostgroup_name campus_routers

alias All the routers that connect the university campuses

members router_eng, router_law, router_art

}

Is this config correct?

Page 20: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define host { host_name router_eng alias Router for the Engineering campus address 10.0.1.1 ...}define host { host_name router_law alias Router for the Law campus address 10.0.2.1 ...}define host { host_name router_art alias Router for the Art campus address 10.0.3.1 ...}

Eng

Law

Art

10.0.1.2

10.0.1.3

10.0.1.4

Internet

10.0.1.1

Nagios

define host {

host_name router_eng

alias Router for the Engineering campus

address 10.0.1.2

...

}

define host {

host_name router_law

alias Router for the Law campus

address 10.0.1.3

...

}

define host {

host_name router_art

alias Router for the Art campus

address 10.0.1.4

...

}

define hostgroup {

hostgroup_name campus_routers

alias All the routers that connect the university campuses

Members router_eng, router_law, router_art

}

Is this config correct?

Page 21: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Examples of Host Groups

hostgroup windows_lab hostgroup linux_lab

Page 22: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Examples of Host Groups

hostgroup servidores_web hostgroup servidores_correo

WEB Correo WEB Correo

Campus A Campus B

... ...

Page 23: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Hosts vs Services

WEB Correo

Campus A

...

Nagios

10.0.1.100 10.0.1.101

define host { host_name Campus_A_WEB alias Servidor Web Campus A address 10.0.1.100 check_command check_host_alive ...}define host { host_name Campus_A_CORREO alias Servideor Correo Campus A address 10.0.1.101 check_command check_host_alive ...}

Is this sufficient to monitor the two Web/Mail servers?

Page 24: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: servicedefine host { host_name web_server alias WEB server address 10.0.1.100 ...}

define service { host_name web_server , ... service_description WEB server check_command check_http ...}

Nagios

Internet

10.0.1.100

WWW

...

...

Page 25: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: service

define service {

}

host_name default_gwalias default_gatewayaddress 10.0.1.1...

... check parameters ...

... contact/notificationparameters ...

check_commandcheck_intervalretry_intervalmax_check_attemptscheck_period

Page 26: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Hosts vs Services

define host {

}

host_name alias address ...

... check parameters ...(check_command, etc)

... contact/notificationparameters ...(contacts, etc)

host_name service_description...

... check parameters ...(check_command, etc)

... contact/notificationparameters ...(contacts, etc)

define service {

}

Page 27: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: servicegroup

define servicegroup {

servicegroup_name web_servers

alias todos los servidores we

members host1,service1, host2,service2, ...

...

}

Page 28: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Example of service group

define host {

host_name www_unan_managua

alias UNAN Managua web server

address www.unan.edu.ni

...

}

define host {

host_name ftp_unan_leon

alias UNAN Managua ftp server

address ftp.unan.edu.ni

...

}

define servicet {

host_name www_unan_managua

service_description www

check_command check_http

...

}

define service {

host_name ftp_unan_managua

service_description ftp

check_command check_ftp

...

}

define service_group {

servicegroup_name services_unan_managua

alias servicios publicos ofrecidos por UNAN Managua

members www_unan_managua,www, ftp_unan_managua,ftp

...

}

Page 29: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Plugins:parameter check_command

● Host plugins● check_host_alive

● Service plugins● check_http● check_dns● check_dhcp● ...

Page 30: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: (check) commands

define command {

command_name .........

command_line .........

}

Example from /etc/nagios/objects/commands.cfg:

define command { command_name check_http command_line $USER1$/check_http -I \ $HOSTADDRESS$ $ARG1$ }

Page 31: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: (check) commands

define command { command_name check_http command_line $USER1$/check_http -I \ $HOSTADDRESS$ $ARG1$ }

USER MACRO(See resources.cfg)

Pre-defines MACROs

Is this a chicken-egg problem?

There are other typesof macro too (see

on-demand macros)

Page 32: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Notifications

Contacts Notifications

What? When? How?

Page 33: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Notifications

● When there is a problem● Do you think the more people receive a notification

and the better it is?● Do you think an email is sufficient to tell/notify the

owner of a service/host about a problem?● How do you handle cases where it is not clear who

the best contact person/s is/are?– This may not be an issue when there is lack of personal

and everybody takes care of everything. Does this sound like a familiar situation to you :-) ?

Page 34: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Notifications

InstantMessaging

Pager

SMS

Email

How good are emailsfor urgent problems?

Are these a good option fornotifications generated duringthe night?

It depends!

Page 35: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

NotificationsEscalations

Nagios

Internet

10.0.1.100

WWW

X

...

Escalation

Page 36: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Parameters check_period and notification_period

● check_period● Name of the time period during which Nagios

should check the host/service status.● notification_period

● Name of the time period during which Nagios should generate notifications if necessary (according to the config).

● Same syntax (= object timeperiod)

define timeperiod { timeperiod_name <name> alias <description> ... } See file /etc/nagios/objects/timeperiods.cfg in FC12 for a few examples.

Page 37: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: contact

define contact {

}

contact_name Benvealias Christian Benvenuti

... HOST notificationparameters ...

... SERVICE notificationparameters ...

... addresses ...

... etc ...

Page 38: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: contact

define contact {

}

contact_name Benvealias Christian Benvenuti

... HOST notificationparameters ...

... SERVICE notificationparameters ...

emailpageraddress1address2...address6

... addresses ...

... etc ...

Page 39: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: contact

define contact {

}

contact_name Benvealias Christian Benvenuti

... HOST notificationparameters ...

... SERVICE notificationparameters ...

host_notifications_enabledhost_notification_periodhost_notification_commandshost_notification_options

... addresses ...

... etc ...

Page 40: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: contact

define contact {

}

contact_name Benvealias Christian Benvenuti

... HOST notificationparameters ...

... SERVICE notificationparameters ...

service_notifications_enabledservice_notification_periodservice_notification_commandsservice_notification_options

... addresses ...

... etc ...

Page 41: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: contactdefine contact { contact_name benve alias Christian Benvenuti email [email protected]

host_notifications_enabled 1 host_notification_period 24x7 host_notification_commands host-notify-by-email host_notification_options d,u,r

service_notifications_enabled 1 service_notification_period 24x7 service_notification_commands notify-by-email service_notification_options w,c,u,r}

Page 42: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Object type: contactgroup

define contact { contact_name admin1 alias Christian Benvenuti email [email protected] ...}define contact { contact_name admin2 alias Elvis Presley email [email protected] ...}define contactgroup { contactgroup_name net_admins alias Administradores de red members admin1, admin2} Another option: contactgroup_members

Page 43: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define hostescalation {

}

define serviceescalation {

}

Escalations (object types)

host_namehostgroup_name

first_notificationlast_notificationnotification_interval

contactscontactgroups

escalation_periodescalation_options

host_namehostgroup_nameservice_description

contactscontactgroups

first_notification last_notificationnotification_interval

escalation_periodescalation_options

Page 44: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Example 1 (1/2)

Internet

net-admin

WWW

www-admin mail-admin

...

10.0.1.100

Page 45: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define serviceescalation {

}

Example 1 (2/2)

host_name WWWservice_description WWW

first_notification 2last_notification 0notification_interval 60

contacts net-admincontactgroups

escalation_period daytimeescalation_options u,d,r

define contact {contact_name www-adminalias Cippa Lippaemail [email protected]_notifications_enabled 1service_notification_period 24x7service_notification_commands notify-by-emailservice_notification_options d,u,r...

}define contact {

contact_name net-adminalias Pinco Pallaemail [email protected]_notifications_enabled 1service_notification_period 24x7service_notification_commands notify-by-emailservice_notification_options d,u,r...

}

define timeperiod {timeperiod_name daytimealias 8am - 6pmmonday 08:00-18:00tuesday 08:00-18:00wednesday 08:00-18:00thursday 08:00-18:00friday 08:00-18:00saturday 08:00-12:00

}

define host {host_name WWWalias Web Serveraddress 10.0.1.100 ...

}define service {

host_name WWWservice_description WWWcontacts www-admin...

}

Page 46: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Example 2 (1/2)

router1

router2

router3

grp_routers

ENG net

HR net

Internet

ServiceProvider

net-admin-eng

net-admin-hr

grp_it_escalation

Page 47: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define hostescalation {

}

Example 2 (2/2)

host_namehostgroup_name grp_routers

first_notification 4last_notification 0notification_interval 60

contactscontactgroups grp_it_escalation

escalation_periodescalation_options u,d,r

define contact {contact_name net-admin-engalias Christian Benvenutiemail [email protected]_notifications_enabled 1host_notification_period 24x7host_notification_commands host-notify-by-emailhost_notification_options d,u,r...

}define contact {

contact_name net-admin-hralias Pinco Pallaemail [email protected]_notifications_enabled 1host_notification_period 24x7host_notification_commands host-notify-by-emailhost_notification_options d,u,r...

}define contactgroup { contactgroup_name grp_it_escalation alias Escalation group members net-admin-eng, net-admin-hr }

define hostgroup { hostgroup_name grp_routers alias All routers members router1, router2, router3}

Page 48: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Parents and Dependencies

● Parents● Host – Host

● Dependencies● Host/s - Host/s● Service/s – Service/s

Is the difference between the following two cases clear?

● Parent (host-host)● Dependencies (host-host)

Page 49: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Parents / Host-HostExample 1

NagiosInternet

WWW(10.0.2.100)

10.0.2.1

10.0.1.110.0.1.2

Mail(10.0.2.101)

Router

define host { host_name WWW alias Web Server address 10.0.2.100 parents Router ...}

define host { host_name Mail alias Mail Server address 10.0.2.101 parents Router ...}

define host { host_name Router alias Main router address 10.0.1.1 ...}

Page 50: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Parents / Host-HostExample 2

Nagios

Internet

WWW(10.0.2.100)

10.0.2.1

10.0.1.1

10.0.1.2

Mail(10.0.2.101)

Router

define host { host_name WWW alias Web Server address 10.0.2.100 parents Router ...}

define host { host_name Mail alias Mail Server address 10.0.2.101 parents Router ...}

define host { host_name Router alias Main router address 10.0.1.1 ...}

?

Page 51: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Parents / Host-HostExample 3

Nagios

Internet

WWW(10.0.2.100)

10.0.2.1

10.0.1.1

Mail(10.0.2.101)

Routerdefine host { host_name WWW alias Web Server address 10.0.2.100 parents Router ...}

define host { host_name Mail alias Mail Server address 10.0.2.101 parents Router ...}

define host { host_name Router alias Main router address 10.0.1.1 ...}

?

Page 52: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Parents / Host-HostExample 4

Nagios

Internet

WWW(10.0.3.100)

10.0.3.1

10.0.2.2

10.0.1.2

Mail(10.0.3.101)

Router1define host { host_name WWW alias Web Server address 10.0.2.100 parents ??? ...}

define host { host_name Mail alias Mail Server address 10.0.2.101 parents ??? ...}

define host { host_name Router alias Main router address 10.0.1.1 ...}

Router2

10.0.2.1

10.0.1.1

Page 53: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Dependencies / Host-Host

● It is not the same as parent-child● This relationship does not depend on the network

topology

Page 54: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Dependencies / Service-ServiceExample 1

NagiosInternet

Mail(10.0.2.100)

10.0.2.1

10.0.1.110.0.1.2

DNS(10.0.2.101)

Router

define host {host_name Mailalias Mail server (SMTP/IMAP)Address 10.0.2.100check_command check-host-alive...

}define service {

host_name Mailservice_description SMTP servercheck_command check_smtp...

}define service {

host_name Mailservice_description IMAP servercheck_command check_imap...

}define host {

host_name DNSalias Primary DNS Serveraddress 10.0.2.101check_command check-host-alive...

}define service {

host_name DNSservice_description Primary DNS servercheck_command check_dns...

}

define servicedependency {host_name DNSservice_description DNS Serverdependent_host_name Maildependent_service_description Mail Server (SMTP/IMAP)execution_failure_criteria c,unotification_failure_criteria c,u

}

Critical, Unknown

Page 55: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Dependencies / Service-ServiceExample 2

Nagios

Internet

Mail(10.0.2.100)

10.0.2.1

10.0.1.1

10.0.2.2

DNS(10.0.2.101)

Router

define host {host_name Mailalias Mail server (SMTP/IMAP)Address 10.0.2.100check_command check-host-alive...

}define service {

host_name Mailservice_description SMTP servercheck_command check_smtp...

}define service {

host_name Mailservice_description IMAP servercheck_command check_imap...

}define host {

host_name DNSalias Primary DNS Serveraddress 10.0.2.101check_command check-host-alive...

}define service {

host_name DNSservice_description Primary DNS servercheck_command check_dns...

}

define servicedependency {host_name DNSservice_description DNS Serverdependent_host_name Maildependent_service_description Mail Server (SMTP/IMAP)execution_failure_criteria c,unotification_failure_criteria c,u

}

?

Page 56: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Dependencies / Service-ServiceExample 3

Nagios

Internet

Mail(10.0.2.100)

10.0.2.1

10.0.1.1

DNS(10.0.2.101)

Router

define host {host_name Mailalias Mail server (SMTP/IMAP)Address 10.0.2.100check_command check-host-alive...

}define service {

host_name Mailservice_description SMTP servercheck_command check_smtp...

}define service {

host_name Mailservice_description IMAP servercheck_command check_imap...

}define host {

host_name DNSalias Primary DNS Serveraddress 10.0.2.101check_command check-host-alive...

}define service {

host_name DNSservice_description Primary DNS servercheck_command check_dns...

}

define servicedependency {host_name DNSservice_description DNS Serverdependent_host_name Maildependent_service_description Mail Server (SMTP/IMAP)execution_failure_criteria c,unotification_failure_criteria c,u

}

?

Page 57: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Dependencies / Service-ServiceExample 4

Nagios

Internet

Mail(10.0.2.100)

10.0.2.1

10.0.1.1

DNS(10.0.2.101)

Router

define host {host_name Mailalias Mail server (SMTP/IMAP)Address 10.0.2.100check_command check-host-alive...

}define service {

host_name Mailservice_description SMTP servercheck_command check_smtp...

}define service {

host_name Mailservice_description IMAP servercheck_command check_imap...

}define host {

host_name DNSalias Primary DNS Serveraddress 10.0.2.101check_command check-host-alive...

}define service {

host_name DNSservice_description Primary DNS servercheck_command check_dns...

}

define servicedependency {host_name DNSservice_description DNS Serverdependent_host_name Maildependent_service_description Mail Server (SMTP/IMAP)execution_failure_criteria c,unotification_failure_criteria c,u

}

?

VPN

Page 58: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Dependencies / Service-Service

What are other examples of dependencies between services?

Page 59: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define hostdependency {

}

define servicedependency {

}

DependenciesHost-Host vs Service-Service

dependent_host_namedependent_hostgroup_name

inherits_parent execution_failure_criteria notification_failure_criteriadependency_period

host_namehostgroup_name

dependent_host_namedependent_hostgroup_namedependent_service_description

inherits_parent execution_failure_criteria notification_failure_criteriadependency_period

host_namehostgroup_nameservice_description

Page 60: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

define hostdependency {

}

Dependencies

dependent_host_name = X

inherits_parent execution_failure_criteria notification_failure_criteriadependency_period

host_name = Y

X depends on Y

OR

Y depends on X

???

Check thedocumentation

Page 61: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Templates

● They allow you to write configurations easier to maintain and sanity-check

● Inheritance support● Multiple templates support

Page 62: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Templates(= Object Oriented Configuration)

X = 10Y = 120Z = YesK = 0.1A = 1B = 2

X = 10Y = 120Z = YesK = 0.1A = 3B = 12

X = 10Y = 120Z = YesK = 0.1A = 5B = 7

X = 50Y = 0Z = YesK = 0.1A = 5B = 7

Template T1X = 10Y = 120Z = YesK = 0.1

Use Template T1A = 1B = 2

Use Template T1A = 3B = 12

Use Template T1A = 5B = 7

X = 50Y = 0Z = YesK = 0.1A = 5B = 7

Page 63: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Templates(= Object Oriented Configuration)

X = 10Y = 120Z = YesK = 0.1A = 1B = 2

X = 10Y = 120Z = YesK = 0.1A = 3B = 12

X = 10Y = 120Z = YesK = 0.1A = 5B = 7

X = 50Y = 0Z = YesK = 0.1A = 5B = 7

Template T1X = 10Y = 120

Use Templates T1,T2A = 1B = 2

Use Templates T1,T2A = 3B = 12

Use Templates T1,T2A = 5B = 7

Use Template T2X = 50Y = 0A = 5B = 7

Template T2Z = YesK = 0.1

Page 64: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Templates(= Object Oriented Configuration)

X = 10Y = 120Z = YesK = 0.1A = 1B = 2

X = 10Y = 120Z = YesK = 0.1A = 3B = 12

X = 10Y = 120Z = YesK = 0.1A = 5B = 7

X = 10Y = 120Z = NoK = 0.5A = 5B = 7

Template T1X = 10Y = 120

Use Template T2A = 1B = 2

Use Template T2A = 3B = 12

Use Template T2A = 5B = 7

Use Template T1Z = 10K = 0.5A = 5B = 7

Template T2Use Template T1Z = YesK = 0.1

What if I addX = 11here?

Page 65: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Templates● Special keywords

● register– The parameter passed to the option register is what

distinguishes objects (value 1) from templates (value 0)● use

– Used to list the template/s to use

define host { name WWW1 A = 1 B = 2 C = 5 register 1}

define host { name WWW2 A = 1 B = 2 C = 6}

define host { name WWW-generic A = 1 B = 2 register 0}

define host { use WWW-generic name WWW3 C = 7}

Page 66: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Event Handlers

● Exercise:● Using the online documentation try to understand

what this feature is used for and how to configure it

Page 67: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Active checks vs Passive checks

● Exercise:● Using the online documentation try to understand

what the difference between the two types of checks are (no need to understand the configuration for now, just the functionality)

Page 68: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Active checks vs Passive checks

● Active checks● You configure Nagios to periodically check the status of

hosts/services

● Passive checks● You configure Nagios to accept asynchronous

hosts/services check status information from other applications– Special case: info received from another (or more than one)

Nagios instance

● Active and passive checks are not exclusive● Active checks can be configures to kick-in if no passive

check info is received for a given amount of time

Page 69: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Passive checks

● They make sense mainly when:● the check process/scheme requires a variable and

possibly long time to execute, or● another application already implements the logic

required to determine the status of a host/service and can be configured to return it asynchronously.

Page 70: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Passive checks

...accept_passive_service_checks = 1accept_passive_host_checks = 1

...

FC12: /etc/nagios/nagios.cfg

define host {host_name router_engalias Router Engineering campus...active_checks_enabled 1passive_checks_enabled 1

}

0 00 11 01 1

define service {host_name web_server , ...service_description WEB server...active_checks_enabled 0passive_check_enabled 1

}

All combinationsare valid

Exercise:Check the documentation and find outwhat “Freshness” is with regards topassive checks.

Page 71: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

● Exercise● Find the location of the file nagios.cmd and

determine what it is and what it is used for.

# ls /var/spool/nagios/cmd/nagios.cmd -laprw-rw----. 1 nagios nagios 0 2010-02-12 17:20 /var/spool/nagios/cmd/nagios.cmd

# locate nagios.cmdOR# rpm -ql nagios | grep cmdOR...

# file /var/spool/nagios/cmd/nagios.cmd/var/spool/nagios/cmd/nagios.cmd: fifo (named pipe)

(The examples above assume you are using the default installation with FC12)

Page 72: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Nagios Command PIPE

Nagios

process

Filesystem

/

spool

nagios

cmd

nagios.cmd

ApplicationXYZ

NOTE:The PIPE is unidirectional.Is it clear what this means?

Page 73: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Nagios Service Check Acceptor (NSCA)

Nagiosprocess

Filesystem

/

spool

nagios

cmd

nagios.cmd

ncsaserver

ncsaclient

(send_nsca)

ApplicationXYZ

(it could beanother Nagios)

Page 74: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Nagios Service Check Acceptor (NSCA)

ncsaclient

(send_nsca)

(The example assumes you are using the default installation with FC12)

server_port = 5667nsca_user = nagios

command_file = password = decryption_method =

password =encryption_method =

/etc/nagios/nsca.cfg /etc/nagios/send_nsca.cfg

What about theserver port number?

5667

ncsaserver(nsca)

Page 75: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

NSCA – Running Options

● OPTIONAL Exercise● By default FC12 installs NSCA as a standalone

service, but you can configure it so that it runs via inetd/xinetd.

● What are the differences between the two alternatives (ie, standalone vs xinetd)?

Page 76: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Web Interface

Page 77: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Web InterfaceWhat could be the problem here?

Page 78: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Web Interface

● Starting/Stopping Nagios● Default account● Adding new users

● Managing passwords● Managing permissions

● Executing commands● How to read the information

How many of youknow how to

configure a web serverlike Apache?

Starting/stopping the server

Configuring permissions

Configuring users/passwords

Log files

Directory aliases

Page 79: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Apache – quick review

● Starting/Stopping the server● service httpd start|stop|status

How many of youknow how to

configure a web serverlike Apache?

Starting/stopping the server

Configuring permissions

Configuring users/passwords

Log files

Directory aliases

Page 80: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Internal Network(10.0.0.0/16)

Apache – quick review● Configuring permissions

● Example “Allow only internal hosts to access it”

Order Deny, Allow

Deny From All

Allow From 10.0.0.0/16

How many of youknow how to

configure a web serverlike Apache?

Starting/stopping the server

Configuring permissions

Configuring users/passwords

Log files

Directory aliases

Nagios(+Apache)

Internet

Where do Iconfigure this?

Page 81: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Apache – quick review● Configuring user/password: htpasswd

● Example that adds the user guest– htpasswd /etc/nagios/passwd guest

How many of youknow how to

configure a web serverlike Apache?

Starting/stopping the server

Configuring permissions

Configuring users/passwords

Log files

Directory aliases

What package doesthis command belongto?

How do I determine whichpasswd file to use?

Does this “user” have toexist in /etc/passwd too?

Page 82: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Apache – quick review● Directory aliases alias /nagios/ /usr/share/nagios/html/ scriptAlias /nagios/cgi-bin/ /usr/lib/nagios/cgi-bin/

How many of youknow how to

configure a web serverlike Apache?

Starting/stopping the server

Configuring permissions

Configuring users/passwords

Log files

Directory aliases

This is configured automatically when youinstall Apache and Nagios via tools like yum (on Fedora).However, when you install Nagios from source code, you must know how to configure the above aliases explicitly.Do you know how to do it?

Page 83: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Apache – quick review● Log files

● /var/log/httpd/...

How many of youknow how to

configure a web serverlike Apache?

Starting/stopping the server

Configuring permissions

Configuring users/passwords

Log files

Directory aliases

Page 84: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Exercise

Nagios Apache

Filesystem

/

Page 85: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Web Interface

● Starting/Stopping Nagios● How do you do (and test) it in Fedora?

● Default account● Adding new users

● Managing passwords● Managing permissions

● Executing commands● How to read the information

Page 86: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Web Interface

● Starting/Stopping Nagios● Default account

● nagiosadmin● What can you do if you can't find/remember the

password?

● Adding new users● Managing passwords● Managing permissions

● Executing commands● How to read the information

Page 87: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Web Interface

● Starting/Stopping Nagios● Default account● Adding new users

● Managing passwords– You configure passwords with the ....................... command.

● Managing permissions

● Executing commands● How to read the information

Page 88: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Web Interface

● Starting/Stopping Nagios● Default account● Adding new users

● Managing passwords● Managing permissions

– Who can access what: Apache config + Nagios config– (NAGIOS: ...)

● Executing commands● How to read the information

Page 89: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Web Interface

● Starting/Stopping Nagios● Default account● Adding new users

● Managing passwords● Managing permissions

● Executing commands● For each contact/user you can specify what objects (hosts/services)

he/she can check.

● With a combination of the object and contact configurations you can specify what commands the contacts can execute on the objects.

● How to read the information

Page 90: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Web Interface

● Starting/Stopping Nagios● Default account● Adding new users

● Managing passwords● Managing permissions

● Executing commands● How to read the information

● The interface is pretty intuitive. Let's play a bit with it ...

Page 91: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

This class is based on the

Fedora Core 12 distribution.

Page 92: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Before we start with the labs ...

● You know how to install an application (rpm, yum, ...)

● You know how to determine what configuration files an application uses

● You know how to start and stop a system service● service <service_name> status|start|stop

● You know where to find and how to use log files (syslog, /var/log/....)

● You know how to check the firewall configuration and clear it if necessary.

Right?

Page 93: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Installation and basic configuration (1/2)

● FEDORA: yum install nagios● (in FC12 servono pure tutte le plugins una a una,

vedi p.87 del libro)

● Optional exercise: install it from the tarball● Linux packet management is outside the scope of

this workshop and you are assumed to be able to install applications from the source code. I therefore suggest you trying to install (the very latest version of) Nagios from the tarball.

Page 94: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Installation and basic configuration (2/2/)

● Managing the system service nagios● service nagios <COMMAND>

● What is the main configuration file/directory?● Let's look at the Nagios config file/s together ...

● Organization of the config files for a complex setup

Page 95: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Exercises

Page 96: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

.6.5.4

.3 .2 .1

Net 10.0.1.0/24

Net 10.0.3.0/24 Net 10.0.4.0/24

Net 10.0.2.0/24

.1 .2 .3

.4.5.6

.1 .2 .3.1

.6

.3

Net 10.0.5.0/24

.1 .2

.3.4

Internet

eth0

eth1eth1

eth1eth1

eth0

eth0eth0

.5

.2

.5.4 .4.5.6

Page 97: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

.6.5.4

.3 .2 .1

Net 10.0.X.0/24

Exercise 1

In each group:●Let's install and configure NAGIOS on the router.●Let's define a host instance for each host in the group.●Let's define a host group that includes all the hosts of the group.

Page 98: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Exercise 2

.6.5.4

.3 .2 .1

Net 10.0.1.0/24

Net 10.0.5.0/24

.1

eth0

eth1

.5

In each group:

● Let's define a host instance for the main router 10.0.5.5 and one for the DNS server/s

● For the DNS server/s let's also define a DNS service.

● Let's define a host group where to include the main router and the DNS server/s.

Any problemhere?

Page 99: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Exercise 3

.6.5.4

.3 .2 .1

Net 10.0.1.0/24

Net 10.0.3.0/24 Net 10.0.4.0/24

Net 10.0.2.0/24

.1

.1.1

Net 10.0.5.0/24

.1 .2

.4.3

eth0

eth1 eth1

eth1eth1

In each group:●Let's define a host instance for each router●Let's define a host group that includes all the routers

.5

Page 100: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Exercise 4

.2 .1

Net 10.0.1.0/24

Net 10.0.3.0/24 Net 10.0.4.0/24

Net 10.0.2.0/24

.1 .2

.1 .2.1

Net 10.0.5.0/24

.1 .2

.3.4

eth0

eth1eth1

eth1eth1

eth0

eth0eth0

.5

.2WEB

WEB WEB

WEB

In each group:●Let's configure the host with address 10.0.x.2 as the group web server●Let's create an host instance for the web server of each group●Let's define a host group that includes all web servers●Let's define the web servers as depending on the associated routers

Page 101: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

More exercises here ... if we have time.

Page 102: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Documentacion● http://www.nagios.org●

● + many articles/tutorials freely available

Page 103: Christian Benvenuti - PERiiperi.net.ni/pdf/docAdmOptAB/06_Nagios.pdf · check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 contacts

Copyright● This presentation is released under the

Creative Common License:● Attribution, Noncommercial, Share Alike 2.5● (http://creativecommons.org/licenses/by-nc-sa/2.5/)

● Attribution

● You must attribute the work in the manner specified by the author or licensor.

● Noncommercial.

● You may not use this work for commercial purposes.

● Share Alike.

● If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one.

CCCreativeCommons