butai 发表于 2013-7-23 10:00:16

交互式添加nagios主机和服务脚本

搭建好nagios 服务器之后,剩下的工作其实就是将欲监控的主机和服务添加到配置文件中,这过程其实有很多重复性的工作,所以我写了个交互式脚本,可以一步到位。 脚本思路分析:首先分析下主机和服务的配置:主机:define host{
      use   linux-server,hosts-pnp
      host_name       client
      alias               client
      address         192.168.56.105
} 服务:define service{
      use   generic-service,services-pnp
      host_name       client
      service_description      check_load
      check_command         check_nrpe!check_load
      max_check_attempts 5
      normal_check_interval 1
} 注:上面红色部分为变化的部分,其余的都是固定的。也就是说需要将红色部分设置成变量。接下来的问题就是配置服务的时候,如何一次性读入多个服务,实现一步到位。也就是说,我可以一次性添加多个服务,而无需重复性的运行脚本。下面我是通过数组来实现的。 脚本如下:添加主机:


#!/bin/bash
echo "Please input the infomations of the server you want to set."
read -p "hostname:" HNAME
read -p "alias:" ALIAS
read -p "IP:" IP
cat << EOF > /usr/local/nagios/etc/hosts/${HNAME}.cfg
define host{
use   linux-server,hosts-pnp
host_name       ${HNAME}
alias                  ${ALIAS}
address            ${IP}
}
EOF
service nagios reload添加服务:


#!/bin/bash
read -p "Please input your hostname :" HNAME
read -p "please input the number of the services you want to set :" n
echo "Please input the services' name :"
read -a SHELL
for ((i=0;i<=${n}-1;i++))
do
echo "${SHELL[$i]}" >> /tmp/name.txt
done
while read line
do
cat << EOF >> /usrl/local/nagios/etc/services/${HNAME}.cfg
define service{
use   generic-service,services-pnp
host_name       ${HNAME}
service_description   check_${line}
check_command         check_nrpe!check_${line}
max_check_attempts 5
normal_check_interval 1
}
EOF
echo "$line"
done < /tmp/name.txt
rm -rf /tmp/name.txt
service nagios reload 运行结果如下:(注意:下面蓝色部分为交互式输入部分)添加主机:# ./autochost.sh
Please input the infomations of the server you want to set.
hostname:slave3
alias:slave3
IP:192.168.56.110
Running configuration check...done.
Reloading nagios configuration...done
# cat etc/hosts/slave3.cfg
define host{
      use   linux-server,hosts-pnp
      host_name       slave3
      alias         slave3
      address         192.168.56.110
} 添加服务:# ./autocservice.sh
Please input your hostname :slave3
please input the number of the services you want to set :4
Please input the services' name :
http ssh mysql ftp # cat etc/services/slave3.cfg
define service{
use   generic-service,services-pnp
      host_name       slave3
      service_description   check_http
      check_command         check_nrpe!check_http
      max_check_attempts 5
      normal_check_interval 1
}
define service{
use   generic-service,services-pnp
      host_name       slave3
      service_description   check_ssh
      check_command         check_nrpe!check_ssh
      max_check_attempts 5
      normal_check_interval 1
}
define service{
use   generic-service,services-pnp
      host_name       slave3
      service_description   check_mysql
      check_command         check_nrpe!check_mysql
      max_check_attempts 5
      normal_check_interval 1
}
define service{
use   generic-service,services-pnp
      host_name       slave3
      service_description   check_ftp
      check_command         check_nrpe!check_ftp
      max_check_attempts 5
      normal_check_interval 1
}

yuxing 发表于 2013-7-23 19:53:20

人生自古谁无死,啊个拉屎不用纸!

buhong 发表于 2013-7-24 08:57:28

解释就系掩饰,掩饰等于无出色,无出色不如回家休息!!!

ck1987 发表于 2013-7-25 10:39:12

如果跟导师讲不清楚,那么就把他搞胡涂吧!

zjxhx 发表于 2013-7-26 10:32:40

好好 学习了 确实不错

浪人 发表于 2013-7-27 06:47:30

我身在江湖,江湖里却没有我得传说。

boss44 发表于 2013-7-28 02:43:54

床上运动也可以减肥的,你们都不知道吗?
页: [1]
查看完整版本: 交互式添加nagios主机和服务脚本