CACTI批量添加linux主機sh腳本

關於批量添加就三個文件:add_hosts.sh,ips.txt,thold_test.php,關於如何使用,更是簡單php

./add_hosts.sh --add #執行批量工做./add_hosts.sh --help #查看幫助html

一、cli/add_host.sh

  1. #!/bin/bashnode

  2. ## @author : admin@51bbo.commysql

  3. ## @date   : 2014.06.09linux

  4. ## @action : cacti批量填加機器sql

  5. ## @doc    : http://www.cacti.net/downloads/docs/html/cli_add_graphs.htmlshell

  6. ##windows

  7. PATH =/usr/local/php/bin:$PATHbash

  8. THISDIR =$(cd $(dirname $0); pwd)ide

  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   #查看幫助\n"

  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

二、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

三、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. }

相關文章
相關標籤/搜索