设为首页 收藏本站
查看: 1695|回复: 0

[经验分享] cacti批量添加研究

[复制链接]

尚未签到

发表于 2019-1-10 09:45:33 | 显示全部楼层 |阅读模式
利用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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-661486-1-1.html 上篇帖子: cacti备份与迁移 下篇帖子: 大于2TB的硬盘在cacti 中的画图问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表