一、系统环境
操作系统:CentOS 7
软件版本:Nagios 4.11 Pnp4nagios 0.6.25
二、部署脚本
安装脚本如下:
#!/bin/sh #mysql密码 mysqlps=123 #nagios账户密码 nagiospa=123 #nagiosadmin账户密码 nagadps=123 #获取本机IP hostip=` ip a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|sed "s%/24%%g" ` #系统配置 systemctl stop firewalld.service systemctl disable firewalld.service sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config setenforce 0 yum -y install epel-release expect yum-axelget vim echo "alias vi='vim'">>/etc/bashrc echo "alias ll='ls -lh --color=auto'">>/etc/bashrc echo "set nu">>/etc/vimrc yum update -y #安装LAMP yum -y install httpd mariadb-server mariadb php php-mysql php-gd php-pear systemctl start httpd systemctl enable httpd systemctl start mariadb systemctl enable mariadb expect <<EOF set timeout -1 spawn mysql_secure_installation expect { "*(enter for none):" { send "\r"; exp_continue } "*password:" { send "${mysqlps}\r"; exp_continue } "*password:" { send "${mysqlps}\r"; exp_continue } "*users?" { send "Y\r"; exp_continue } "*remotely?" { send "Y\r"; exp_continue } "*it?" { send "Y\r"; exp_continue } "*now?" { send "Y\r"; exp_continue } } expect eof EOF #安装Nagios yum install -y gd gd-devel gcc glibc glibc-common openssl openssl-devel openssl-perl unzip wget useradd -m nagios expect <<EOF set timeout -1 spawn passwd nagios expect { "*password:" { send "${nagiospa}\r";exp_continue } "*password:" { send "${nagiospa}\r" } } expect eof EOF groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd apache cd /tmp wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz tar xzf nagios-4.1.1.tar.gz cd nagios-4.1.1 ./configure --with-command-group=nagcmd make all make install make install-init make install-commandmode make install-config make install-webconf make install-exfoliation make install-classicui #安装nagios-plugins、nrpe yum install -y nagios-plugins* nrpe* echo -e "#'check_nrpe' command definition define command{ \tcommand_name check_nrpe \tcommand_line \$USER1\$/check_nrpe -H \$HOSTADDRESS\$ -c \$ARG1\$ }">>/usr/local/nagios/etc/objects/commands.cfg sed -i "s/nrpe_user=nrpe/nrpe_user=nagios/g" /etc/nagios/nrpe.cfg sed -i "s/nrpe_group=nrpe/nrpe_group=nagcmd/g" /etc/nagios/nrpe.cfg sed -i "s%/usr/local/nagios/libexec%/usr/lib64/nagios/plugins%g" /usr/local/nagios/etc/resource.cfg #设置nagios Web 访问密码 expect <<EOF set timeout -1 spawn htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin expect { "*password:" { send "${nagadps}\r";exp_continue } "*password:" { send "${nagadps}\r" } } expect eof EOF #修复假报警 touch /var/www/html/index.html #安装pnp4nagios yum -y install php-gd rrdtool-perl rrdtool librrds-perl perl-Time-HiRes cd /tmp wget http://nchc.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz tar zxvf pnp4nagios-0.6.25.tar.gz cd pnp4nagios-0.6.25 ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd make all make fullinstall sed -i "s%Order allow,deny%Require all granted%g" /etc/httpd/conf.d/pnp4nagios.conf sed -i "s%Allow from all%%g" /etc/httpd/conf.d/pnp4nagios.conf cd /usr/local/pnp4nagios/etc ls|grep sample|awk -F"." '{print $1}'|xargs -i{} mv {}.cfg-sample {}.cfg cd /usr/local/pnp4nagios/etc/pages ls|grep sample|awk -F"." '{print $1}'|xargs -i{} mv {}.cfg-sample {}.cfg cd /usr/local/pnp4nagios/etc/check_commands ls|grep sample|awk -F"." '{print $1}'|xargs -i{} mv {}.cfg-sample {}.cfg mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.bak sed -i 's%process_performance_data=0%process_performance_data=1%' /usr/local/nagios/etc/nagios.cfg sed -i 's%enable_environment_macros=0%enable_environment_macros=1%' /usr/local/nagios/etc/nagios.cfg sed -i 's%#host_perfdata_command%host_perfdata_command%' /usr/local/nagios/etc/nagios.cfg sed -i 's%#service_perfdata_command%service_perfdata_command%' /usr/local/nagios/etc/nagios.cfg sed -i 's%#host_perfdata_file=/usr/local/nagios/var/host-perfdata%host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata%' /usr/local/nagios/etc/nagios.cfg sed -i 's%#service_perfdata_file=/usr/local/nagios/var/service-perfdata%service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata%' /usr/local/nagios/etc/nagios.cfg sed -i '847i host_perfdata_file_template=DATATYPE::HOSTPERFDATA\\tTIMET::\$TIMET\$\\tHOSTNAME::\$HOSTNAME\$\\tHOSTPERFDATA::\$HOSTPERFDATA\$\\tHOSTCHECKCOMMAND::\$HOSTCHECKCOMMAND\$\\tHOSTSTATE::\$HOSTSTATE\$\\tHOSTSTATETYPE::\$HOSTSTATETYPE\$' /usr/local/nagios/etc/nagios.cfg sed -i '848i service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\\tTIMET::\$TIMET\$\\tHOSTNAME::\$HOSTNAME\$\\tSERVICEDESC::\$SERVICEDESC\$\\tSERVICEPERFDATA::\$SERVICEPERFDATA\$\\tSERVICECHECKCOMMAND::\$SERVICECHECKCOMMAND\$\\tHOSTSTATE::\$HOSTSTATE\$\\tHOSTSTATETYPE::\$HOSTSTATETYPE\$\\tSERVICESTATE::\$SERVICESTATE\$\\tSERVICESTATETYPE::\$SERVICESTATETYPE\$' /usr/local/nagios/etc/nagios.cfg sed -i 's%#host_perfdata_file_mode%host_perfdata_file_mode%' /usr/local/nagios/etc/nagios.cfg sed -i 's%#service_perfdata_file_mode%service_perfdata_file_mode%' /usr/local/nagios/etc/nagios.cfg sed -i 's%#host_perfdata_file_processing_interval=0%host_perfdata_file_processing_interval=15%' /usr/local/nagios/etc/nagios.cfg sed -i 's%#service_perfdata_file_processing_interval=0%service_perfdata_file_processing_interval=15%' /usr/local/nagios/etc/nagios.cfg sed -i 's%#host_perfdata_file_processing_command%host_perfdata_file_processing_command%' /usr/local/nagios/etc/nagios.cfg sed -i 's%#service_perfdata_file_processing_command%service_perfdata_file_processing_command%' /usr/local/nagios/etc/nagios.cfg sed -i 's%process-service-perfdata%psp12%' /usr/local/nagios/etc/objects/commands.cfg sed -i 's%process-host-perfdata%php12%' /usr/local/nagios/etc/objects/commands.cfg cat >>/usr/local/nagios/etc/objects/commands.cfg<<-EOF # Bulk with NPCD mode # 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\$ } EOF cat >>/usr/local/nagios/etc/objects/templates.cfg<<-EOF 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 } EOF sed -i 's%linux-server%linux-server,host-pnp%' /usr/local/nagios/etc/objects/localhost.cfg sed -i 's%local-service%local-service,srv-pnp%' /usr/local/nagios/etc/objects/localhost.cfg sed -i 's%hostgroup_name linux-server,host-pnp%hostgroup_name linux-server%' /usr/local/nagios/etc/objects/localhost.cfg #重启服务 ln -s /usr/local/nagios/bin/nagios /usr/bin/ nagios -v /usr/local/nagios/etc/nagios.cfg sleep 3 systemctl start nrpe systemctl enable nrpe chkconfig npcd on systemctl start npcd chkconfig nagios on systemctl start nagios systemctl restart httpd systemctl status -l npcd systemctl status -l nrpe systemctl status -l nagios systemctl status -l httpd echo "请访问http://${hostip}/nagios验证配置!!"
部署完成!