首页 > Operation System > cacti中批量添加设备(linux server),并画图的脚本

cacti中批量添加设备(linux server),并画图的脚本

2011年7月2日 发表评论 阅读评论

公司需要搭一个cacti,把所有服务器的基本性能指标都看起来,那就搞吧。
首先,定制自己需要的host template,由于我们的都是linux server,故而先做个最基本的:linux-server-snmp,这个具体步骤不讲了,反正只要把Host MIB – Processes、ucd/net – CPU Usage、ucd/net – Load Average和ucd/net – Memory Usage,还有SNMP – Get Mounted Partitions和SNMP – Interface Statistics加上去即可。
然后,就是重点了,用脚本添加所有服务器并画图。
这里需要先准备好所有服务器的列表文件,格式是每行一个ip地址,然后

cd /var/www/html/cacti;cd cli;php add_device.php --list-host-templates

这里假设/var/www/html/cacti为cacti系统的主目录,这里是用来列出所有的host template的,我们需要找出我们要用的那个host template(也就是我们刚新建的那个host template)的id号,我们假设它是19,这个很重要,后面会用到。

for i in `cat /tmp/ip_list`
do
    if snmpwalk -v 2c -c community_string $i>/dev/null 2>&1; then
        php add_device.php --description=$i --ip=$i --template=19 --avail=snmp --disable=0
    fi
done

这里的命令是把所有服务器添加到devices里,其中的/tmp/ip_list是前面提到的服务器ip列表文件;19是新建host template的id;community_string是抓取snmp信息的community串。这里没有在命令行里写上snmp信息那是因为已经在Console->Settings->General的SNMP Defaults里都设好了
下面再添加基本的图的命令:

for i in `php add_graphs.php --list-hosts | grep -v "Known Hosts" | awk '{print $1}'`
do
	for j in 4 11 13
	do
		php add_graphs.php --graph-template-id=$j --host-id=$i --graph-type=cg
	done
	for j in 0 1
	do
		php add_graphs.php --graph-template-id=2 --host-id=$i --graph-type=ds --snmp-query-id=1 --snmp-query-type-id=14 --snmp-field=ifDescr --snmp-value=eth$j
	done
	for j in `php add_graphs.php --snmp-field=hrStorageDescr --list-snmp-values --host-id=$i | grep -v Known | grep -v /sys | grep -v /proc | grep /`
	do
		if [ "$j" != "" ]; then
			php add_graphs.php --host-id=$i --graph-type=ds --graph-template-id=26 --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="$j"
		fi
	done
done
分类: Operation System 标签:
  1. 2011年8月11日19:04 | #1

    不错,谢谢分享,中医治疗肿瘤www.kaspw.com

  1. 本文目前尚无任何 trackbacks 和 pingbacks.