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虛擬機器能ping通windows主機,windows主機ping不通linux虛擬機器的解決辦法
分三步: 1.虛擬機器網路連線方式選擇Nat
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 點選“小電視”,然後採用映象法安裝系統——>