nagios里的host.cfg,service.cfg配置起来有没有觉的相当的麻烦,繁琐。有没有可能自动化的一键就部署几百台服务器的服务监控?没事,写个脚本不就完事了..
1,首先创建一个主机列表文件hostlist.txt
[root@localhost objects]# cat hostlist.txt
l-tong1.rui.cn1 192.168.1.1
l-tong2.rui.cn1 192.168.1.2
l-tong3.rui.cn1 192.168.1.3
l-tong4.rui.cn1 192.168.1.4
[root@localhost objects]#
可以手动写进去,也可以用脚本去取添加
2,现在开始写脚本文件
[root@localhost objects]# vim dd.sh
#!/bin/bash
rm -f tongrui.host
exec <hostlist.txt
while read line
do
echo 'define host {' >>tongrui.host
echo ' use linux-server' >>tongrui.host
echo " host_name `echo $line|awk '{print $1}'`" >>tongrui.host
echo " alias `echo $line|awk '{print $1}'` " >>tongrui.host
echo " address `echo $line|awk '{print $2}'` " >>tongrui.host
echo "}" >>tongrui.host
done
(echo $line就是显示从hostlist.txt读的行,然后过滤他的第一列)
wq 保存退出
给dd.sh一个X可执行的权限:[root@localhost objects]# chown a+x dd.sh
3.执行dd.sh这个脚本
现在我们来看tongrui.host有没有写入
[root@localhost objects]# cat tongrui.host
define host {
use linux-server
host_name l-tong1.rui.cn1
alias l-tong1.rui.cn1
address 192.168.1.1
}
define host {
use linux-server
host_name l-tong2.rui.cn1
alias l-tong2.rui.cn1
address 192.168.1.2
}
define host {
use linux-server
host_name l-tong3.rui.cn1
alias l-tong3.rui.cn1
address 192.168.1.3
}
define host {
use linux-server
host_name l-tong4.rui.cn1
alias l-tong4.rui.cn1
address 192.168.1.4
}
注释:
不管是nagios 还是cacti ,部署好了之后 ,很多的监控项目都是需要另外写脚本的,不是简单的整合而已,别一听监控 ,就觉得,多牛多牛 ,其实就是最基本的,监控都没有 ,你运维什么呢。