我們知道監(jiān)控非常對(duì)系統(tǒng)維護(hù)非常重要,現(xiàn)在最流行的監(jiān)控系統(tǒng)有Zabbix、Nagios以及雜糧開源的Open-falcon。但是這么多系統(tǒng)基本上都是僅僅支持Linux系統(tǒng)的,對(duì)Windows支持也僅僅限于agent支持,監(jiān)控的參數(shù)也有限。那么今天蟲蟲就給大家介紹一個(gè)Windows下的監(jiān)控解決方案所有工具棧(Grafana,InfluxDB和Telegraf)全部支持在Windows實(shí)例上運(yùn)行,而且安裝部署也非常簡(jiǎn)單,基本上不用多費(fèi)勁就能搞出一個(gè)高端大氣上檔次的監(jiān)控系統(tǒng)。
本文將給大家介紹經(jīng)典的監(jiān)控架構(gòu)及各組件的構(gòu)成;最新版本的事件序列數(shù)據(jù)庫(kù)InfluxDB(v1.7.7)及其數(shù)據(jù)采集組件Telegraf(1.11.1),Grafana監(jiān)控系統(tǒng)安裝配置。實(shí)例構(gòu)建一個(gè)Windows服務(wù)監(jiān)控Panel,包括cpu、內(nèi)存和網(wǎng)絡(luò)流量以及Windows服務(wù)的cpu性能組件。配置Grafana監(jiān)控告警以及服務(wù)災(zāi)難告警演練。
一套監(jiān)控系統(tǒng),一般情況下都由三部分組成,指標(biāo)收集器、數(shù)據(jù)存儲(chǔ)和可視化工具(UI界面):
指標(biāo)收集器,用來(lái)獲取系統(tǒng)或者Agent的監(jiān)控項(xiàng)目數(shù)據(jù),一般有監(jiān)控Agent和一些數(shù)據(jù)搜集腳本構(gòu)成。常見的數(shù)據(jù)指標(biāo)收集器有Zabbix Agent,Telegraf,CollectD,StatsD,Datadog,Pushgetway以及可能其他收集指標(biāo)的工具。
數(shù)據(jù)存儲(chǔ),用來(lái)存儲(chǔ)監(jiān)控?cái)?shù)據(jù)的數(shù)據(jù)庫(kù)、時(shí)間序列數(shù)據(jù)庫(kù)等,比如Mysql、RRDtool、ElasticSearch以及本文中用到的InfluxDB等。
可視化工具:Zabbix的php前端,Nagios、Grafana,Chronograf等。
本文中監(jiān)控架構(gòu)如下圖所示:
Telegraf將定期查詢Windows性能計(jì)數(shù)器API獲取Windows監(jiān)控?cái)?shù)據(jù)并將結(jié)果發(fā)送到InfluxDB數(shù)據(jù)庫(kù)。Grafana通過(guò)InfluxDB數(shù)據(jù)接口查詢數(shù)據(jù)并通過(guò)Dashboard展現(xiàn)出來(lái),根據(jù)告警閾值發(fā)出告警。
根據(jù)監(jiān)控架構(gòu)我們知道,主要要部署三個(gè)組件Telegraf、InfluxDB和Grafana。下面我們就分步驟說(shuō)明他們部署和配置的過(guò)程。三種軟件都可以通過(guò)其官網(wǎng)免費(fèi)下載到,下載Windows64位版本。
我們首先安裝監(jiān)控?cái)?shù)據(jù)庫(kù),因?yàn)閿?shù)據(jù)采集器啟動(dòng)后數(shù)據(jù)需要存放在數(shù)據(jù)庫(kù),如果沒(méi)有InfluxDB,啟動(dòng)Telegraf會(huì)報(bào)錯(cuò)。
下載合適安裝InfluxDB版本(influxdata官網(wǎng)下載頁(yè)面).zip包保存到目錄(本文中我們我們使用D:\monitor)。解壓壓縮包,該程序主要以下文件構(gòu)成:
influx.exe:一個(gè)InfluxDB客戶端CLI的執(zhí)行文件,用于訪問(wèn)數(shù)據(jù)庫(kù)和測(cè)試。
influxd.exe: InfluxDB服務(wù)器端程序,這是最主要的程序,通過(guò)它我們啟動(dòng)一個(gè)InfluxDB實(shí)例。
influx_stress.exe:InfluxDB壓力測(cè)試工具。
Influx_inspect: InfluxDB磁盤和分片檢查工具。
解壓程序包后我們啟動(dòng)一個(gè)Window管理員Powshell終端,并定位到該目錄D:\monitor\influxdb-1.7.7-1
然后直接運(yùn)行influxd.exe,就能啟動(dòng)InfluxDB實(shí)例,如下圖:
如上圖所示,我們必須再WDF上開啟對(duì)該程序的訪問(wèn)。為了方便此處我們直接啟動(dòng)InfluxDB實(shí)例。如果是正式使用,應(yīng)該將加入Windows服務(wù),以服務(wù)方式啟動(dòng)和管理。
Telegraf是InfluxDB的輔助數(shù)據(jù)采集程序,其安裝包也在InfluxDB下載頁(yè)頁(yè)面,選擇合適Windows版本下載。下載后我們需要在當(dāng)前系統(tǒng)的Program Files文件夾創(chuàng)建Telegraf目錄,并將Telegraf安裝包中的telegraf.conf文件復(fù)制到C:\Program Files\Telegraf目錄。
以管理員身份啟動(dòng)Powershell。cd到D:\monitor\telegrafmkdir Telegraf運(yùn)行:
telegraf.exe --service install
這樣就會(huì)創(chuàng)建一個(gè)Telegraf的Windows服務(wù)項(xiàng),然后通過(guò)命令行
net start telegraf
或者在windows服務(wù)面板中,啟動(dòng)Telegraf Data Collector Service
Ok,整個(gè)采集和入庫(kù)就完成了,這是跳轉(zhuǎn)到InfluxDB服務(wù)實(shí)例啟動(dòng)窗口就能看到,采集數(shù)據(jù)入庫(kù)的操作。
我們也可以通過(guò)InfluxDB數(shù)據(jù)庫(kù)查看是否數(shù)據(jù)已經(jīng)入庫(kù),同時(shí)我們也通過(guò)該操作簡(jiǎn)單演示Influx.exe的使用方法。InfluxDB的訪問(wèn)和操作類比Mysql其實(shí)Influx的操作和Mysql操作很相似。
在終端界面運(yùn)行Influx.exe。應(yīng)該看到一個(gè)CLI,然后就可以操作查詢了。
比如要顯示實(shí)例總的數(shù)據(jù)庫(kù),命令為
show databases;
要跳轉(zhuǎn)到數(shù)據(jù)庫(kù)使用use,比如:
use telegraf
顯示數(shù)據(jù)測(cè)試表中的數(shù)據(jù)用SQL語(yǔ)句,比如查詢win_cpu表的數(shù)據(jù):
SELECT * FROM win_cpu
可見我們采集數(shù)據(jù)都已經(jīng)成功入庫(kù)了。上面操作是不感覺(jué)很熟悉,對(duì)了基本上和mysql操作也一樣,更多InfluxDB的基礎(chǔ)知識(shí)和IFQL的操作,請(qǐng)查看官方文檔。
Grafana安裝和上面其他兩個(gè)組件的安裝也類似。在Grafana官網(wǎng)下載頁(yè)面下載zip安裝包并將其解壓到安裝目錄。通過(guò)管理員終端轉(zhuǎn)到Grafana文件的bin目錄,運(yùn)行g(shù)rafana-server.exe。
默認(rèn)情況下,Grafana會(huì)監(jiān)聽3000端口,默認(rèn)登陸用戶和密碼為admin/admin(首次登陸后,為提示修改密碼)。登陸系統(tǒng)后,會(huì)提示設(shè)置數(shù)據(jù)源。默認(rèn)情況下,InfluxDB實(shí)例在端口8086上運(yùn)行。我們按照以下配置:
Telegraf數(shù)據(jù)采集是通過(guò)很多數(shù)據(jù)采集腳本來(lái)實(shí)現(xiàn)的,在Window下主要是通過(guò)
win_perf_counters插件來(lái)鏈接Windows性能計(jì)數(shù)接口來(lái)完成的。win_perf_counters插件配置格式如下:
[[inputs.win_perf_counters]]
[[inputs.win_perf_counters.object]]
ObjectName = "Processor"
Instances = ["*"]
Counters = ["% Idle Time", "% Interrupt Time", "% Privileged Time", "% User Time"]
Measurement = "win_cpu"
ObjectName屬性需要與可以找到性能監(jiān)控名一直。默認(rèn)Telegraf已經(jīng)內(nèi)置了win_cpu等擠個(gè)配置,本文中,我們需要監(jiān)控進(jìn)程對(duì)名稱,以及服務(wù)對(duì)應(yīng)的ElapsedTime值,'%Processor Time'值等。我們需要在Telegraf配置中增加一下配置
[[inputs.win_perf_counters]]
[[inputs.win_perf_counters.object]]
# Processor usage, alternative to native, reports on a per core.
ObjectName = "Process"
Instances = ["*"]
Counters = ["Elapsed Time", "% Processor Time"]
Measurement = "win_services"
更多Telegraf插件和配置,可以參考其官方文檔和實(shí)例。
接著我們配置Grafana儀表盤,這是整個(gè)監(jiān)控的用戶界面,可能大家感興趣都是這兒,我們要配置的儀表盤最終效果如下:
首先我們單擊左側(cè)菜單上的加號(hào)圖標(biāo)創(chuàng)建一個(gè)新儀表板。
我們新添加可視化面板中選擇"Gauge",在查詢項(xiàng)選擇數(shù)據(jù)類型為InfluxDB。
設(shè)置查詢配置為:
在顯示面板中顯示"Last"值并選擇單位為"percent(0-100)"。
然后點(diǎn)擊最有上訪的"返回"或者按ESC鍵返回儀表盤頁(yè)面就可以。
新建Panel組件,在可視化項(xiàng)目中選擇Graphp組件。
數(shù)據(jù)查詢配置如下圖:
配置關(guān)鍵是選擇win_services,實(shí)例名選擇需要監(jiān)控的服務(wù)實(shí)例。在Select項(xiàng)目中我們用到了difference()運(yùn)算符。它為圖形提供了"heartbeat"外觀,避免了持續(xù)重新縮放的增長(zhǎng)圖形。可以通過(guò)每個(gè)panel的
配置選項(xiàng)中More,然后Duplicate和Copy重復(fù)生成Panel,然后修改數(shù)據(jù)查詢參數(shù)快捷天價(jià)Penel項(xiàng)目,指導(dǎo)完成整個(gè)儀表盤的顯示。
上面我們配置了一個(gè)非常漂亮的儀表盤可視化界面,但是監(jiān)控最重要的不是好看的顯示界面,最重要是服務(wù)有問(wèn)題時(shí)候發(fā)出告警。
Grafana中告警也是很重要的方式,可以通過(guò)郵件, Slack發(fā)出告警通知,通過(guò)自定義腳本,webhook方式鏈接釘釘,微信等發(fā)出告警,這類配置可以自行搜索方案。
在Grafana中,可以為圖形面板創(chuàng)建一些警報(bào)。告警通過(guò)兩步配置完成
在創(chuàng)建實(shí)際告警之前,必須先創(chuàng)建一個(gè)通知通道。在左側(cè)菜單中,轉(zhuǎn)到小鈴鐺圖標(biāo),單擊"Notefiction Channels" 。
再該頁(yè)簽頁(yè),點(diǎn)擊"New Channel",再該睇你頁(yè)面,根據(jù)需要選擇配置項(xiàng)目:
通知通道創(chuàng)建好了后,就可以在圖形面板配置報(bào)警了。轉(zhuǎn)到儀表板,編輯其中一個(gè)圖形面板,然后單擊配置項(xiàng)目的告警小鈴鐺圖標(biāo)。
此警報(bào)表明它將檢查最后一分鐘定義的查詢值。如果值為空,就會(huì)觸發(fā)告警。每10秒檢查一次。
我們模擬Telegraf服務(wù)突然關(guān)閉機(jī)發(fā)生服務(wù)掛掉的情形了觸發(fā)災(zāi)難告警:
net stop telegraf
如果配置沒(méi)問(wèn)題就會(huì)受到告警。
通過(guò)本教程,我們學(xué)寫了在Windows建立全套完整監(jiān)控系統(tǒng)的架構(gòu)、實(shí)例操作的過(guò)程。主要介紹了使用Telegraf,InfluxDB和Grafana等現(xiàn)代工具來(lái)設(shè)置一種快速有效的監(jiān)控應(yīng)用程序的方法。我采用了Windows服務(wù)的監(jiān)控做為實(shí)例示范,拋磚引玉,本實(shí)例可以通過(guò)輕松修改就可以用來(lái)監(jiān)控項(xiàng)目或者在在實(shí)際生產(chǎn)環(huán)境中使用。
#頭條首發(fā)大賽#
微軟發(fā)布了針對(duì)內(nèi)部人員的全新Windows 11預(yù)覽版本,著重改進(jìn)任務(wù)欄,簡(jiǎn)化系統(tǒng)托盤,并增強(qiáng)用戶體驗(yàn)。更新包括簡(jiǎn)化的系統(tǒng)托盤設(shè)計(jì)和任務(wù)欄布局,去除了鈴鐺圖標(biāo)和日期上的年份,優(yōu)化了界面空間。用戶可以選擇還原到之前的設(shè)計(jì)。此外,任務(wù)欄中的應(yīng)用程序預(yù)覽現(xiàn)在具有新動(dòng)畫效果,用戶可以通過(guò)快捷鍵快速打開應(yīng)用程序。新增的“工作室效果”圖標(biāo)可幫助用戶控制網(wǎng)絡(luò)攝像頭和麥克風(fēng)。這些改進(jìn)目前在預(yù)覽版本中測(cè)試,未來(lái)預(yù)計(jì)將包含在更新中供所有用戶使用。
微軟已經(jīng)發(fā)布了一款新的 Windows 11 預(yù)覽版本,專為Beta頻道中的內(nèi)部人員而設(shè)計(jì)。此次更新對(duì)任務(wù)欄帶來(lái)了重大變化,包括簡(jiǎn)化的系統(tǒng)托盤以及在懸停在打開的應(yīng)用程序上方時(shí)的新動(dòng)畫。用戶可以期待看到更多的快捷鍵,并在任務(wù)欄激活時(shí)看到“工作室效果”圖標(biāo)。這些更新的目標(biāo)是增強(qiáng)用戶體驗(yàn)并簡(jiǎn)化界面。
最新的 Windows 11 預(yù)覽版本通過(guò)簡(jiǎn)化系統(tǒng)托盤為任務(wù)欄帶來(lái)了更清爽的外觀。這包括刪除鈴鐺圖標(biāo)和日期和時(shí)間按鈕上的年份,減少混亂,優(yōu)化任務(wù)欄上的空間。微軟為用戶提供了選擇,如果他們喜歡原始設(shè)計(jì),可以切換回帶有年份和鈴鐺圖標(biāo)的先前布局。這些變化旨在使任務(wù)欄更具視覺(jué)吸引力和用戶友好性。
除了視覺(jué)更新外,微軟還為任務(wù)欄中懸停在運(yùn)行應(yīng)用程序上方時(shí)的應(yīng)用程序預(yù)覽添加了新動(dòng)畫。以前,應(yīng)用程序預(yù)覽是靜態(tài)的,但現(xiàn)在它們將以更動(dòng)態(tài)的方式浮現(xiàn)在應(yīng)用程序圖標(biāo)上方。此外,用戶現(xiàn)在可以通過(guò)按下與應(yīng)用程序名稱對(duì)應(yīng)的第一個(gè)字母來(lái)利用快捷鍵打開應(yīng)用程序。對(duì)于擁有 Windows 工作室效果的用戶,系統(tǒng)托盤中的新圖標(biāo)將指示何時(shí)可用效果,從而方便地控制網(wǎng)絡(luò)攝像頭或麥克風(fēng)的音頻和視覺(jué)效果。這些改進(jìn)目前正在微軟的預(yù)發(fā)行計(jì)劃中進(jìn)行測(cè)試,并預(yù)計(jì)將包含在未來(lái)更新中供非測(cè)試人員使用。