docker搭建zabbix收集windows計數器效能資料
1 docker服務的安裝
1)線上安裝docker服務
線上安裝可以參考下面的安裝步驟
a 安裝相關依賴元件
yum install -y yum-utils device-mapper-persistent-data lvm2
b docker源安裝配置
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-nightly
yum-config-manager --enable docker-ce-test
yum-config-manager --disable docker-ce-nightly
c 安裝docker服務
yum -y install docker-ce docker-ce-cli containerd.io
d 驗證安裝完成
systemctl start docker
啟動docker服務
systemctl enable docker
開機啟動docker服務
docker ps -a
檢視所有docker容器狀態【執行和沒執行的】
docker info
檢視docker服務相關資訊
2)離線安裝docker服務
a 下載docker服務的tar包,下載地址:docker包下載地址
我這裡下載的版本是 docker-18.03.0-ce.tgz
b 將下載完成的tgz包上傳至伺服器上任意目錄,並使用命令解壓
tar -xvf docker-18.03.0-ce.tgz
c 使用命令,將解壓出來的資料夾docker下面的所有檔案移動到/usr/bin目錄下
mv docker/* /usr/bin/
d 驗證安裝完成
systemctl start docker
啟動docker服務
systemctl enable docker
開機啟動docker服務
docker ps -a
檢視所有docker容器狀態【執行和沒執行的】
docker info
檢視docker服務相關資訊
2 zabbix/zabbix-appliance映象檔案下載及容器啟動
1)線上拉取映象:
a 使用命令
docker pull zabbix/zabbix-appliance:latest
b 拉取完成後,使用命令檢視本地映象倉庫中已有的映象
docker images
2)離線載入映象:
a 如果安裝的伺服器A無法上網從官方映象倉庫拉取映象,首先需要有一臺可以上網並安裝了docker服務的裝置B,使用線上拉取映象的方式,將映象拉取到裝置B上
b 在裝置B上使用命令,將image映象檔案匯出成檔案
docker save -o ./zabbix-appliance.tar zabbix/zabbix-appliance:latest
引數解釋:
-o:輸出到檔案,後面跟檔案路徑和檔名 以及需要匯出的【映象:tag標籤】 ./zabbix-appliance.tar
c 再將該檔案從裝置B拷貝到伺服器A上,在使用命令,將映象載入到伺服器A上的映象倉庫中
docker load -i zabbix-appliance.tar
【注意】:docker在匯出、匯入映象時,有2個命令可供使用,docker export/import || docker save/load ,他們的區別,可以參考其他的博文地址進行詳細理解docker export save區別
3 執行docker,並將容器內的mysql資料對映到本地資料夾中【避免docker被刪除後,監控資料無法恢復】
命令:
docker run --name zabbix \
-p 10051:10051 \
-p 8080:80 \
-v /opt/data/alertscripts:/usr/lib/zabbix/alertscripts \
-v /opt/data/mysql:/var/lib/mysql \
-e -e PHP_TZ="Asia/Shanghai" \
-d zabbix/zabbix-appliance:latest
【注意】如果伺服器開啟了防火牆服務,需要開放10051和8080埠,以便zabbix的監聽埠和web服務的訪問埠可正常使用
4 配置zabbix服務端
容器執行後,可以訪問伺服器ip地址+埠8080的zabbix服務端
輸入預設使用者名稱密碼: Admin/zabbix 即可登入監控平臺
1)修改平臺語言,方便閱讀【如果英文好,也可以不改】
2)配置監控模板
按照圖上的步驟,依次點選,進入【建立模板】頁面
依次輸入【模板名稱】、【可見模板名稱】、選擇【群組】,點選【確定】後,模板新增成功
在模板列表中找到剛才新增成功的模板,點選該模板,進入模板配置頁面
依次點選【應用集】、【監控項】,給模板中新增需要監控的指標項
【應用集】:
建立應用集
輸入應用集的名稱,點選【新增】
【監控項】
點選【監控項】進入監控項頁面
依次在監控項頁面中輸入需要監控的名稱、型別、鍵值、資訊型別、單位、更新間隔,選定【應用集】
【注意】:
這篇文章介紹的是配合perfmon如何對windows進行效能指標監控,這裡需要選擇的【型別】為Zabbix客戶端,【鍵值】固定使用 perf_counter[xxxxxxxx]的格式來進行新增,括號中的值需要根據被監控的windows計數器項來進行填寫,比如:
[\Process(QQ)% Processor Time]監控程序QQ的CPU佔用率;
[\Processor(_Total)% Processor Time]監控系統所有程序的CPU佔用率,即系統CPU佔用率;
[\Process(QQ)\Private Bytes]監控程序QQ的分配記憶體大小【windows計數器返回的監控單位是:Bytes,如果需要轉換為MByte或GByte,需要再新增一個型別為【可計算】的監控項,後面會講到】;
填寫完成後,點選【新增】儲存
3)新增【主機】
點選下圖上的【主機】進入詳細頁面,再點選【建立主機】進入新增主機頁面
依次填寫下列引數:【主機名稱】需用英文填寫,勾選【群組】,填寫被監控windows主機的ip地址,埠預設10050不作修改
接著點選【模板】,跳轉到模板頁面,選擇剛才建立的監控模板,之後點選【新增】
【注意】
被監控的windows客戶端需要關閉windows防火牆,或者在防火牆規則中新增10050埠,以便服務端可以與該客戶端進行資料通訊
新增完成後,可以在【主機】列表頁面看到新新增的主機,如果該主機上已經安裝好zabbix-agent客戶端後,可以看到【ZBX】顯示為綠色狀態,表示服務端與該客戶端通訊正常
5 windows客戶端安裝zabbix-agent
windows客戶端安裝可以參考其他博文: zabbix-agent安裝教程
安裝後需要注意配置好服務端IP地址,監聽埠預設10050
【注意】
在命令列啟動zabbix-agent時,需要使用【管理員】身份來執行指令碼,否則會提示連線失敗!!
6 將監控返回的資料進行單位轉換後,以圖形曲線的方式展示在網站上
a)根據已配置型別為【zabbix客戶端】的監控項,返回的最新資料,再新配置一個型別為【可計算的】監控項
【型別】選擇:可計算的
【鍵值】:自定義,不重複即可
【公式】: 這裡使用固定的語法格式 last("xxxxxx") last()可更換為其他函式avg(),max(),min()等,具體可以參考官方文件介紹:
可計算項介紹
觸發器函式介紹
括號中【xxxx】所代表的值必須是之前已經監控的鍵值, 例如上圖中的 perf_counter[\Process(tianjingang)% Processor Time ,是已經在該平臺中有監控項的資料
可以根據自己的需求,進行對應的數學運算,比如:
last("perf_counter[\Process(_Total)\% Processor Time]")/8 取最後一次系統佔用CPU資源的指標,再除以8【筆者電腦為8核,這裡算單核所佔CPU使用率】
last("perf_counter[\Process(QQ)\Working Set - Private]")/1024/1024/1024 取最後一次QQ程序的使用記憶體的值【這裡返回的最小單位是Bytes】,將其轉換為GByte。
7 根據監控返回的資料建立對應的曲線圖形
依次點選下圖步驟,進入【儀表盤】介面
點選【建立儀表盤】
輸入相關【使用者】和【儀表盤名】資訊
點選頁面,新增【構件】
在上圖紅框中依次輸入構件名稱,勾選需要監控的主機,及對應的監控項資料,這裡,就選擇新建的主機及新建的【可計算的】型別的監控項,點選【新增】
之後【儲存設定】,即可看到被監控主機返回的監控項資料及對應的曲線