设为首页 收藏本站
查看: 1271|回复: 0

nagios自动安装脚本

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-14 08:57:40 | 显示全部楼层 |阅读模式
#!/bin/bash
##nagios监控软件一件使用
##date : 2016-08-23
##作者:liuwenzhi

#定义变量
YUMNUM=`yum repolist 2>/dev/null|grep repolist: |sed 's/[^0-9]//g'`
NAGIOSzip=nagios.zip
NAGIOS=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文件支持php
xiugai_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/ 下
}
#安装nrpe
nrpe_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 :
do
clear
menu
        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 "输入有误"
                ;;
        esac
done
1.此脚本在多台机器上测试成功。
2.nagios版本是nagios-3.2.1版本跑在httpd上
3.访问时:
      输入:  ip/nagios
4.页面用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 nagiosadmin
OK,按回车继续



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-271966-1-1.html 上篇帖子: python——nagios监控nginx日志 request_time 下篇帖子: Nagios监控系统主机与服务配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表