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

[经验分享] CACTI批量添加linux主机sh脚本

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-7 13:47:29 | 显示全部楼层 |阅读模式
  关于批量添加就三个文件:add_hosts.sh,ips.txt,thold_test.php,关于如何使用,更是简单
  ./add_hosts.sh --add #执行批量工作./add_hosts.sh --help #查看帮助
1、cli/add_host.sh


  • #!/bin/bash
  • ## @author : admin@51bbo.com
  • ## @date   : 2014.06.09
  • ## @action : cacti批量填加机器
  • ## @doc    : http://www.cacti.net/downloads/docs/html/cli_add_graphs.html
  • ##
  • PATH =/usr/local/php/bin:$PATH
  • THISDIR =$(cd $(dirname $0); pwd)
  • function linux_monitor() {
  •     while read host_line
  •     do
  •         #读取IP列表
  •          host_name =$(echo $host_line |awk '{print $1}')
  •          host_ip =$(echo $host_line |awk '{print $2}')
  •          host_tree =$(echo $host_line |awk '{print $3}')
  •         #添加cacti设备
  •         php add_device.php  --description = "$host_name($host_ip)"   --ip = "$host_ip"   --template = 1   --version= 2   --community = "chilijoy"
  •         #读取设备ID
  •          host_ids =$(php add_graphs.php --list-hosts |grep $host_ip |awk '{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 = 7
  •         php add_graphs.php  --host-id = "$host_ids"   --graph-type = cg   --graph-template-id = 8
  •         php add_graphs.php  --host-id = "$host_ids"   --graph-type = cg   --graph-template-id = 9
  •         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 = cg   --graph-template-id = 41
  •         #创建网卡数据图像
  •         #php add_graphs.php  --host-id = "$host_ids"   --graph-type = ds    --graph-template-id = 2   --snmp-query-id = 1   --snmp-query-type-id = 13   --snmp-field = ifOperStatus   --snmp-value = "up"
  •         php add_graphs.php  --host-id = "$host_ids"   --graph-type = ds    --graph-template-id = 2   --snmp-query-id = 1   --snmp-query-type-id = 13   --snmp-field = ifDescr   --snmp-value = "eth0"
  •         #创建分区数据图像
  •         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 = "Swap space"
  •         #添加设备到相应的组
  •         php add_tree.php  --host-id = "$host_ids"   --type = node   --node-type = host   --tree-id =$host_tree
  •         #添加自动阀值
  •         cd ../plugins/thold; php thold_test.php "$host_ids"
  •         cd $THISDIR
  •         #开启主机监控
  •         mysql -uroot -p'password' -e "update cacti.host set  monitor = 'on'  where  id = '$host_ids' "
  •     done  <  $THISDIR/ips.txt
  • }
  • function windows_monitor() {
  •     echo
  • }
  • usage ="\
  • Usage:
  •     php add_device.php --help
  •     php add_graphs.php --help
  •     php add_tree.php --help
  • shell >  php add_graphs.php --list-snmp-queries
  • Known SNMP Queries:(id, name)
  • 1   SNMP - 接口统计
  • 2   ucd/net -  获取被监控分区
  • 3   Karlnet - 无线网桥统计
  • 4   Netware - 获取可用卷
  • 6   Unix - 获取已挂载分区
  • 7   Netware - 获取处理器信息
  • 8   SNMP - 获取已挂载分区
  • 9   SNMP - 获取处理器信息
  • 10  ucd/net - Device I/O
  • shell >  php add_graphs.php --list-snmp-fields   --host-id = 25   --snmp-query-id = 1
  • Known SNMP Fields for host-id 25: (name)
  • ifAlias
  • ifDescr
  • ifHwAddr
  • ifIndex
  • ifIP
  • ifName
  • ifOperStatus
  • ifSpeed
  • ifType
  • shell >  php add_tree.php --list-trees
  • Known Trees:
  • id  sort method         name
  • 4   手动排序 (不排序)  1-项目1
  • 5   手动排序 (不排序)  2-项目2
  • shell >  php add_graphs.php --list-query-types   --snmp-query-id = 1
  • Known SNMP Query Types: (id, name)
  • 2   输入/输出 错误/丢包
  • 3   输入/输出 非单播包
  • 4   输入/输出 单播包
  • 9   输入/输出 字节 (64位计数)
  • 13  输入/输出 位
  • 14  输入/输出 位(64位计数)
  • 16  输入/输出 字节
  • 20  输入/输出 位(95%)
  • 21  输入/输出 位(总带宽)
  • 22  输入/输出 字节(总带宽)
  • shell >  php add_graphs.php --list-snmp-values   --host-id = 25   --snmp-query-id = 1   --snmp-field = ifDescr
  • Known values for ifDescr for host 25: (name)
  • eth0
  • lo
  • shell >  php add_graphs.php --list-snmp-values   --host-id = 25   --snmp-query-id = 1   --snmp-field =ifOperStatus
  • Known values for ifOperStatus for host 25: (name)
  • Up
  • shell >  cat ips.txt  #文件格式
  • ID      IP          host tree
  • s_name  192.168.0.1 5
  • $0 --add    #执行批量工作
  • $0 --help   #查看帮助\n"
  • for ARGS in "$@"
  • do
  •     case $ARGS in
  •         -add|--add)
  •             linux_monitor;;
  •         -h|-help|--help)
  •             echo -e "$usage";;
  •     esac
  • done
2、cli/ips.txt

  • [iyunv@s_name cli]# cat ips.txt
  • s0.name 192.168.1.200   5
  • s1.name 192.168.1.210   5
  • s2.name 192.168.1.220   6
3、plugins/thold/thold_test.php


  • [iyunv@s_name thold]# cat plugins/thold/thold_test.php
  • <?php
  • chdir ('../../');
  • include ( "./include/global.php" );
  • include_once ( $config ['library_path'] . '/rrd.php');
  • include_once ( $config ['base_path'] . '/plugins/thold/thold_functions.php');
  • $hostid  =  $_SERVER ['argv'][1];
  • #print  $hostid ;
  • $c  = autocreate( $hostid );
  • if  ( $c  == 0) {
  •     print 'Either No Templates  or  Threshold(s) Already Exists - No thresholds were created.';
  • }


  • 本文来自:Linux学习网

运维网声明 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-110631-1-1.html 上篇帖子: cacti 与 nagios 一些总结 【七】 下篇帖子: 安装Cacti-plugin
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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