Cacti 系统批量添加Device脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cacti 系统批量添加Device脚本相关的知识,希望对你有一定的参考价值。

Cacti 系统批量添加Device脚本

 

功能】:

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

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

  • 自动添加到相应的组。

 

准备工作

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下确认,是否添加成功。

技术分享

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

本文出自 “IT运维经验整理” 博客,请务必保留此出处http://milton.blog.51cto.com/833904/1745891

以上是关于Cacti 系统批量添加Device脚本的主要内容,如果未能解决你的问题,请参考以下文章

cacti批量增加监控脚本

Cacti图形数据自动导出脚本

自动化安装Cacti 0.8.8h脚本

cacti出图无数据

Linux 之cacti 监控介绍

linux下的监测工具,这几个哪个最好?zabbix、nagios、munin、cacti?