{{tag>[linux monitoring check_mk centos6]}} =====Check_MK monitoring - CentOS6===== Using this guide, you can install the latest Check_MK and Nagios version. Prerequisites * RepoForge repository * EPEL repository * Disable SELinux. Normally i would SELinux be enabled, but a monitoring system is one of the few exceptions i make. The server does too many things SELinux doesn't like. ====Install packages==== * Install rrdtool 1.4 yum --enablerepo=repoforge install rrdtool # or install manually yum localinstall rrdtool-1.4.7-1.el6.rfx.x86_64.rpm perl-rrdtool-1.4.7-1.el6.rfx.x86_64.rpm * Install development tools. yum groupinstall development tools * Install apache & php. yum install httpd php * Install other requirements. yum install gd gd-devel php-gd openssl-devel net-snmp net-snmp-utils policycoreutils-python dejavu-fonts-common dejavu-sans-mono-fonts dejavu-lgc-sans-mono-fonts ====Install Nagios 4==== * Create user and group.useradd nagios groupadd nagcmd usermod -a -G nagcmd nagios usermod -G nagcmd apache * Download latest version wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.7.tar.gz * Extract. tar zxvf nagios-4.0.7.tar.gz * Compile Nagios 4. cd nagios-4.0.7 ./configure --with-command-group=nagcmd --prefix=/opt/nagios --exec-prefix=/opt/nagios make all make install make install-init make install-config make install-commandmode make install-webconf cp -R contrib/eventhandlers/ /opt/nagios/libexec/ chown -R nagios:nagios /opt/nagios/libexec/eventhandlers /opt/nagios/bin/nagios -v /opt/nagios/etc/nagios.cfg service nagios start * Edit **/opt/nagios/etc/resource.cfg** $USER1$=/opt/nagios-plugins/libexec * Add a default user for Web Interface Access htpasswd -c /opt/nagios/etc/htpasswd.users nagiosadmin * Download Nagios plugins cd wget http://nagios-plugins.org/download/nagios-plugins-2.0.2.tar.gz * Nagios Plugin Installation. tar zxvf nagios-plugins-2.0.2.tar.gz cd /tmp/nagios-plugins-2.0.2 ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/opt/nagios-plugins --exec-prefix=/opt/nagios-plugins make make install ====Configure CentOS==== * Service setup. chkconfig --add nagios chkconfig --level 35 nagios on chkconfig --add httpd chkconfig --level 35 httpd on * Open port 80. Edit **/etc/sysconfig/iptables** add: -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT * Restart iptables service iptables restart * Give the Nagios localhost http check something. touch /var/www/html/index.html * Start Apache, Nagios should be running on your webserver /nagios service httpd start ====Install PNP4Nagios==== * Download PNP4nagios. wget https://sourceforge.net/projects/pnp4nagios/files/latest * Extract. tar zxvf pnp4nagios.tgz * Compile.cd pnp4nagios-0.6.22 ./configure --prefix=/opt/pnp4nagios --exec-prefix=/opt/pnp4nagios make all make fullinstall * Configure apache, edit **/etc/httpd/conf.d/pnp4nagios.conf** AuthUserFile /opt/nagios/etc/htpasswd.users * Restart apache. service httpd restart * Configure Nagios to use PNP4nagios. Edit **/opt/nagios/etc/nagios.cfg**. # # Bulk / NPCD mode # process_performance_data=1 # *** the template definition differs from the one in the original nagios.cfg # service_perfdata_file=/opt/pnp4nagios/var/service-perfdata service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$ service_perfdata_file_mode=a service_perfdata_file_processing_interval=15 service_perfdata_file_processing_command=process-service-perfdata-file # *** the template definition differs from the one in the original nagios.cfg # host_perfdata_file=/opt/pnp4nagios/var/host-perfdata host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$ host_perfdata_file_mode=a host_perfdata_file_processing_interval=15 host_perfdata_file_processing_command=process-host-perfdata-file * Edit **/opt/nagios/etc/objects/commands.cfg** Disable sample performance data commands, add: # # Bulk mode # define command { command_name process-service-perfdata-file command_line /opt/pnp4nagios/libexec/process_perfdata.pl --bulk /opt/pnp4nagios/var/service-perfdata } define command { command_name process-host-perfdata-file command_line /opt/pnp4nagios/libexec/process_perfdata.pl --bulk /opt/pnp4nagios/var/host-perfdata } * Remove install file. rm /opt/pnp4nagios/share/install.php * Restart nagios. service nagios restart * Open /pnp4nagios on your webserver. ====Install Check_MK==== * Install xinetd. yum install xinetd service xinetd start chkconfig xinetd on * Install mod_python. yum install mod_python * Download latest Check_MK version. wget http://mathias-kettner.de/download/check_mk-1.2.4p3.tar.gz * Extract. tar zxvf check_mk-1.2.4p3.tar.gz * Compile. cd check_mk-1.2.4p3 ./setup.sh You have chosen the following directories: Executable programs /opt/check_mk/bin Check_MK configuration /opt/check_mk/etc Check_MK software /opt/check_mk/share documentation /opt/check_mk/share/doc check manuals /opt/check_mk/share/doc/check_mk/checks working directory of check_mk /opt/check_mk/var/lib extensions for agents /usr/lib/check_mk_agent configuration dir for agents /etc/check_mk Name of Nagios user nagios User of Apache process apache Common group of Nagios+Apache nagcmd Nagios binary /opt/nagios/bin/nagios Nagios main configuration file /opt/nagios/etc/nagios.cfg Nagios object directory /opt/nagios/etc/check_mk.d Nagios startskript /etc/init.d/nagios Nagios command pipe /opt/nagios/var/rw/nagios.cmd Check results directory /opt/nagios/var/spool/checkresults Nagios status file /opt/nagios/var/status.dat Path to check_icmp /opt/nagios-plugins/libexec/check_icmp URL Prefix for Web addons / Apache config dir /etc/httpd/conf.d HTTP authentication file /opt/nagios/etc/htpasswd.users HTTP AuthName Nagios Access PNP4Nagios templates /opt/pnp4nagios/share/templates RRD files /opt/pnp4nagios/var/perfdata rrdcached socket /tmp/rrdcached.sock compile livestatus module yes Nagios / Icinga version 4.0.7 check_mk's binary modules /opt/check_mk/lib Unix socket for Livestatus /opt/nagios/var/rw/live Backends for other systems /opt/check_mk/share/livestatus Install Event Console no Proceed with installation (y/n)? y (Compiling MK Livestatus....................................................) Installation completed successfully. Please restart Nagios and Apache in order to update/active check_mk's web pages. You can access the new Multisite GUI at http://localhost/check_mk/ ====Check_MK Config==== * Remove localhost from **/opt/nagios/etc/nagios.cfg** * Install Check_MK client on host. * Configure monitoring host in Check_MK itself. ====Disable Nagios logging to syslog==== * Edit **/opt/nagios/etc/nagios.cfg** use_syslog=0 * Restart nagios. service nagios restart ====Fix notification problem with Check_MK & Nagios 4==== * Edit **/opt/check_mk/share/check_mk_templates.cfg** #change the command to force an explicit /bin/sh define command { command_name check-mk-notify command_line \ /bin/sh -c "NOTIFY_CONTACTNAME='$CONTACTNAME$' \ NOTIFY_CONTACTEMAIL='$CONTACTEMAIL$' \ NOTIFY_CONTACTPAGER='$CONTACTPAGER$' \ NOTIFY_NOTIFICATIONTYPE='$NOTIFICATIONTYPE$' \ NOTIFY_HOSTNOTIFICATIONNUMBER='$HOSTNOTIFICATIONNUMBER$' \ NOTIFY_SERVICENOTIFICATIONNUMBER='$SERVICENOTIFICATIONNUMBER$' \ NOTIFY_HOSTPROBLEMID='$HOSTPROBLEMID$' \ NOTIFY_SERVICEPROBLEMID='$SERVICEPROBLEMID$' \ NOTIFY_HOSTNAME='$HOSTNAME$' \ NOTIFY_HOSTALIAS='$HOSTALIAS$' \ NOTIFY_HOSTADDRESS='$HOSTADDRESS$' \ NOTIFY_LASTHOSTSTATE='$LASTHOSTSTATE$' \ NOTIFY_LASTHOSTSTATECHANGE='$LASTHOSTSTATECHANGE$' \ NOTIFY_HOSTSTATE='$HOSTSTATE$' \ NOTIFY_HOSTSTATEID='$HOSTSTATEID$' \ NOTIFY_HOSTCHECKCOMMAND='$HOSTCHECKCOMMAND$' \ NOTIFY_HOSTOUTPUT='$HOSTOUTPUT$' \ NOTIFY_HOSTPERFDATA='$HOSTPERFDATA$' \ NOTIFY_LONGHOSTOUTPUT='$LONGHOSTOUTPUT$' \ NOTIFY_SERVICEDESC='$SERVICEDESC$' \ NOTIFY_LASTSERVICESTATE='$LASTSERVICESTATE$' \ NOTIFY_LASTSERVICESTATECHANGE='$LASTSERVICESTATECHANGE$' \ NOTIFY_SERVICESTATE='$SERVICESTATE$' \ NOTIFY_SERVICESTATEID='$SERVICESTATEID$' \ NOTIFY_SERVICEOUTPUT='$SERVICEOUTPUT$' \ NOTIFY_LONGSERVICEOUTPUT='$LONGSERVICEOUTPUT$' \ NOTIFY_SERVICEPERFDATA='$SERVICEPERFDATA$' \ NOTIFY_SERVICECHECKCOMMAND='$SERVICECHECKCOMMAND$' \ NOTIFY_DATE='$DATE$' \ NOTIFY_SHORTDATETIME='$SHORTDATETIME$' \ NOTIFY_LONGDATETIME='$LONGDATETIME$' \ NOTIFY_HOSTDOWNTIME='$HOSTDOWNTIME$' \ NOTIFY_NOTIFICATIONCOMMENT='$NOTIFICATIONCOMMENT$' \ NOTIFY_NOTIFICATIONAUTHOR='$NOTIFICATIONAUTHOR$' \ NOTIFY_NOTIFICATIONAUTHORNAME='$NOTIFICATIONAUTHORNAME$' \ NOTIFY_NOTIFICATIONAUTHORALIAS='$NOTIFICATIONAUTHORALIAS$' \ NOTIFY_HOSTTAGS='$_HOSTTAGS$' \ NOTIFY_HOST_SL='$_HOSTEC_SL$' \ NOTIFY_SVC_SL='$_SERVICEEC_SL$' \ NOTIFY_SERVICE_SL='$_SERVICEEC_SL$' \ NOTIFY_HOST_EC_CONTACT='$_HOSTEC_CONTACT$' \ NOTIFY_SERVICE_EC_CONTACT='$_SERVICEEC_CONTACT$' \ /usr/bin/check_mk --notify" } ====Upgrade Check_MK==== * Download latest tar.gz * Extract * Run ./setup.sh * Restart nagios and apache * Fix notifications (see above), after run cmk -O (captital o)