#!/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,按回车继续