cacti批量添加研究

利用cacti提供的api接口可以进行添加查询监控

这些api脚本放在cacti的cli目录下面:

/web/cacti02/cli

编写脚本循环调用下面这些api脚本,就可以达到批量添加的效果,省去大量的人力和时间

add_data_query.php  add_device.php  add_graphs.php
add_graph_template.php  add_perms.php  add_tree.php

下面我们来实践添加一次cacti监控的过程:

1.添加设备

/usr/local/php/bin/php /usr/local/web/cacti02/cli/add_device.php --description="设备名称" --ip="设备ip" --avail=snmp --version=2 --community="snmp的团体名" --template="模板id"

如果你不知道模板id的话可以利用这个脚本的查询功能得到:

/usr/local/php/bin/php add_device.php  --list-host-templates

直接运行该脚本可以看到更多参数,我就不一一解释了:

/usr/local/php/bin/php add_device.php
Add Device Script 1.0, Copyright 2004-2012 - The Cacti Group
A simple command line utility to add a device in Cacti
usage: add_device.php --description=[description] --ip=[IP] --template=[ID] [--notes="[]"] [--disable]
    [--avail=[ping]] --ping_method=[icmp] --ping_port=[N/A, 1-65534] --ping_retries=[2]
    [--version=[1|2|3]] [--community=] [--port=161] [--timeout=500]
    [--username= --password=] [--authproto=] [--privpass= --privproto=] [--context=]
    [--quiet]
Required:
    --description  the name that will be displayed by Cacti in the graphs
    --ip           self explanatory (can also be a FQDN)
Optional:
    --template     0, is a number (read below to get a list of templates)
    --notes        ‘‘, General information about this host.  Must be enclosed using double quotes.
    --disable      0, 1 to add this host but to disable checks and 0 to enable it
    --avail        pingsnmp, [ping][none, snmp, pingsnmp]
    --ping_method  tcp, icmp|tcp|udp
    --ping_port    ‘‘, 1-65534
    --ping_retries 2, the number of time to attempt to communicate with a host
    --version      1, 1|2|3, snmp version
    --community    ‘‘, snmp community string for snmpv1 and snmpv2.  Leave blank for no community
    --port         161
    --timeout      500
    --username     ‘‘, snmp username for snmpv3
    --password     ‘‘, snmp password for snmpv3
    --authproto    ‘‘, snmp authentication protocol for snmpv3
    --privpass     ‘‘, snmp privacy passphrase for snmpv3
    --privproto    ‘‘, snmp privacy protocol for snmpv3
    --context      ‘‘, snmp context for snmpv3
    --max_oids     10, 1-60, the number of OID‘s that can be obtained in a single SNMP Get request
List Options:
    --list-host-templates
    --list-communities
    --quiet - batch mode value return

添加好设备后我们就可以为设备添加图像了,首先我们通过api获取到刚刚添加的设备的id号:

host_ids=`/usr/local/php/bin/php add_graphs.php --list-hosts | grep "设备名称" | awk -F " " ‘{print $1}‘`-直接运行add_graphs.php -l

直接运行add_graphs.php --list-hosts会输出所有的设备信息,通过grep筛选出刚刚添加的设备名称,再通过awk截取id列,这些是shell的基础我就不多做解释了

有了设备的id号我们就可以为该设备添加图像:

/usr/local/php/bin/php /usr/local/web/cacti02/cli/add_graphs.php --host-id="设备id" --graph-type=cg --graph-template-id="图像模板id"

图像的模板id可以通过--list-graph-templates查到,和设备的模板id查询方法类似

最后就到树的构建了,首先我们添加最外层的树,如果已经有的话,可以通过add_tree.php --list-trees查到树的id,如果没有则:

/usr/local/php/bin/php add_tree.php  --type=tree  --name="树名"

然后我们添加树下的节点:

/usr/local/php/bin/php add_tree.php  --type=node  --tree-id="树的id" --node-type=header --name="节点的名称"

如果我们不需要添加节点,而是直接就在树下添加主机,那样把上面语句的--node-type=header 改成--node-type=host就可以了

如果是直接在树下添加图像,那样把--noed-type=header改成--node-type=graph

添加好节点后我们可以选择在该节点下添加主机或图像:

主机:

/usr/local/php/bin/php add_tree.php --graph-id="图像的id" --type=node --node-type=host --tree-id="树的id" --parent-node="节点的id"

图像的id可以通过如下语句查出:

/usr/local/php/bin/php add_tree.php --list-graphs --host-id="设备id" |grep "该树的名称" |awk -F " " ‘{print $1}‘

节点的id可以通过如下语句查出:

/usr/local/php/bin/php /usr/local/web/cacti02/cli/add_tree.php --list-nodes --tree-id="树的id" |grep "N/\A.*节点的名称" |awk -F " " ‘{print $2}‘

如果是添加图像的话把--node-type=host改成--node-type=graph就可以了

通过循环批量执行如上步骤,就能批量添加cacti的监控,有兴趣的可以尝试下,下面贴上一个别人写的比较简单的添加脚本希望能够加深你们的理解:

#!/bin/bash
#by 崔元荣
#QQ:295749093
#cacti批量加监控
#读取IP列表
host_ips=`cat ips.txt`
for host_ip in $host_ips
do
        #添加cacti设备
        php add_device.php --description="$host_ip" --ip="$host_ip" --template=3 --version=2 --community="public"
        #读取设备ID
        host_ids=`php add_graphs.php --list-hosts | grep $host_ip | awk -F " " ‘{print $1}‘`
        #创建模板图像
        php add_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=11
        php add_graphs.php --host-id="$host_ids" --graph-type=cg --graph-template-id=13
        #创建网卡数据图像
        php add_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"
        php add_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="eth1"
        #创建分区数据图像
        php add_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="/"
        php add_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="/data"
        php add_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="/usr/local"
        php add_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"
        php add_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="Real Memory"
        php add_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="Swap Space"
        #添加设备到相应的组
        php add_tree.php --host-id="$host_ids" --type=node --node-type=host --tree-id=2
done

cacti批量添加研究

时间: 2024-10-06 23:30:21

cacti批量添加研究的相关文章

cacti批量添加监控主机网卡脚本

公司部署的cacti服务器专门用来监控所有服务器网卡流量,批量添加脚本 #!/bin/bash #add host for cacti path=/var/www/html/cacti/cli PHP=/usr/bin/php DEVICE=$path/add_device.php GRAPHS=$path/add_graphs.php TREE=$path/add_tree.php community_name=XXXXXX cat ./hosts | while read HOST;do h

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

android批量添加联系人

研究生期间就没写过Java代码了,这几天由于想做一个统计网页词频的工具,但是使用C++不是很方便,于是又用Java做了一个小工具.翻开电脑中以前的文件,发现之前还做过一个android中批量添加联系人的工具,瞬间感觉好亲切,也感叹时间过得好快,一眨眼研究生就快要过完了. 记得当初做这个批量添加联系人的工具是刚来读研时,一大堆新同学的手机号码需要添加,班长整理出来同学们的通讯录后就得一个一个输入联系人和号码到手机中,想想这罪可有的受,于是就想能不能让手机直接读取xls格式(Excel格式)的文件到

cacti批量增加监控脚本

#!/bin/bash ### IP_LIST=`cat /root/list.txt` for i in $IP_LIST do ID=`echo $i|awk -F \_ '{print $1}'` IP=`echo $i|awk -F \_ '{print $2}'` /data/webapps/cacti/cli/add_device.php --description="$ID" --ip="$IP" --template=3  --avail=snmp

EditPlus行首行尾批量添加字符

打开EditPlus,输入多行数据,快捷键ctrl+h 打开替换窗口,选择"正则表达式"替换 行首批量添加   查找"^" 替换为"我是行首aaa" 行尾批量添加   查找"\n" 替换为"'bbb我是行尾\n" editplus查找替换的正则表达式应用 表达式 说明 \t 制表符. \n 新行. . 匹配任意字符. | 匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 &qu

微信jssdk批量添加卡券接口

1)首先是官方接口文档: 1.批量添加卡券接口:https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.08619731531288366&token=&lang=zh_CN#wxkq3 : 2.卡券扩展字段cardExt说明:https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.08619731531288366&t

Lync Server 2010批量添加联系人并同步联系人

最近一直帮助朋友整理Lync Server 2010,总是听他抱怨说微软的Lync不能实现组织结构等方面的联系人列表,其实也不完全没办法实现,早在OCS的年代,OCS利用Restkit tool工具进行添加联系人列表,而到了Lync的时代虽然Restkit Tool工具还在,但是已然无法利用之前的方式进行批量添加联系人了,在网上有人表示利用LyncAddContacts.vbs这个工具进行批量添加,但是所有的文章只是把国外这个作者的写的东西照抄过来并且翻译一下就成为原创发布到网络上,本人觉得现在

struts2文件上传(单文件/批量添加)

单文件上传 1.导入上传需要jar包 2.建立UploadAction file是jsp页面的输入项的name相同,后面的两个属性的名称也是有规律的:(inputName+FileName/ContentType) 1 public class UploadAction extends ActionSupport{ 2 3 private static final long serialVersionUID = 1L; 4 private File file;//上传文件的本身 5 privat

利用shell实现批量添加用户

批量添加用户并设置随机密码,把添加的用户的名字和密码保存到文件中. [[email protected] scripts]# cat user.sh #!/bin/sh for i in `seq -w 10` do pass=$(echo "`date`$RANDOM"|md5sum|cut -c 1-8) //取随机数的方法是date结果和random随机数拼接并计算md5值取前8位 useradd kg$i echo "$pass"|passwd --stdi