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 ,部署好了之后 ,很多的监控项目都是需要另外写脚本的,不是简单的整合而已,别一听监控 ,就觉得,多牛多牛 ,其实就是最基本的,监控都没有 ,你运维什么呢。