Wednesday, June 12, 2013

Nagios Core - Monitoring Tool on CentOS 6.4 - part 5/5 script



Chapter 10 Nagios Notification
1. How to configure notification period
# vi /etc/nagios/objects/server.cfg
 define host & service {
           use                             linux-server           
            host_name                        server
            alias                           server
           address                          192.168.80.5
            check_period                  24x7
            notification_period         workhours
            notification_interval       10                  <- come from templates.cfg
}
# vi /etc/nagios/objects/timeperiods.cfg
define timeperiod {
            timeperiod_name            workhours
            timeperiod_name           24x7
}
# nagios –v /etc/nagios/nagios.cfg ; # service nagios restart
2. How to configure notification for groups
# vi /etc/nagios/objects/contacts.cfg
 define contactgroup {
            contactgroup_name       nagios  
            alias                   Network Operations
            members                         chul,linux
}
define contact {
            use                    generic-contact
            contact_name   chul
            alias                   Jeong Chul
            email                tland@chul.com
}
define contact {
            use                    generic-contact
            contact_name   linux
            alias                   Power Linux
            email                 linux@chul.com
}
# vi /etc/nagios/objects/server.cfg
 define host & service {
           use                   linux-server            //templates.cfg
            host_name            server
           address               192.168.80.5
            check_period                  24x7
            notification_period         workhours
            contact_groups                            nagios
}
# nagios –v /etc/nagios/nagios.cfg; # service nagios restart
3. How to specify which states to be notified about
# vi /etc/nagios/objects/server.cfg
 define host {
            use linux-server
            host_name server
            address 192.168.80.5
            contacts             chul
            notification_options                    d,u,r,f,s     //templates.cfg
            notifications_enabled  1          
}
define service {
            contacts             chul
            notifications_enabled  1
            notification_options                    w,u,c,r,f,s       //templates.cfg 
}
# vi /etc/nagios/objects/contacts.cfg
define contact {
            use                                  generic-contact         //templates.cfg
            contact_name                 chul
            email                              tland@chul.com
            host_notification_options                       d,u,r,f,s
            service_notification_options                   w,u,c,r,f,s
}
d: Down, u: UNrechable, r: Recovering, f: Flapping, s: Scheduled
     w: Warn, u:Unknown, c: Critical
# nagios –v /etc/nagios/nagios.cfg
# service nagios restart

4. How to define a custom notification method
a. Defining command
# vi /etc/nagios/objects/commands.cfg
 define command{
           command_name    notify-host-by-email
           command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotifi    cation Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAdd    ress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" |  
         }
  define command{
          command_name    notify-service-by-email
          command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotifi    cation Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIA    S$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATET    IME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" |
b. Defining contacts in the templates
# vi /etc/nagios/objects/templates.cfg
define contact{
            name                                                          generic-contact
            host_notification_commands                   notify-host-by-email
            service_notification_commands                            notify-service-by-email
}
c. Defining host and service
# vi /etc/nagios/objects/server.cfg
define host{
            use                     linux-server
            contact_groups  nagios                           //contacts.cfg  <- templaes.cfg
# nagios –v /etc/nagios/nagios.cfg
# service nagios restart

Chapter 11 Nagios Security & Performance
1.Requiring authentication for the web interface
a. Adding user
# htpasswd /etc/nagios/htpasswd.users tland
b. Add this user to cgi.cfg
# vi /etc/nagios/cgi.cfg
authorized_for_read_only=tland
authorized_for_all_services=nagios,tland
authorized_for_all_hosts=nagios,tland
c. Access web interface using new user
http://localhost/nagios/
2. Using authenticated contacts
a. Creating new user
# htpasswd /etc/nagios/htppasswd.uesrs linux
http://localhost/nagios
b. Editing contact and host information
# vi /etc/nagios/objects/contacts.cfg
define contact {
            use                     generic-contacts
            contact_name    linux
            alias                    Linux Admin
            email                  linux@chul.com
}
# vi /etc/nagios/objects/linux.cfg
define host {
            host_name                       linux
            alias                    linux server
            address              192.168.80.5     
            contacts                           nagios,linux
}
# nagos –v /etc/nagios/nagios.cfg ; # service nagios restart

3. Writing debugging information to Nagios log file
a. Editing nagios.cfg
# vi /etc/nagios/nagios.cfg
debug_level = -1                                      //everything
debug_verbosity=2                                  //very detailed
debug_file=/var/log/nagios/nagios.log
# touch /var/log/nagios/nagios.log
# chown nagios.nagios /var/log/nagios/nagios.log
b. Service restart
# nagios –v /etc/nagios/nagios.cfg
# service nagios restart
# tail –f /var/log/nagios/nagios.log
4. Monitoring Nagios performance with Nagiostats
# vi /etc/nagios/nagios.cfg
status_file=/var/log/nagios/status.dat
# nagiostats –c /etc/nagios/nagios.cfg        
# nagiostats –c /etc/nagios/nagios.cfg –help

Chapter 12 How to integrate MRTG & Nagios
1.Check MRTG data
# service httpd restart
# ls –l /var/www/mrtg
http://localhost/mrtg
2. Service definition
# vi /etc/nagios/objects/router.cfg
# Router on MRTG
define service{
            use                                  generic-service
            host_name                      router
            service_description        Router Bandwidth Usage
            check_command check_local_mrtgtraf!/var/www/mrtg/192.168.80.11_1.log!A    VG!1000,5000!8000,50 000!10
}
3. Command definition
# vi /etc/nagios/objects/commands.cfg
# check_mrtgtraf' command definition
define command{
            command_name check_local_mrtgtraf
            command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w
            $ARG3$,$ARG4$ -c $ARG5$,$ARG6$
}
4. Testing MRTG and Nagios
# nagios –v /etc/nagios/nagios.cfg
# service nagios restart

Summary
1. Network Monitoring Structure
2. How to setup Managed Devices
    Linux server, Windows Server, Cisco Router & Webserver
3. Nagios Visualization
     Nagiosgraph, NDOUtils with MySQL
4. Nagios Notification & Security with Performance
5. Integration with Nagios and MRTG