Cacti 系统批量添加Device脚本

 

功能】:

  • 自动添加设备,自动生成模板图像;

  • 自动生成远程抓取的数据图像;

  • 自动添加到相应的组。

 

准备工作

1.启动客户端snmpd服务,并设置snmpd.conf文件:

/etc/init.d/snmpdstart ;chkconfig snmpd on

[root@ser01 .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 <root@localhost> (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参数

wKiom1bToVLiSffHAABcbzZmksQ896.png

 

add_graphs.php用法说明:

这个是绘图脚本,可以通过add_graphs.php  --list-templates来查看有哪些图形模板,可以从手动添加监控绘图里面查看绘图的模板,然后确认模板id

wKiom1bToVLx5cilAABU-nllwHs827.png

 

 

执行程序:

Notice和Warning忽略,看到下面有成功添加信息即可。

wKioL1bTpB2yn8VdAAB4H6DcSBw424.png


到cacti系统Devices下确认,是否添加成功。

wKiom1bTo6jCy6VCAAEUUPZnQxc351.png

到这里批量添加的工作基本结束,请再根据实际情况检查确认每台主机。