【功能】:
- 自动添加设备,自动生成模板图像;
- 自动生成远程抓取的数据图像;
- 自动添加到相应的组。
【准备工作】:
1.启动客户端snmpd服务,并设置snmpd.conf文件:
/etc/init.d/snmpdstart ;chkconfig snmpd on
[[email protected] .ssh]# cat /etc/snmp/snmpd.conf
com2sec notConfigUser default public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
access notConfigGroup "" any noauth exact all none none
group MyRWGroup any local
group MyROGroup any mynetwork
view all included .1 80
access MyROGroup "" any noauth 0 all none none
access MyRWGroup "" any noauth 0 all all all
syslocation ser02 (edit /etc/snmp/snmpd.conf)
syscontact Root <[email protected]> (configure/etc/snmp/snmp.conf)
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
2.在cacti服务器验证客户端snmp通讯:
snmpwalk -v 2c -c public 172.30.10.1 (若异常请将上面配置替换客户端snmpd.conf配置)
3.熟悉cacti提供的添加device、graphs等php脚本:
cacti提供了一些php脚本,通过调用就能完成添加批量工作。
脚本存放路径如下:/var/www/html/cli
-rw-r--r--.1 apache apache 7372 Apr 23 2012 add_data_query.php
-rw-r--r--.1 apache apache 11403 Apr 23 2012add_device.php
-rw-r--r--.1 apache apache 18738 Apr 23 2012add_graphs.php
-rw-r--r--.1 apache apache 5940 Apr 23 2012 add_graph_template.php
-rw-r--r--.1 apache apache 6876 Apr 23 2012 add_perms.php
-rw-r--r--.1 apache apache 9887 Apr 23 2012 add_tree.php
【脚本说明】:
[存放路径]:/var/www/html/cli
[Device列表文件]:/var/www/html/cli/ips.txt
[文件格式]:
cat ips.txt
ser01 172.30.10.1
ser02 172.30.10.2
[脚本文件]: /var/www/html/cli/addhost.sh
#!/bin/bash #cacti批量加监控 #读取IP列表 MYFILE=/var/www/html/cli/ips.txt while read host_info do host_name=$(echo $host_info |awk ‘{print $1}‘) host_ip=$(echo $host_info |awk ‘{print $2}‘) #添加cacti设备 phpadd_device.php --description="$host_name" --ip="$host_ip"--ping_method=icmp --template=8 --version=2 --community="public" #读取设备ID(gerp -w为精确匹配,否则会列出所有包含要查询ip的关键字,导致获取多个host-id,程序无法正常执行) host_ids=`php add_graphs.php --list-hosts |grep -w $host_ip |awk ‘{print$1}‘` #创建模板图像 phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=4 php add_graphs.php--host-id="$host_ids" --graph-type=cg --graph-template-id=7 phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=8 phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=9 phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=10 phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=11 phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=12 phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=21 phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=41 phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=271 #创建网卡数据图像 phpadd_graphs.php --host-id="$host_ids" --graph-type=ds --graph-template-id=2 --snmp-query-id=1--snmp-query-type-id=16 --snmp-field=ifDescr --snmp-value="eth0" #创建分区数据图像 phpadd_graphs.php --host-id="$host_ids" --graph-type=ds --graph-template-id=26 --snmp-query-id=8--snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="/" phpadd_graphs.php --host-id="$host_ids" --graph-type=ds --graph-template-id=26 --snmp-query-id=8--snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="Memory buffers" phpadd_graphs.php --host-id="$host_ids" --graph-type=ds --graph-template-id=26 --snmp-query-id=8--snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="Physicalmemory" phpadd_graphs.php --host-id="$host_ids" --graph-type=ds --graph-template-id=26 --snmp-query-id=8--snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="Swapspace" #添加设备到相应的组 phpadd_tree.php --host-id="$host_ids" --type=node --node-type=host--tree-id=9 done < $MYFILE ##--脚本结束--##
参数说明:
php add_device.php用法说明:
这个是添加device 其中--templates是应用的主机模板,可以通过add_device.php –list-host-templates来查看,后面的是snmp参数
add_graphs.php用法说明:
这个是绘图脚本,可以通过add_graphs.php --list-templates来查看有哪些图形模板,可以从手动添加监控绘图里面查看绘图的模板,然后确认模板id
执行程序:
Notice和Warning忽略,看到下面有成功添加信息即可。
到cacti系统Devices下确认,是否添加成功。
到这里批量添加的工作基本结束,请再根据实际情况检查确认每台主机。