Vue 結合 Zabbix API 獲取服務器 CPU、內存、GPU 等數據

一、簡介

????????Vue 結合 Zabbix API 可以實現對服務器 CPU、內存、GPU 等監控數據的動態獲取與展示。Zabbix 是一款開源的監控工具,提供豐富的 API 接口供開發者調用。通過 Vue 前端框架,可以將 Zabbix 返回的數據以圖表或表格形式直觀呈現,便于運維和開發人員實時掌握服務器性能狀態。

二、數據獲取流程

1. Zabbix API 配置

????????確保 Zabbix 服務已啟用 API 功能,并獲取 API 的訪問地址(如 http://your-zabbix-server/api_jsonrpc.php)。創建具有 API 訪問權限的 Zabbix 用戶,記錄用戶名和密碼用于認證。

注意?your-zabbix-server 是你部署的 zabbix 服務地址,不是實際的文件地址。

下面代碼部分以下列信息為例:

?賬號:Admin

?密碼:zabbix

?API訪問地址:http://your-zabbix-server/api_jsonrpc.php

$AjaxZabbix 是我封裝的 axios,按照你正常的接口寫法就可以,我這里是為了方便展示請求方式、請求地址。

2. Vue 項目準備

????????在 Vue 項目中安裝 Axios 或其他 HTTP 請求庫,用于與 Zabbix API 交互。創建獨立的配置文件存儲 Zabbix API 地址、用戶名和密碼等信息。

3. 獲取認證 Token

????????通過 Zabbix API 的 user.login 方法獲取認證 Token。發送 POST 請求至 Zabbix API 地址,請求體包含用戶名和密碼。成功后會返回 Token,后續請求需在頭部攜帶此 Token。

//登錄zabbix 獲取用戶id
loginZabnix() {var body = {jsonrpc: "2.0",method: "user.login",params: {user: "Admin", // zabbix 賬號password: "zabbix", // zabbix 密碼},id: 1,};$AjaxZabbix("post", 'http://your-zabbix-server/api_jsonrpc.php', body).then((res) => {console.log(res.result, 'token標識')});
},

返回結果:

4. 查詢主機數據

????????通過 Zabbix API 的 host.get 方法獲取所有主機。發送 POST 請求至 Zabbix API 地址,請求體包含用戶名和密碼。成功后會返回主機列表,后續查詢監控項會用到主機列表中的hostid。

hostZabnix() {var body = {jsonrpc: "2.0",method: "host.get",// 選擇想要輸出的內容params: {output: ["hostid", "host", "name", "flags", "description", "status"],selectInterfaces: ["interfaceid", "ip"],},id: 1,auth: token, // 從login.get 方法中獲取到的token};$AjaxZabbix("post", 'http://your-zabbix-server/api_jsonrpc.php', body).then((res) => {console.log(res.result, '主機列表')});
},

返回結果:

5. 查詢監控項數據

????????使用 Zabbix API 的 item.get 方法查詢目標監控項(如 CPU 使用率、內存占用等)的 ID,后續查詢CPU等使用數據會用到監控項列表中的 itemid。

itemZabnix() {var body = {jsonrpc: "2.0",method: "item.get",// 選擇輸出內容params: {output: ["itemids", "key_"],hostids: hostid,},id: 1,auth: token,};$AjaxZabbix("post", 'http://your-zabbix-server/api_jsonrpc.php', body).then((res) => {console.log(res.result, '監控項列表');});
},

返回結果:

6. 查詢CPU、內存等信息

? ? ? ? 根據監控項列表中得到的數據的 itemid,我們可以使用 Zabbix API 的 history.get 方法進行查詢,每一個監控項代表監控的一個數據信息,比如 key_ 值為”system.cpu.util“的監控項,可以查詢到 cpu 當前的使用率。下面以 cpu使用率 為例:

deployZabnix() {var body = {jsonrpc: "2.0",method: "history.get",params: {output: "extend",history: 0, // 0表示浮點數類型,適用于CPU、內存等指標itemids: itemid,  // 監控項的 itemidsortfield: "clock", // 根據時間排序sortorder: "DESC",  // 排序規則limit: 1, // 獲取最新的一條數據,數字是幾就會返回幾條數據},id: 1,auth: token,};$AjaxZabbix("post", 'http://your-zabbix-server/api_jsonrpc.php', body).then((res) => {console.log(res.result[0].value, '配置使用率');});
},

返回結果:

三、總結

1. 流程摘要

(1)user.login(獲取token)

(2)host.get(獲取主機列表)

(3)item.get(根據主機的 hostid 獲取監控項列表)

(4)history.get(根據監控項的 itemid 獲取監控項實際數據)

2. 常用監控項
CPU
system.cpu.utilcpu使用率(%)
system.cpu.load[percpu,avg1]cpu單核 1 分鐘平均負載
system.cpu.load[percpu,avg5]cpu單核 5?分鐘平均負載
內存
vm.memory.size[total]總物理內存(字節)
vm.memory.size[available]可用內存(字節)
vm.memory.size[pavailable]內存可用率(%)
vm.memory.size[used]已用內存(字節)
vm.memory.size[free]空閑內存(字節)
磁盤
vfs.fs.size[/,total]根分區總空間(字節)
vfs.fs.size[/,free]根分區剩余空間(字節)
vfs.fs.size[/,pfree]根分區剩余空間百分比(%)
vfs.fs.size[/,used]根分區已用空間(字節)
vfs.dev.read[,ops]磁盤讀取操作次數(IOPS)
vfs.dev.write[,ops]磁盤寫入操作次數(IOPS)
vfs.dev.read[,bytes]磁盤讀取數據量(字節/秒)
vfs.dev.write[,bytes]磁盤寫入數據量(字節/秒)
GPU

? ? ? ? GPU官方沒有提供監控項,需要我們自己去創建相關監控項!(讓運維去加)

3. 注意項

需要注意的是,如果你的zabbix服務中自定義了官方已有的監控項,會進行覆蓋,我們公司運維就將?vm.memory.size[pavailable] 設置成了使用率,而官方是可用率,結果正好相反!!

所以在使用前先到 zabbix 服務界面看看,你要查詢的監控項是否是你要得到的數據,以免發生錯誤!

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/bicheng/89740.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89740.shtml
    英文地址,請注明出處:http://en.pswp.cn/bicheng/89740.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    深度學習Depth Anything V2神經網絡實現單目深度估計系統源碼

    第一步: Depth Anything V2介紹 本文介紹了 Depth Anything V2。在不追求復雜技術的前提下,我們旨在揭示一些關鍵發現,為構建強大的單目深度估計模型鋪平道路。與 V1 [89] 相比,本版本通過三項關鍵實踐產生了更精細且更魯棒的深度…

    新手向:基于 Python 的簡易視頻剪輯工具

    在數字媒體時代,視頻創作已成為大眾表達的重要形式,從個人vlog制作到企業宣傳視頻,視頻內容的需求呈現爆發式增長。傳統專業軟件如Adobe Premiere Pro雖功能強大,提供完整的非線性編輯系統,但存在學習曲線陡峭&#xf…

    如何在PyCharm中刪除虛擬環境

    1、進入Python Interpreters具體方法:Settings-->Project:自己命名的項目-->Python Interpreters-Python Interpreter下拉欄-->show all,具體步驟見下圖。2、 選擇需要刪除的python環境,具體下圖所示。選擇需要刪除的環境-->點擊…

    QML 動畫效果詳解

    屬性動畫(PropertyAnimation)PropertyAnimation是QML中最基礎、最常用的動畫類型,它可以對任何基于數字或顏色的屬性進行動畫化處理,實現平滑的過渡效果。核心屬性與用法PropertyAnimation的主要屬性如下表所示:屬性類型描述默認值targetQtOb…

    LangGraph教程9:LangGraph檢查點和Send機制

    文章目錄 檢查點 send機制 檢查點 檢查點是每個超級步驟保存的圖狀態的快照,并由StateSnapshot對象表示,具有以下關鍵屬性: config:與此檢查點相關的配置。 metadata:與此檢查點相關的元數據。 values:此時狀態通道的值。 next:將要在圖中執行的下一個節點名稱的元組。…

    面試高頻題 力扣 130. 被圍繞的區域 洪水灌溉(FloodFill) 深度優先遍歷(dfs) 暴力搜索 C++解題思路 每日一題

    目錄零、題目描述一、為什么這道題值得你花時間掌握?二、題目拆解:提取核心關鍵點三、解題思路:從邊界入手,反向標記四、算法實現:深度優先遍歷(DFS) 兩次遍歷五、C代碼實現:一步步拆…

    QA:多品牌多架構私有云的數據備份及恢復有哪些最佳實踐?

    一、跨平臺備份架構設計?1、統一管理平臺選型選擇支持多品牌接口的備份軟件,通過抽象層適配不同私有云API。例如,備份軟件可同時對接VMware、OpenStack、ZStack等平臺,實現策略集中配置與任務調度。?2、數據抽象與格式標準化采用中間數據層…

    LeetCode Hot100 【1.兩數之和、2.兩數相加、3.無重復字符的最長子串】

    1. 兩數之和 自己做 分析 解法1&#xff1a;暴力解 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {int num1 0; //下標int num2 0;vector<int> s; //保存結果for(vector<int>::iterator it1 nums.…

    AI一鍵“瘦身”,拯救巨卡無比的圖

    有沒有碰到過那種巨卡無比的AI&#xff08;Illustrator&#xff09;文件&#xff1f;從素材網站下的&#xff0c;或者自己“圖像描摹”出來的&#xff0c;上面密密麻麻全是錨點&#xff0c;動一下卡半天&#xff01;我是在海外工作了10年的職業設計師&#xff5e;這些年最大的心…

    MySQL基礎教程:SELECT語句詳解

    MySQL基礎教程&#xff1a;SELECT語句詳解一、SQL概述1.1 SQL背景知識1.2 SQL語言排行榜1.3 SQL分類二、SQL語言的規則與規范2.1 基本規則2.2 大小寫規范2.3 注釋2.4 命名規則2.5 數據導入三、基本的SELECT語句3.0 最簡單的SELECT3.1 SELECT...FROM3.2 列的別名3.3 去除重復行3…

    云原生環境下的安全控制框架設計

    在這個容器滿天飛、微服務遍地跑的時代&#xff0c;安全問題就像打地鼠游戲一樣&#xff0c;剛按下一個又冒出三個。今天我們來聊聊如何在云原生環境中構建一套靠譜的安全控制框架。 &#x1f4d6; 文章目錄 引言&#xff1a;云原生時代的安全新挑戰云原生安全面臨的核心挑戰安…

    Python關于numpy的基礎知識

    一.首先先安裝numpy windowsr 輸入cmd 然后像我這樣輸入進去&#xff0c;加一句后面的https&#xff1a;.....可以放其他他的鏡像地址比如 清華大學鏡像源&#xff1a;Simple Index阿里云鏡像源&#xff1a;Simple Index中國科學技術大學鏡像源&#xff1a;Verifying - USTC …

    生成式人工智能實戰 | 自回歸模型詳解與實現

    生成式人工智能實戰 | 自回歸模型詳解與實現 0. 前言 1. 文本生成模型分析 2. 數據處理 2.1 數據預處理 2.2 創建訓練數據批次 3. 模型構建與訓練 3.1 構建 LSTM 模型 3.2 訓練 LSTM 模型 4. 生成文本 4.1 通過預測下一個 token 生成文本 4.2 控制文本生成的創意性 0. 前言 本…

    路由器SDH POS接口

    SDH POS 可看作“用 SDH 光纖專線給路由器當超級寬帶網線”。 1?? 拆名字 SDH?同步數字體系&#xff08;Synchronous Digital Hierarchy&#xff09;&#xff0c;運營商的骨干光傳輸標準&#xff0c;顆粒 STM-1/4/16/64…&#xff08;155 M/622 M/2.5 G/10 G&#xff09;。P…

    響應式單位rpx及搭配使用UI產品工具

    &#x1f3a8;? 歡迎來到RPX與即時設計的前端探索之旅 &#x1f680;&#x1f4bb; 親愛的開發者朋友們&#xff1a; &#x1f44b; 大家好&#xff01;很高興能在CSDN這個技術分享的平臺上與各位相遇&#xff01;&#x1f31f; 作為一名長期奮戰在前端開發一線的工程師&#…

    MC0463四大名著-水滸簽到

    碼蹄集OJ-四大名著-水滸簽到 一、題目背景 本問題以《水滸傳》為故事經緯&#xff0c;講述史進對數列數字奧秘的探索。小碼妹向其講解特殊數列求和規則&#xff0c;我們需依據規則&#xff0c;對給定長度 n 的數列&#xff0c;按奇偶分組方式計算奇數組和與偶數組和的運算結果…

    前綴和 HASH

    前綴和 & HASH 個人模板 560. 和為 K 的子數組 class Solution {public int subarraySum(int[] nums, int k) {// 滑動窗口前綴和int n nums.length;int[] prevSum new int[n 1];for (int i 1; i < n 1; i) {prevSum[i] prevSum[i - 1] nums[i - 1];}int ans …

    周末總結(2024/07/19)

    工作 人際關系核心實踐&#xff1a; 要學會隨時回應別人的善意&#xff0c;執行時間控制在5分鐘以內 遇到接不住的話題時拉低自己&#xff0c;抬高別人(無陰陽氣息) 朋友圈點贊控制在5min以內&#xff0c;職場社交不要放在5min以外 職場的人際關系在面對利益沖突是直接質疑&am…

    若依框架開啟注冊功能全流程指南

    在若依&#xff08;RuoYi&#xff09;框架中&#xff0c;用戶注冊功能并非默認開啟&#xff0c;需要通過后端配置、前端調整以及必要的角色分配設置來實現。本文將詳細介紹開啟注冊功能的完整步驟&#xff0c;幫助開發者快速完成配置。一、后端配置&#xff1a;開啟注冊功能開關…

    STM32單片機_3

    第十章IIC通信協議規定, 起始之后主機必須先發送一個字節: 從機地址讀寫位, 進行尋址然后接收一下應答位, 然后再發送一個字節, 寫入從機寄存器地址 之后就可以進行數據的收發了注意: 在 主機的接收應答的時候, 立刻釋放SDA 然后這時候從機會立刻做出反應, 即拉低SDA, 也就是置…