| 1、请先修改脚本中的服务端IP。 |
| 2、如被监控端不支持let计算命令请执行sudo dpkg-reconfigure dash命令,弹出选择窗口后选择no。 |
| 3、需要在脚本同目录下创建CentOS、Ubuntu、sh和conf目录,目录下分别放置nrpe的tar安装包、监控脚本和nrpe配置文件。 |
| |
| |
| |
| SERVER_IP=10.10.10.121 |
| |
| INSTALL_HOME=`pwd` |
| |
| INSTALL_UBUNTU() |
| { |
| sudo apt-get update |
| sudo apt-get install -y autoconf automake gcc libc6 libmcrypt-dev make libssl-dev wget openssl |
| |
| cd /tmp |
| |
| cp $INSTALL_HOME/Ubuntu/nrpe.tar.gz ./ |
| tar xzf nrpe.tar.gz |
| |
| cd /tmp/nrpe-nrpe-4.0.3/ |
| sudo ./configure --enable-command-args --with-ssl-lib=/usr/lib/x86_64-linux-gnu/ |
| sudo make all |
| |
| sudo make install-groups-users |
| |
| sudo make install |
| |
| sudo make install-config |
| |
| sudo sh -c "echo >> /etc/services" |
| sudo sh -c "sudo echo '# Nagios services' >> /etc/services" |
| sudo sh -c "sudo echo 'nrpe 5666/tcp' >> /etc/services" |
| |
| |
| VERSION=`lsb_release -r --short` |
| IS_LOW_VERSION=`echo "$VERSION < 15" | bc` |
| |
| if [ $IS_LOW_VERSION = 1 ]; then |
| |
| sudo make install-init |
| else |
| |
| sudo make install-init |
| sudo systemctl enable nrpe.service |
| fi |
| |
| sudo mkdir -p /etc/ufw/applications.d |
| sudo sh -c "echo '[NRPE]' > /etc/ufw/applications.d/nagios" |
| sudo sh -c "echo 'title=Nagios Remote Plugin Executor' >> /etc/ufw/applications.d/nagios" |
| sudo sh -c "echo 'description=Allows remote execution of Nagios plugins' >> /etc/ufw/applications.d/nagios" |
| sudo sh -c "echo 'ports=5666/tcp' >> /etc/ufw/applications.d/nagios" |
| sudo ufw allow NRPE |
| sudo ufw reload |
| |
| sudo sh -c "sed -i '/^allowed_hosts=/s/$/,$SERVER_IP/' /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "sed -i 's/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g' /usr/local/nagios/etc/nrpe.cfg" |
| |
| cd $INSTALL_HOME |
| sudo cp ./sh/* /usr/local/nagios/libexec/ |
| sudo chmod +xr /usr/local/nagios/libexec/* |
| |
| sudo sh -c "echo 'command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_mem]=/usr/local/nagios/libexec/check_mem.sh' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_disk]=/usr/local/nagios/libexec/check_disk.sh' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \$ARG1\$' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh' >> /usr/local/nagios/etc/nrpe.cfg" |
| NETWORK_INDEX=1 |
| for NETWORK_NAME in `cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\t]*//g' | sed 's/[:]*$//g'`;do |
| if [ $NETWORK_NAME != 'lo' ]; then |
| sudo sh -c "echo 'command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME' >> /usr/local/nagios/etc/nrpe.cfg" |
| NETWORK_INDEX=`expr $NETWORK_INDEX + 1 ` |
| fi |
| done |
| |
| if [ $IS_LOW_VERSION = 1 ]; then |
| |
| sudo start nrpe |
| else |
| |
| sudo systemctl start nrpe.service |
| fi |
| } |
| |
| |
| INSTALL_CENTOS() |
| { |
| yum install -y gcc glibc glibc-common openssl openssl-devel perl wget |
| |
| cd /tmp |
| |
| cp $INSTALL_HOME/CentOS/nrpe.tar.gz ./ |
| tar xzf nrpe.tar.gz |
| |
| cd /tmp/nrpe-nrpe-4.0.3/ |
| ./configure --enable-command-args |
| make all |
| |
| make install-groups-users |
| |
| make install |
| |
| make install-config |
| |
| echo >> /etc/services |
| echo '# Nagios services' >> /etc/services |
| echo 'nrpe 5666/tcp' >> /etc/services |
| |
| |
| VERSION=`rpm -q centos-release|cut -d- -f3` |
| |
| yum -y install bc |
| IS_LOW_VERSION=`echo "$VERSION < 7" | bc` |
| |
| if [ $IS_LOW_VERSION = 1 ]; then |
| |
| make install-init |
| |
| iptables -I INPUT -p tcp --destination-port 5666 -j ACCEPT |
| service iptables save |
| ip6tables -I INPUT -p tcp --destination-port 5666 -j ACCEPT |
| service ip6tables save |
| else |
| |
| make install-init |
| systemctl enable nrpe.service |
| |
| firewall-cmd --zone=public --add-port=5666/tcp |
| firewall-cmd --zone=public --add-port=5666/tcp --permanent |
| fi |
| |
| sudo sh -c "sed -i '/^allowed_hosts=/s/$/,$SERVER_IP/' /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "sed -i 's/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g' /usr/local/nagios/etc/nrpe.cfg" |
| |
| cd $INSTALL_HOME |
| sudo cp ./sh/* /usr/local/nagios/libexec/ |
| sudo chmod +xr /usr/local/nagios/libexec/* |
| |
| sudo sh -c "echo 'command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_mem]=/usr/local/nagios/libexec/check_mem.sh' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_disk]=/usr/local/nagios/libexec/check_disk.sh' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \$ARG1\$' >> /usr/local/nagios/etc/nrpe.cfg" |
| sudo sh -c "echo 'command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh' >> /usr/local/nagios/etc/nrpe.cfg" |
| NETWORK_INDEX=1 |
| for NETWORK_NAME in `cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\t]*//g' | sed 's/[:]*$//g'`;do |
| if [ $NETWORK_NAME != 'lo' ]; then |
| sudo sh -c "echo 'command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME' >> /usr/local/nagios/etc/nrpe.cfg" |
| NETWORK_INDEX=`expr $NETWORK_INDEX + 1 ` |
| fi |
| done |
| |
| if [ $IS_LOW_VERSION = 1 ]; then |
| |
| if [ $(echo "$VERSION < 6" | bc) -eq 1 ]; then |
| service nrpe start |
| else |
| start nrpe |
| fi |
| else |
| |
| systemctl start nrpe.service |
| fi |
| } |
| |
| |
| INSTALL_OTHER() |
| { |
| echo "Not supported at the moment." |
| } |
| |
| |
| INSTALL() |
| { |
| if grep -Eqii "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then |
| DISTRO='CentOS' |
| PM='yum' |
| INSTALL_CENTOS |
| elif grep -Eqi "Red Hat Enterprise Linux Server" /etc/issue || grep -Eq "Red Hat Enterprise Linux Server" /etc/*-release; then |
| DISTRO='RHEL' |
| PM='yum' |
| INSTALL_OTHER |
| elif grep -Eqi "Aliyun" /etc/issue || grep -Eq "Aliyun" /etc/*-release; then |
| DISTRO='Aliyun' |
| PM='yum' |
| INSTALL_OTHER |
| elif grep -Eqi "Fedora" /etc/issue || grep -Eq "Fedora" /etc/*-release; then |
| DISTRO='Fedora' |
| PM='yum' |
| INSTALL_OTHER |
| elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then |
| DISTRO='Debian' |
| PM='apt' |
| INSTALL_OTHER |
| elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then |
| DISTRO='Ubuntu' |
| PM='apt' |
| INSTALL_UBUNTU |
| elif grep -Eqi "Raspbian" /etc/issue || grep -Eq "Raspbian" /etc/*-release; then |
| DISTRO='Raspbian' |
| PM='apt' |
| INSTALL_OTHER |
| else |
| echo "unknow linux." |
| exit 1 |
| fi |
| echo $DISTRO |
| } |
| |
| INSTALL |
| |
| exit 0 |