重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
搭建好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
运行结果如下:(注意:下面蓝色部分为交互式输入部分)
添加主机:
[root@localhost nagios]# ./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
[root@localhost nagios]# cat etc/hosts/slave3.cfg
define host{
use linux-server,hosts-pnp
host_name slave3
alias slave3
address 192.168.56.110
}
添加服务:
[root@localhost nagios]# ./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
[root@localhost nagios]# 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
}