32ewdq 发表于 2015-12-4 09:33:42

nagios下批量添加hosts.cfg脚本

前言

随着业务的增加,我们所要监控的remote_linux数越来越多。这样我们可以一次性所要添加监控的主机数可能为10台,20台,甚至是百台上千台主机。
如果通过我们手动添加显然效率低下,甚至还会出错。这里就给出一个简单脚本,通过给定的hosts.list文件,来自动生成hosts.cfg.

文件


[*]hosts_list
# for i in `seq 2 9`;do echo "lnmp_$i    10.0.0.$i">>hosts_list;done
# cat hosts.list                     
lnmp_2    10.0.0.2
lnmp_3    10.0.0.3
lnmp_4    10.0.0.4
lnmp_5    10.0.0.5
lnmp_6    10.0.0.6
lnmp_7    10.0.0.7
lnmp_8    10.0.0.8
lnmp_9    10.0.0.9

[*]nagios_create_hosts.sh
# cat nagios_create_hosts.sh
#!/bin/sh
HOSTFILE="/usr/local/nagios/etc/services"
exec <hosts.list
while read line
do
cat >>$HOSTFILE/hosts.cfg<<EOF
#host:`echo $line|awk '{print $1}'` ip:`echo $line|awk '{print $2}'`
define host{
      use                           linux-server
      host_name               `echo $line|awk '{print $1}'`
      alias                         `echo $line|awk '{print $1}'`
      address                     `echo $line|awk '{print $2}'`
}
EOF
done



执行结果

# sh nagios_create_hosts.sh
# cat /usr/local/nagios/etc/services/hosts.cfg
#host:lnmp_2 ip:10.0.0.2
define host{
      use                   linux-server
      host_name             lnmp_2
      alias               lnmp_2
      address               10.0.0.2
}
#host:lnmp_3 ip:10.0.0.3
define host{
      use                   linux-server
      host_name             lnmp_3
      alias               lnmp_3
      address               10.0.0.3
}
#host:lnmp_4 ip:10.0.0.4
define host{
      use                   linux-server
      host_name             lnmp_4
      alias               lnmp_4
      address               10.0.0.4
}
#host:lnmp_5 ip:10.0.0.5
define host{
      use                   linux-server
      host_name             lnmp_5
      alias               lnmp_5
      address               10.0.0.5
}
#host:lnmp_6 ip:10.0.0.6
define host{
      use                   linux-server
      host_name             lnmp_6
      alias               lnmp_6
      address               10.0.0.6
}
#host:lnmp_7 ip:10.0.0.7
define host{
      use                   linux-server
      host_name             lnmp_7
      alias               lnmp_7
      address               10.0.0.7
}
#host:lnmp_8 ip:10.0.0.8
define host{
      use                   linux-server
      host_name             lnmp_8
      alias               lnmp_8
      address               10.0.0.8
}
#host:lnmp_9 ip:10.0.0.9
define host{
      use                   linux-server
      host_name             lnmp_9
      alias               lnmp_9
      address               10.0.0.9
}




页: [1]
查看完整版本: nagios下批量添加hosts.cfg脚本