Cacti批量添加脚本

之前公司重搭cacti的时候学习过一阵。一直忘了总结。这里先把脚本放上。
使用脚本其实和手工添加的流程是一样的,添加device,然后画图。(至今不知道在脚本里面划分主机树状图的方法,期待高人解答~)
首先是添加device,ip列表文件:hosts格式如下10.10.10.10=monitor(等号前面ip,后面主机名)
#!/bin/sh
say() {

/usr/local/bin/php -q /xxxxx/cacti/cli/add_device.php --description="$2" --ip="$1" --template=3 --community="public"
}
for i in `cat hosts`
do
v1=`echo -n $i |awk -F = '{printf $1}'`
v2=`echo -n $i |awk -F = '{printf $2}'`
say $v1 $v2
echo $v1
echo $v2
done
 
添加device后cacti会给那些机器分配id,通常批量添加时,那些主机的id是连续的。用seq命令生成序列写到idlist里。
现在根据那些id画图。
首先画出基础的图,所以有参数‘--graph-type=cg’。由于主机都是CentOS机器,这里使用4,11,13这三个画图模板(不同的cacti版本的里面的画图模板也许会不一样,所以写脚本之前最好先跑一下add_graphs.php看看。应该使用什么模板)。
#!/bin/sh
for t in `cat idlist`
do
for i in `echo -n "4 11 13"`
do
#echo $t $i
/usr/local/bin/php -q /xxxxx/cacti/cli/add_graphs.php --host-id=$t --graph-type=cg --graph-template-id=$i
# –snmp-query-id=1 –snmp-query-type-id=13 –snmp-field=ifOperStatus –snmp-value=Up
done
done
#add_graphs.php --graph-type=[cg|ds] --graph-template-id=[ID] --host-id=[ID]
之后画一些定制的图,如网卡,磁盘。这里先用add_graphs.php的‘--list-snmp-values’这个参数查出那个主机具体有哪些设备,然后逐一添加。
画这些定制图时,都要有这一个参数‘--graph-type=ds’ ,网卡的画图模板id是2,分区的id是26(不同的cacti版本的里面的画图模板也许会不一样,所以写脚本之前最好先跑一下add_graphs.php看看。应该使用什么模板~~真啰嗦,又说了一遍~)
脚本里的添加网卡语句我注释了,需要的话可以打开。
#!/bin/sh
for ID in `cat idlist`
do
#add_interface
#for j in  `/usr/local/bin/php /xxxxx/cacti/cli/add_graphs.php --host-id=$ID --graph-type=ds  --graph-template-id=2 --snmp-query-id=1 --snmp-query-type-id=16 --snmp-field=ifDescr --list-snmp-values|grep -v ifDescr|grep -v lo|grep -v sit0`
#do
#/usr/local/bin/php /xxxxx/cacti/cli/add_graphs.php --host-id=$ID --graph-type=ds  --graph-template-id=2 --snmp-query-id=1 --snmp-query-type-id=16 --snmp-field=ifDescr --snmp-value=$j
#done
#add_partition
for i in  `/usr/local/bin/php /xxxxx/cacti/cli/add_graphs.php --host-id=$ID --graph-type=ds  --graph-template-id=26 --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --list-snmp-values|grep -v hrStorage|grep -v Memory|grep -v Swap|grep -v Space|grep -v Buffers|grep -v Real`
do
/usr/local/bin/php /xxxxx/cacti/cli/add_graphs.php --host-id=$ID --graph-type=ds  --graph-template-id=26 --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value=$i
done
done
 
#####################################
cacti的那几个php脚本确实强大,许多参数都还没有用过呢。有时间一定要好好学学。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ee7ead57b1f5a03e112361f41b893cd7.html