zoukankan      html  css  js  c++  java
  • CACTI批量添加linux主机sh脚本

    关于批量添加就三个文件:add_hosts.sh,ips.txt,thold_test.php,关于如何使用,更是简单

    ./add_hosts.sh --add #执行批量工作./add_hosts.sh --help #查看帮助

    1、cli/add_host.sh

    1. #!/bin/bash
    2. ## @author : admin@51bbo.com
    3. ## @date   : 2014.06.09
    4. ## @action : cacti批量填加机器
    5. ## @doc    : http://www.cacti.net/downloads/docs/html/cli_add_graphs.html
    6. ##
    7. PATH =/usr/local/php/bin:$PATH
    8. THISDIR =$(cd $(dirname $0); pwd)
    9. function linux_monitor() {
    10.     while read host_line
    11.     do
    12.         #读取IP列表
    13.          host_name =$(echo $host_line |awk '{print $1}')
    14.          host_ip =$(echo $host_line |awk '{print $2}')
    15.          host_tree =$(echo $host_line |awk '{print $3}')
    16.         #添加cacti设备
    17.         php add_device.php  --description = "$host_name($host_ip)"   --ip = "$host_ip"   --template = 1   --version= 2   --community = "chilijoy"
    18.         #读取设备ID
    19.          host_ids =$(php add_graphs.php --list-hosts |grep $host_ip |awk '{print $1}')
    20.         #创建模板图像
    21.         php add_graphs.php  --host-id = "$host_ids"   --graph-type = cg   --graph-template-id = 4
    22.         php add_graphs.php  --host-id = "$host_ids"   --graph-type = cg   --graph-template-id = 7
    23.         php add_graphs.php  --host-id = "$host_ids"   --graph-type = cg   --graph-template-id = 8
    24.         php add_graphs.php  --host-id = "$host_ids"   --graph-type = cg   --graph-template-id = 9
    25.         php add_graphs.php  --host-id = "$host_ids"   --graph-type = cg   --graph-template-id = 13
    26.         php add_graphs.php  --host-id = "$host_ids"   --graph-type = cg   --graph-template-id = 41
    27.         #创建网卡数据图像
    28.         #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"
    29.         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"
    30.         #创建分区数据图像
    31.         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 = "/"
    32.         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"
    33.         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"
    34.         #添加设备到相应的组
    35.         php add_tree.php  --host-id = "$host_ids"   --type = node   --node-type = host   --tree-id =$host_tree
    36.         #添加自动阀值
    37.         cd ../plugins/thold; php thold_test.php "$host_ids"
    38.         cd $THISDIR
    39.         #开启主机监控
    40.         mysql -uroot -p'password' -e "update cacti.host set  monitor = 'on'  where  id = '$host_ids' "
    41.     done  <  $THISDIR/ips.txt
    42. }
    43. function windows_monitor() {
    44.     echo
    45. }
    46. usage ="
    47. Usage:
    48.     php add_device.php --help
    49.     php add_graphs.php --help
    50.     php add_tree.php --help
    51. shell >  php add_graphs.php --list-snmp-queries
    52. Known SNMP Queries:(id, name)
    53. 1   SNMP - 接口统计
    54. 2   ucd/net -  获取被监控分区
    55. 3   Karlnet - 无线网桥统计
    56. 4   Netware - 获取可用卷
    57. 6   Unix - 获取已挂载分区
    58. 7   Netware - 获取处理器信息
    59. 8   SNMP - 获取已挂载分区
    60. 9   SNMP - 获取处理器信息
    61. 10  ucd/net - Device I/O
    62. shell >  php add_graphs.php --list-snmp-fields   --host-id = 25   --snmp-query-id = 1
    63. Known SNMP Fields for host-id 25: (name)
    64. ifAlias
    65. ifDescr
    66. ifHwAddr
    67. ifIndex
    68. ifIP
    69. ifName
    70. ifOperStatus
    71. ifSpeed
    72. ifType
    73. shell >  php add_tree.php --list-trees
    74. Known Trees:
    75. id  sort method         name
    76. 4   手动排序 (不排序)  1-项目1
    77. 5   手动排序 (不排序)  2-项目2
    78. shell >  php add_graphs.php --list-query-types   --snmp-query-id = 1
    79. Known SNMP Query Types: (id, name)
    80. 2   输入/输出 错误/丢包
    81. 3   输入/输出 非单播包
    82. 4   输入/输出 单播包
    83. 9   输入/输出 字节 (64位计数)
    84. 13  输入/输出 位
    85. 14  输入/输出 位(64位计数)
    86. 16  输入/输出 字节
    87. 20  输入/输出 位(95%)
    88. 21  输入/输出 位(总带宽)
    89. 22  输入/输出 字节(总带宽)
    90. shell >  php add_graphs.php --list-snmp-values   --host-id = 25   --snmp-query-id = 1   --snmp-field = ifDescr
    91. Known values for ifDescr for host 25: (name)
    92. eth0
    93. lo
    94. shell >  php add_graphs.php --list-snmp-values   --host-id = 25   --snmp-query-id = 1   --snmp-field =ifOperStatus
    95. Known values for ifOperStatus for host 25: (name)
    96. Up
    97. shell >  cat ips.txt  #文件格式
    98. ID      IP          host tree
    99. s_name  192.168.0.1 5
    100. $0 --add    #执行批量工作
    101. $0 --help   #查看帮助 "
    102. for ARGS in "$@"
    103. do
    104.     case $ARGS in
    105.         -add|--add)
    106.             linux_monitor;;
    107.         -h|-help|--help)
    108.             echo -e "$usage";;
    109.     esac
    110. done

    2、cli/ips.txt

    1. [root@s_name cli]# cat ips.txt
    2. s0.name 192.168.1.200   5
    3. s1.name 192.168.1.210   5
    4. s2.name 192.168.1.220   6

    3、plugins/thold/thold_test.php

    1. [root@s_name thold]# cat plugins/thold/thold_test.php
    2. <?php
    3. chdir ('../../');
    4. include ( "./include/global.php" );
    5. include_once ( $config ['library_path'] . '/rrd.php');
    6. include_once ( $config ['base_path'] . '/plugins/thold/thold_functions.php');
    7. $hostid  =  $_SERVER ['argv'][1];
    8. #print  $hostid ;
    9. $c  = autocreate( $hostid );
    10. if  ( $c  == 0) {
    11.     print 'Either No Templates  or  Threshold(s) Already Exists - No thresholds were created.';
    12. }
  • 相关阅读:
    5.常见类和API
    4.异常
    3.面向对象
    2.控制语句和数组
    1.初始java 数据类型 运算符
    C#设计模式——桥接模式
    C#设计模式——适配器模式
    C#设计模式——原型模式
    C#设计模式——建造者模式
    C#设计模式——抽象工厂模式
  • 原文地址:https://www.cnblogs.com/bokejiayuan/p/4370955.html
Copyright © 2011-2022 走看看