#!/bin/bash##nagios监控软件一件使用##date : 2016-08-23##作者:liuwenzhi#定义变量YUMNUM=`yum repolist 2>/dev/null|grep repolist: |sed 's/[^0-9]//g'`NAGIOSzip=nagios.zipNAGIOS=nagios#定义yum源是否可用脚本YUMREPO (){        echo -ne "3[34m正在检测yum源3[0m"        sleep 3        if [ $YUMNUM -eq 0 ];then        echo -e "3[32myum源不可用,请先配置yum源3[0m"        exit 10        else        echo -e "3[34myum源检测通过!3[0m"        fi}#定义菜单menu (){           echo "  ##############----一键安装菜单----##############"           echo "# 1. 安装nagios 监控端"           echo "# 2. 安装远程被监控端"           echo "# 3. 退出 "           read -p "请输入菜单【1-3】" select}#安装nagios依赖环境yilai_install (){        echo "----------正在安装依赖包"        case $select in        1)                yum install -y httpd  php  gcc glibc unzip zip glibc-common  gd  gd-devel libpng libjpeg zlib openssl-devel &>/dev/null        ;;        2)                yum install -y gcc openssl-devel &>/dev/null                ;;        esac        echo "----------依赖安装完成"}#定义configure时是否出错configure_err(){        if [ $? -ne 0 ];then        echo "cofigure失败"        exit 11        fi}#定义make时是否出错make_err(){        if [ $? -ne 0 ];then        echo "make失败"        exit 12        fi}#定义make install 安装时是否出错make_install_err(){        if [ $? -ne 0 ];then        echo "make install失败"        exit 13        fi}#修改httpd文件支持phpxiugai_httpd (){        sed -i '/^DirectoryIndex/s/$/& index.php/g' /etc/httpd/conf/httpd.conf        service httpd start &>/dev/null        chkconfig httpd on}#nagios安装nagios_install (){        echo "----------安装nagios"        groupadd  nagcmd  &>/dev/null        useradd -s /sbin/nologin nagios &>/dev/null        usermod -G nagcmd  apache        if [ -f $NAGIOS ];then        rm -rf $NAGIOS        fi         unzip $NAGIOSzip  &>/dev/null        cd $NAGIOS        tar -zxf nagios-3.2.1.tar.gz -C  /usr/src &>/dev/null        cd /usr/src/nagios-3.2.1/        echo "----------编译中"        ./configure --with-command-group=nagcmd &>/dev/null        configure_err        make all  &>/dev/null        make_err        make install    &>/dev/null        make_install_err        make install-init  &>/dev/null        make install-config  &>/dev/null        make install-commandmode  &>/dev/null        make install-webconf    &>/dev/null}#nagios-plugins安装plugins(){        cd - &>/dev/null        tar -zxf nagios-plugins-1.4.14.tar.gz        cd nagios-plugins-1.4.14        ./configure --with-nagios-user=nagios  \        --with-nagios-group=nagcmd  &>/dev/null         configure_err        make      &>/dev/null        make_err        make install    &>/dev/null        make_install_err#监控脚本资源在ls /usr/local/nagios/libexec/ 下}#安装nrpenrpe_install (){        cd - &>/dev/null        tar -zxf  nrpe-2.12.tar.gz        cd nrpe-2.12        ./configure &>/dev/null        configure_err        make      &>/dev/null        make_err        make install    &>/dev/null        make_install_err        make install-plugin &>/dev/null        sed -i '$a\define command  {' /usr/local/nagios/etc/objects/commands.cfg        sed -i '$a\         command_name    check_nrpe' /usr/local/nagios/etc/objects/commands.cfg        sed -i '$a\         command_line  $USER1$/check_nrpe -H $HOSTADDRESS$  -c  $ARG1$ ' /usr/local/nagios/etc/objects/commands.cfg        sed -i '$a\  }' /usr/local/nagios/etc/objects/commands.cfg#cd /usr/local/nagios/etc/objects/#read -p "请输入需要监控的用户名" u#cp localhost.cfg $u.cfg#sed  -i '/host_name/s/localhost/$u/g' /usr/local/nagios/etc/objects/localhost.cfg#sed -i '$a\cfg_file=/usr/local/nagios/etc/objects/$u.cfg}#修改配置文件abc (){        [ -f /usr/local/nagios/etc/objects/commands.cfg ] || \        cp /usr/src/nagios-3.2.1/sample-config/template-object/commands.cfg  /usr/local/nagios/etc/objects/        [ -f /usr/local/nagios/etc/objects/localhost.cfg ] || \        cp /usr/src/nagios-3.2.1/sample-config/template-object/localhost.cfg  /usr/local/nagios/etc/objects/        [ -f /usr/local/nagios/etc/nagios.cfg ] || \        cp /usr/src/nagios-3.2.1/sample-config/nagios.cfg  /usr/local/nagios/etc/         cp /usr/src/nagios-3.2.1/sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf        echo "请设置页面登入密码,按回车设置"        read         htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin        /etc/init.d/nagios start &>/dev/null        service  httpd restart &>/dev/null}#安装被监控端主机ggg (){        echo "----------安装中"        useradd nagios  &>/dev/null        groupadd nagcmd &>/dev/null        usermod -G nagcmd nagios &>/dev/null        unzip $NAGIOSzip &>/dev/dull        cd $NAGIOS        tar -zxf nagios-plugins-1.4.14.tar.gz        cd nagios-plugins-1.4.14        ./configure &>/dev/null        configure_err        make      &>/dev/null        make_err        make install    &>/dev/null        make_install_err        cd ..        tar -zxf nrpe-2.12.tar.gz        cd nrpe-2.12        ./configure &>/dev/null        configure_err        make      &>/dev/null        make_err        make install    &>/dev/null        make_install_err        make install-plugin &>/dev/null        make install-daemon  &>/dev/null        make install-daemon-config  &>/dev/null        make install-xinetd  &>/dev/null        yum install -y telnet-server &>/dev/null        read -p "-----请输入监控端的ip-----  : " ip        sed -i '/only_from/s/$/& "$ip"/' /etc/xinetd.d/nrpe        grep -q nrpe /etc/services || \        sed -i '$a\nrpe            5666/tcp ' /etc/services        /etc/init.d/xinetd restart &>/dev/null}while :doclearmenu        case $select in         1)                YUMREPO                yilai_install                xiugai_httpd                nagios_install                plugins                abc                nrpe_install                echo -e "3[32mOK,按回车继续3[0m"                read                 ;;        2)                ggg                echo -e "3[32mOK,按回车继续3[0m"                read                ;;        3)                exit 0                ;;        *)                echo "输入有误"                ;;        esacdone1.此脚本在多台机器上测试成功。2.nagios版本是nagios-3.2.1版本跑在httpd上3.访问时:      输入:  ip/nagios4.页面用httpd的密码工具生成用户密码,用户是nagiosadmin(脚本里设置的,可自己改)。5.弹出自己输入密码6.脚本可能还有瑕疵,不知道依赖包考虑的是不是 完全.7. naios.zip文件10M ,传不上来。上传到百度云里。有兴趣的可以下载,并在自己虚拟机上运行一次看下效果下载地址:http://pan.baidu.com/s/1slJ5GIT      密码nexl8.脚本运行使用   当需要远程监控一台机器时,先在被监控端运行2,然后再监控端运行3.这是运行1大概 的过程------------  ##############----一键安装菜单----############### 1. 安装nagios 监控端# 2. 安装远程被监控端#3.监控端修改被监控端文件#4. 退出请输入菜单【1-4】1正在检测yum源yum源检测通过!----------正在安装依赖包----------依赖安装完成----------安装nagios----------编译中请设置页面登入密码,按回车设置New password:Re-type new password:Adding password for user nagiosadminOK,按回车继续