1. 程式人生 > >cacti批量新增linux虛擬機器監控

cacti批量新增linux虛擬機器監控

背景:

測試環境前段時間應用伺服器的IP段更換後,cacti中一直用的舊IP都沒人管過,同事反饋能不能批量把各網新IP段的機器新增上去。批量就涉及指令碼作業,但對於catci之前沒接觸過的,只能現學現解決問題了。

自動化的基礎是先手工確認一套可行的流程,所以我這次其實走了彎路。

網上一搜一大把關於批量新增機器的文章,但。。真的是一言難盡吶,唯一幫我的就是:哦,原來php檔案可以直接執行的喲,跟其它語言寫的指令碼命令一樣。

首先,我為了圖方便,在cacti這臺伺服器的環境變數中增加了php指令,不用每次都要帶全路徑敲出來。
 

[[email protected]_5 cli]# vim ~/.bashrc
export PATH=/data/src/bak/bin/:$PAT
[
[email protected]
_5 cli]# source ~/.bashrc

其實,cacti監控clent機器,完全是靠snmp服務來通訊的,所以首先需要檢視新增的機器是否開啟了snmp服務:

[[email protected]_5 cli]# snmpwalk -v 2c -c public 192.168.xx.xx

 如果結果出來這一堆資料,就證明要監控的客戶機上的snmp服務已開啟

第1步:新增device

進入cacti管理平臺,用amdin管理員帳戶 登入(你的密碼別問我),點選console下的Devices,會顯示所有的已建立的配置列表

點選右上角的“Add”,增加一個新的device

 其實,這裡的【Host Template】也是可以查到的,主機模板ID,我們選擇的是[3]

用命令:php add_device.php --list-host-templates

[[email protected]_5 cli]# php add_device.php --list-host-templates
Valid Host Templates: (id, name)
0	None
1	Generic SNMP-enabled Host
3	ucd/net SNMP Host
4	Karlnet Wireless Bridge
5	Cisco Router
6	Netware 4/5 Server
7	Windows 2000/XP Host
8	Local Linux Machine

我們新增的就3項,

最後一步,新增Graph Trees

 我新增的是虛擬機器,到你想要新增的節點下點Add

我選擇的是節點下的host,並不是header.選擇相應資訊

 新增成功:退出重新登陸,檢視節點tree下是否有剛新增的機器,右側監控圖表預計需要5-10分鐘才會有資料出來

其實集合成命令也就是3步而已:

php add_device.php  --description=$host_name --ip=$ip --template=3  --version=2  --community=public

php add_graphs.php --host-id="$host_id" --graph-type=cg --graph-template-id=$template-id
php add_graphs.php --host-id="$host_id" --graph-type=cg --graph-template-id=$template-id
php add_graphs.php --host-id="$host_id" --graph-type=cg --graph-template-id=$template-id


 php add_tree.php --host-id="$host_id" --type=node --node-type=host --tree-id=2 --parent-node=192

$host_name:我的ips.txt中定義的名稱,也就是tree上掛的名稱

$ip:就是新增的device的ip了

--template=3 : 上面有講到,就是新增機器的時候選擇的模板3    ucd/net SNMP Host

--version=2  :SNMP Version的版本號,管理後臺,一般會預設,

--community=public  :snmp的共享方式,這裡與客戶機的snmp配置有關,如果客戶機沒有此配置,則cacti無法監控到此客戶機,而且也會報錯的,報錯原因和解決方案後面有講。

$host_id:新增機器成功後,會自動生成host_id,Success - new device-id: (183) 183就是host_id

[[email protected]_5 cli]# php add_device.php --description="53.149" --ip="192.168.53.149" --avail=snmp --version=2 --community="public" --template="8"
Adding 53.149 (192.168.53.149) as "Local Linux Machine" using SNMP v2 with community "public"
Success - new device-id: (183)

新增機器如果報錯:Timeout: No Response from 192.168.53.xx.xx.需要檢查被監控機器192.168.53.xx.xx.上的snmp服務是否開啟,我們使用命令檢查:snmpwalk -v 2c -c public $ip

有開啟服務,但仍然有問題,需要檢查配置項:

$template-id:就是需要新增的監控圖形模板

用命令查詢一共有哪些圖形模板: php add_graphs.php --list-graph-templates

[[email protected]_5 cli]# php add_graphs.php --list-graph-templates
Known Graph Templates:(id, name)
2	Interface - Traffic (bits/sec)
3	ucd/net - Available Disk Space
4	ucd/net - CPU Usage
5	Karlnet - Wireless Levels
6	Karlnet - Wireless Transmissions
7	Unix - Ping Latency
8	Unix - Processes
9	Unix - Load Average
10	Unix - Logged in Users
12	Linux - Memory Usage
13	ucd/net - Memory Usage
14	Netware - File System Cache
15	Netware - CPU Utilization
16	Netware - File System Activity
17	Netware - Logged In Users
18	Cisco - CPU Usage
19	Netware - Volume Information
20	Netware - Directory Information
21	Unix - Available Disk Space
22	Interface - Errors/Discards
23	Interface - Unicast Packets
24	Interface - Non-Unicast Packets
25	Interface - Traffic (bytes/sec)
26	Host MIB - Available Disk Space
27	Host MIB - CPU Utilization
28	Host MIB - Logged in Users
29	Host MIB - Processes
30	Netware - Open Files
31	Interface - Traffic (bits/sec, 95th Percentile)
32	Interface - Traffic (bits/sec, Total Bandwidth)
33	Interface - Traffic (bytes/sec, Total Bandwidth)
34	SNMP - Generic OID Template
38	SNMP - Get TCP Connection Status
39	load  Average

 --type=node --node-type=host :新增是虛擬機器節點,並不是主機

--tree-id=2:樹型的id,可以查詢,我新增的是虛擬機器

--parent-node=192:其實我最開始並不知道帶這個引數,總是試不成功,後來我看了幫助,發現它有這個--parent-node引數

又查了tree-id=2下的所有nodes:

成功!

寫成批量指令碼就是:我的--parent-node=192用的固定的,當然也可以在ips.txt第3列中加上這個--parent-node-id

#!/bin/bash

##cacti批量指令碼位置
device=/opt/lampp/htdocs/cacti-0.8.7g/cli/add_device.php
graphs=/opt/lampp/htdocs/cacti-0.8.7g/cli/add_graphs.php
tree=/opt/lampp/htdocs/cacti-0.8.7g/cli/add_tree.php

##需要新增的host ip在ip.txt中
ips=/opt/lampp/htdocs/cacti-0.8.7g/cli/ips.txt

##開始迴圈遍歷
cat $ips |while read host_ip;
do
    echo $host_ip
    host_name=$(echo $host_ip |awk '{print $1}')
    echo "host_name==="$host_name
    host_ip=$(echo $host_ip |awk '{print $2}')
    echo "host_ip==="$host_ip
    parent_node=$(echo $host_ip |awk '{print $3}')
    echo "parent_node============="$parent_node
##這個是新增device 其中--tempate是應用的主機模板,可以通過add_device.php --list-host-templates來檢視,後面的是snmp的
    php $device  --description=$host_name --ip=$host_ip --template=3  --version=2  --community=public

##新增host後獲取Host的ip
    host_id=`php $graphs --list-hosts | grep $host_ip | awk -F " " '{print $1}'`

##開始繪圖,可以通過add_graphs.php --list-templates來檢視有哪些圖形模板,可以從手動新增監控繪圖裡面檢視繪圖的模板,然後來湖區其模板id
    php $graphs --host-id="$host_id" --graph-type=cg --graph-template-id=4
    php $graphs --host-id="$host_id" --graph-type=cg --graph-template-id=39
    php $graphs --host-id="$host_id" --graph-type=cg --graph-template-id=13


##繪製流量圖形,後面是介面,需要注意template id是否正確
    #檢查snmp服務是否啟動:snmpwalk -v 2c -c public $host_ip 

##加入到tree中,可以用過add_tree.php --list-tree檢視已有tree
    php $tree --host-id="$host_id" --type=node --node-type=host --tree-id=2 --parent-node=192
done

講真,因為之前完全不懂這個,中間也遇到很多細節問題,問題大多與具體環境有關,我花了5小時搞定了所有原理性的東西,再加除錯成功!

相關推薦

cacti批量新增linux虛擬機器監控

背景: 測試環境前段時間應用伺服器的IP段更換後,cacti中一直用的舊IP都沒人管過,同事反饋能不能批量把各網新IP段的機器新增上去。批量就涉及指令碼作業,但對於catci之前沒接觸過的,只能現學現解決問題了。 自動化的基礎是先手工確認一套可行的流程,所以我這次其實走了

Zabbix批量新增linux伺服器埠監控

我們在監控生產環境的服務的時候,通常需要對多個埠進行監控,如果我們手動的一個一個的新增,這回讓我們崩潰,所以批量新增埠監控是一個非常常見的需求,當然這對於zabbix來說肯定是支援的,需要使用zabbix的Discovery功能來實現,下面就給大家分享一下批量新增埠的佔用。 第一:自動掃描埠

VM linux虛擬機器新增網絡卡修改ip 並修改mac地址

修改ip 開啟終端 vi /etc/sysconfig/network-script/ifcfg-eth0; 具體是哪個可以到這個目錄地下檢視一下,我的是ifcfg-system-eth0. 開啟檔案後修改裡面的ip地址,IPADRR這一項是填寫ip地址的地方。 然後開啟拎一個檔案檢視我

linux虛擬機器新增磁碟識別方法

1. viclient登入到vcenter或ESXi,為虛擬機器新增一塊磁碟   線上為虛擬機器新增磁碟。 2. 登入進虛擬機器linux系統中執行以下命令,識別新增加的硬碟  # echo "- - -" > /sys/class/scsi_host/host0/scan    #   fdisk

Linux虛擬機器新增新硬碟

一、在vmwarre新增新硬碟,忽略,可以看原文。二、虛擬機器中windows對於虛擬的磁碟的掛載方法比較的簡單,和在實際的電腦中操作一樣,只要在“裝置管理器”中將新建的虛擬磁碟進行分割槽格式化後即可正常使用基於windows中設定較為簡單,故而沒有截圖1、右擊“我的電腦”-

Linux虛擬機器怎麼新增磁碟?

一、VMware workstation選單欄

使用HYPER-V搭建linux虛擬機器

vmware安裝時的提示23333,競爭好厲害,我是win10的系統,自帶了hyper-v。以前只用過vmware,這次決定試試hyper-v,反正我的需求也不復雜。 首先需要下載linux系統iso映象檔案。 1.開啟hyper-v,在左側選擇自己的裝置,就可以看到右側的

linux虛擬機器的安裝與封裝

redhat6.5虛擬機器封裝 1.開啟虛擬機器管理圖形 2.使用本地映象安裝及封裝母虛擬機器 1)選擇Local install media 2)選擇本地映象 3)設定記憶體大小及CPU數量 為了節省時間記憶體設為512MB即可,此大小預設不啟用圖形安裝 4)設定虛擬磁

linux虛擬機器網路配置

本文網路配置以CentOS-6.9系統為例  1.輸入命令vim  /etc/sysconfig/network-scripts/ifcfg-eth0 開啟配置檔案,沒有vim的可用vi或者nano 2.將ONBOOT=no改成yes,NM_CONTROLLED=yes改為no 3.

linux虛擬機器的安裝和管理

先檢查cpu是否有全虛擬化功能 cat /proc/cpuinfo flags裡顯示cpu的功能 裡面有vmx就是有 1.手動安裝虛擬機器 virt-manager 選擇左上角的電腦 選擇第一個選項,並且命名虛擬機器forward是前進的意思 在瀏覽裡選擇映象的

十二、Linux虛擬機器管理(下)

本節著重介紹virsh虛擬機器管理命令、建立快照、虛擬機器遷移 - virsh虛擬機器管理命令 virsh list ## 檢視正在執行的虛擬機器 virsh list --all

十二、Linux虛擬機器管理(上)

本節重點介紹虛擬機器的安裝步驟及配置方法,我們預設你的物理機支援虛擬化,直接進入下面的安裝步驟: - 圖形化介面安裝方法 下面步驟列出虛擬機器安裝過程中比較重要的幾個步驟 [[email protected] ~ ] # virt-manager

遠端連線linux虛擬機器以及叢集節點配置

      上次轉載過一個遠端連線虛擬機器的連線,自己跟著上面的操作,將網路介面卡選擇的是本地,結果發現ping不通外網。哎,真的是要被自己蠢哭。。。     這次總結一下解決方法,還有叢集節點IP地址的配置。克隆模板機的生成。  

linux---虛擬機器的全自動安裝和定時延時任務

一.虛擬機器的全自動安裝 1.前期準本工作 【yum源】 和【dhcp】 服務搭建成功 2.下載kickstart服務 yum install system-config-kickstart.noarch -y 下載kickstart服務 3.system-config

linux —— 虛擬機器的認識和檔案管理

<0>.shell的理解 sell:俗稱殼,(用來區別核),是指“提供者使用介面”的軟體(命令直譯器) 常用快捷操作 Ctrl+Alt+上|下 //切換工作介面 Ctrl+Alt+L //鎖屏 Alt + F1 //開啟主選單Application Alt +

php連線Linux虛擬機器的redis

iptables 所在目錄 /etc/sysconfig/iptables service iptables status              &

安裝linux虛擬機器配置靜態ip

1、centOs7、VMware Workstation14 2、常規配置硬體和基本資訊後,在圖形安裝介面將乙太網連結開啟,安裝後配置ifcfg-e****,這裡是我的配置檔案 修改BOOTPROTO為static,表示設定靜態ip,NAME和DEVICE都是該檔案的字尾,我的是ens33。 進入虛

redis在Linux虛擬機器上安裝了,在windows下無法訪問的問題

redis在Linux虛擬機器上安裝了,在windows下無法訪問的問題 1:ifconfig檢視虛擬機器分配的ip 2:redis.conf中bind 指定虛擬機器的ip 3:redis-server …/redis.comf 參考了一些網上的資料,主要的步驟是: 1.window

Linux——虛擬機器的安裝

一 、虛擬機器的安裝步驟 切換到root使用者下,輸入命令virt-manager進入到虛擬機器管理介面 可以先將本機的虛擬機器關掉,以防卡頓 右鍵虛擬機器——>shut down——>force off 點選“小電視”,然後採用映象法安裝系統——>