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

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

时间: 2024-09-28 15:52:06

Cacti 系统批量添加Device脚本的相关文章

工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话"Hello World!!"   2> 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的版本信息.当前使用的内核版本.当前系统的主机名 方案: 规范Shell脚本的一般组成: 1> #! 环境声明(Sha-Bang)    2> # 注释文本 

批量添加用户脚本

#!/bin/bash for i in `seq 1 3` do useradd userl-$i echo "0"|passwd userl-$i --stdin 批量添加密码 done [[email protected]alhost ~]# sh -x create_user.sh ++ seq 1 3 + for i in '`seq 1 3`' + useradd userl-1 + echo 0 + passwd userl-1 --stdin Changing pass

shell脚本编程-例子_批量添加用户脚本

用户管理是Linux系统维护的工作之一,其中设计用户添加.删除等简单操作. 需求:一次添加很多用户.在一个文本文件中. 格式:以行为单位,每行是一条用户信息.用户名和密码之间使用特定的分隔符分开,可是是空格,逗号,Tab键等.这里用空格区分 eg: [[email protected] ~]$ cat addusers.txt username001 password001 username002 password002 username003 password003 username004 p

shell脚本之批量添加用户

没错,这是一个简单的脚本,不写不知道,写了才发现自己有多少不足. 下面的脚本主要用于批量添加用户的脚本,本来很简单的脚本,但是添加了一些判断,验证自己学习. 1.判断用户输入是否有误 2.判断用户是否存在,存在就跳过不再处理 代码如下: #/bin/bash #批量添加用户脚本   #判断用户是否存在函数 function panduan()     {         for nametmp in $(cat /tmp/user.txt)             do             

ubuntu批量添加IP

ubuntu 批量添加ip脚本 # !/bin/bash for ((i=0;i<=3;i=i+1)) do echo "auto eth0:$i">>/etc/network/interfaces echo "iface eth0:$i inet static">>/etc/network/interfaces let j=$i+179 echo "address 45.41.89.$j">>/etc/

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批量添加研究

利用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/p

为Discuz! X3.2批量添加用户的python脚本

为Discuz! X3.2批量添加用户的python脚本 搭建了一个Discuz! X3.2环境用于工作,需要添加用户时没有找到合适的工具,虽然同事最终用按键精灵解决了问题,不过还是决定写一段代码留下来,也许用得上. 之所以是Python而不是PHP,只是最近在接触Python,发现在这种场合更加方便. 添加用户代码: # encoding: utf-8 ''' Created on 2015年7月1日 @author: ZhongPing ''' import urllib import ur

Linux系统批量配置脚本

系统批量配置脚本使用手册 使用要求 linux操作系统(RHEL,kylin,凝思磐石均可用) 本地计算机expect命令可用 ssh.scp命令可用 脚本组成及功能说明 引导脚本 - config.sh 该脚本会引导整个脚本组合的执行,提示用户输入远程计算机IP地址(范围)及root密码. 系统配置脚本 - sysinfo-collect.sh 该脚本中可以自行定制需要在远程计算机上执行的命令,配合引导脚本及响应脚本使用,可以完成的任务有: 在远程计算机批量执行命令: 修改远程计算机配置文件: