#!/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,按回车继续
当前文章:nagios自动安装脚本
浏览地址:
http://cdxtjz.cn/article/pjpdeh.html