Showing posts with label centos. Show all posts
Showing posts with label centos. Show all posts

Wednesday, October 21, 2020

Install PNP4Nagios for adding a graph to Nagios




Nagios offers monitoring and alerting services for your business infrastructures like servers, switches, applications and services. Adding a graph to Nagios is necessary for effective monitoring especially to predict possible attacks on your servers. PNP4Nagios is a plugin for Nagios for creating graphs.

Click here to learn how to install Nagios Core.

Step 1: Install all required package

yum install rrdtool perl-Time-HiRes rrdtool-perl php-gd -y

Step 2: Download the source and extract 

cd /tmp

wget https://sourceforge.net/projects/pnp4nagios/files/latest/download/pnp4nagios-0.6.26.tar.gz

tar zxfv pnp4nagios-0.6.26.tar.gz

Step 3: Compile and Install 

cd pnp4nagios-0.6.26

./configure

make all

make fullinstall

Step 4: Setup the NPCD

Change config to run npcd only on level 3 and 5. Change also the install.php filename.

chkconfig --add npcd && chkconfig --level 35 npcd on 

service httpd reload

Check the URL http: // server / pnp4nagios / to make sure pnp4nagios has been installed. If all green and pass then proceed.

Backup install.php

mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php-ori

Step 5: Edit nagios.cfg, and add this at the bottom of the file 

vi /usr/local/nagios/etc/nagios.cfg

[Esc]+ GA – to edit the bottom of the file

# Bulk / NPCD mode 

process_performance_data=1 

service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata 

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECH$ 

service_perfdata_file_mode=a 

service_perfdata_file_processing_interval=15 

service_perfdata_file_processing_command=process-service-perfdata-file


host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata 

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$ host_perfdata_file_mode=a 

host_perfdata_file_processing_interval=15 

host_perfdata_file_processing_command=process-host-perfdata-file

[Esc] :wq

Step 6: Edit commands.cfg

vi /usr/local/nagios/etc/objects/commands.cfg

[Esc]+ GA

define command{ 

command_name process-service-perfdata-file 

command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$ 

}


define command{ 

command_name process-host-perfdata-file 

command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$ 

}

Step 7: Edit templates.cfg and add host-pnp & srv-pnp

vi /usr/local/nagios/etc/objects/templates.cfg

define host { 

name host-pnp 

action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_ 

register 0 

}

define service { 

name srv-pnp 

action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$ 

register 0 

}

Put the host-pnp on every host like this:

define host{

        use                     linux-server,host-pnp

        host_name               localhost

        alias                   localhost

        address                 127.0.0.1

        }

Put the srv-pnp on every service like this:

define service{

        use                             local-service,srv-pnp         

        host_name                       localhost

        service_description             PING

        check_command check_ping!100.0,20%!500.0,60%

}

Step 8: Copy the status-header and restart services

Copy this file in the /usr/local/nagios/share/ssi/ for mouseover graph

cp contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/

Then restart npcd,httpd and nagios

service npcd restart

service httpd restart

service nagios restart 


 

Saturday, October 17, 2020

Configure Email Alert for Nagios

Nagios is an open-source software that can help you monitor your infrastructure 24/7. It has a function that will notify you whenever there's a problem on your servers, switches, applications or services. By sending an email with the information you need to fix the problem.

Click here if you want to know how to install Nagios.

Step 1: Configure contacts.cfg

Edit the contacts.cfg, if the other variables already set just add the others not included.

vi /usr/local/nagios/etc/objects/contacts.cfg

define contact {

Contact_name nagiosadmin

Use generic-contact

Alias Admin

Email admin@localhost.com ←- change to     desired email address

service_notification_period 24x7

host_notification_period 24x7

service_notification_options w,u,c,r,s,f

host_notification_options d,u,r,f,s

service_notification_commands notify-service-by-email

host_notification_commands notify-host-by-email

}

[Esc] :wq

Verify if there's no error.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

 Step 2: Install dependencies

Install postfix & mailx

yum install –y postfix mailx

alternatives --set mta /usr/sbin/postfix

If above command not work and you get the output as “/usr/sbin/postfix has not been configured as an alternative for mta“. Use below command. 

alternatives --set mta /usr/sbin/sendmail.postfix

Configure Postfix uncomment and edit

 vi /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587

smtp_use_tls=yes

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options = noanonymous

smtp_sasl_mechanism_filter = plain

smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

[Esc] :wq

Step 3: Get a unique pass

 Get the unique pass from google

Step 1: Sign in first to the google account you will use.

Step 2: Go to the google account, click your profile and click Google Account

Step 3: Go to Security tab

Step 4: In the “Signing in to Google” make sure the 2 step verification is On if not just click it and wait for the text message of google to turn on the 2 step verification.

Step 5: After you set the 2-step verification click on the app password and request for it

Step 6: Select mail then select the device to receive the unique app pass from google

Step 4: Configure sasl_passwd

vi /etc/postfix/sasl_passwd

[smtp.gmail.com]:587    <your_email_address@gmail.com>:<unique_app_pass_from_google>

[Esc] :wq

postmap /etc/postfix/sasl_passwd

 Step 5: Configure master.cf

vi /etc/postfix/master.cf

Change:

smtp      inet  n       -       n       -       -       smtpd

Into:

587      inet  n       -       n       -       -       smtpd

[Esc] :wq

Step 6: Install mail fonts and start postfix

Install this for the mail font

yum -y install cyrus-sasl cyrus-sasl-plain

service postfix restart

chkconfig postfix on

Step 7: Test to send mail

Test if the mail is sending then check the mail logs.

echo "Test mail from postfix" | mail -s "Test Postfix" <your_email_address>@gmail.com

tail /var/log/maillog