【服務器監控】grafana+Prometheus+node exporter詳細部署文檔

我們在進行測試時,不可能一直手動看著服務器的性能消耗,這時候就需要有個工具替我們監控服務器的性能消耗。這里記錄下grafana+Prometheus+nodeExporter的組合用于監控服務器。

簡單介紹:

grafana:看板工具,所有采集的性能數據都會展示在這個看板上,官網: link
Prometheus: 監控系統,數據的采集、存儲、查詢等主要功能都是在它這里,參考文檔: link
node_exporter:其是Prometheus的一個采集組件,可以用來采集機器上的數據,并暴露接口給Prometheus,以此將數據傳過去。
這是prometheus官網的架構圖,可以參考這個看一下
在這里插入圖片描述
我這里簡單概述一下我們使用到的功能,即node_exporter采集機器節點上的性能數據,并將數據傳給Prometheus處理,grafana再從Prometheus那里獲取數據展示在看板上。(exporter有多種類型,比如采集容器的,mysql的,這里node_exporter直接是采集整個機器的)
本文grafana和Prometheus是使用docker安裝部署的,如果機器上未裝docker,可參考鏈接: link
本文為最新的安裝流程,可直接按照該流程安裝部署。

1.安裝grafana

命令為:

docker run -d -p 3000:3000 --name=grafana grafana/grafana-oss

在這里插入圖片描述

2.安裝Prometheus

1.配置Prometheus的配置文件

mkdir -p /opt/monitor/prometheus
tee /opt/monitor/prometheus/prometheus.yml <<- 'EOF'
global:# 拉取規則scrape_interval: 10s# 執行規則頻率evaluation_interval: 10sscrape_configs:- job_name: prometheus  # 任務名static_configs:- targets: ['localhost:9100']  # 地址和端口,注意如果是docker安裝的話,這個loalhost要替換成ip地址
EOF

在這里插入圖片描述
這里的地址如果是采集本機的,寫localhost即可,要是采集其它機器的,可以填對應的ip(這里的端口不是9090,而是9100,與下面的node_exporter對應的;而且如果是docker安裝的話,這個loalhost要替換成機器的ip地址,不然容器內部根據localhost可識別不了機器實際的ip)

2.用配置文件部署啟動Prometheus

docker run -d -p 9090:9090 -v /opt/monitor/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml --name=prometheus prom/prometheus

在這里插入圖片描述

3.安裝node_exporter

這里安裝node_exporter是手動安裝的,為什么不用docker直接安裝呢,這是因為docker安裝的exporter是在容器里面的,從容器里采集機器本機的數據的時候并不完全,有時會導致和實際數據相差較大(本人已踩過坑),這里建議手動安裝到機器上。
下載地址: link
在這里插入圖片描述
直接下載下來傳到機器上并解壓
在這里插入圖片描述
然后我們配置服務啟動項

tee /etc/systemd/system/node_exporter.service <<- 'EOF'
[Unit]
Description=node_exporter
After=network.target[Service]
ExecStart=/opt/monitor/node_exporter/node_exporter --web.listen-address=:9100[Install]
WantedBy=multi-user.target
EOF

在這里插入圖片描述
配置完成后,我們啟動服務

systemctl enable node_exporter  # 不是root用戶前面都加一下sudo
systemctl start node_exporter
systemctl status node_exporter

在這里插入圖片描述

4.監控服務串聯

至此,我們各個模塊都是各自安裝完了,接下來我們把它們連成一個整體,首先看下node_exporter和Prometheus能否正常訪問。

node exporter和Prometheus

查看node_exporter:可以瀏覽器直接訪問http://192.168.238.128:9100/,這里192.168.238.128就是我linux機器的地址
在這里插入圖片描述
顯示無法訪問。。。排查了一下,防火墻忘記關了。自己內網用的機器平時可以把防火墻關了(docker安裝的服務端口未被防火墻限制,手動安裝的服務端口會被限制)
在這里插入圖片描述
這時再重新訪問下
在這里插入圖片描述
在這里插入圖片描述
這里就是其采集的信息,可以看出采集服務已正常可用了。
然后我們看下Prometheus,瀏覽器直接訪問http://192.168.238.128:9090/
在這里插入圖片描述
也沒問題,我們在上面輸入框輸點東西試一下數據能不能傳上來

100 * (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes))

在這里插入圖片描述
可以看出數據已經傳上來了,這里時間不太對,應該是時區的問題嗎,暫時不用管。至此,node exporter和Prometheus的對接正常了。

grafana配置

然后我們登錄grafana:http://192.168.238.128:3000/
在這里插入圖片描述
這里初始用戶名密碼是admin/admin,登錄后可以修改下密碼,grafana這里我們主要是配置下數據源以及展示模版,因為Prometheus那里的數據還沒有和grafana對接,而且展示的數據也未經進一步處理,展示效果一般。

配置數據源:

進去找一下data sources,幾個版本的grafana位置是不一樣的,這個自己找一下即可

在這里插入圖片描述
這里選擇Prometheus
在這里插入圖片描述
配置頁面配置下名稱(可使用默認的),以及連接的url,這個就是Prometheus的地址和端口,即我們上面訪問的http://192.168.238.128:9090/
在這里插入圖片描述
其他的默認即可,最后點擊這個save&test,連接正常會彈出綠色的提示
在這里插入圖片描述
到這里數據源就配置完成了。

導入監控模版:

這時候的數據都是Prometheus處理過的,雖然也有圖表,但是比較簡單,我們可以導入一個看板的模版,使其展示更加豐富,更加友好。(也可以自己寫新的)
我們訪問https://grafana.com/grafana/dashboards/這個網址,上面有已有的模版,可以查看下哪個適合我們

在這里插入圖片描述
在這邊搜索node exporter可以搜索出所有node exporter的模版
在這里插入圖片描述
這里我們就選用第一個,點擊進去
在這里插入圖片描述
這里有兩個選項,一個是復制id,一個是下載json,這里我們直接復制id好了。這個json其實就是模版文件了,但是我們也可以用id來自動導入。
然后我們進入自己搭建的grafana頁面,點擊這個import(各個版本的UI略有不同,按鍵位置可能也不同)
在這里插入圖片描述
這里輸入剛剛復制的id,然后點擊load
在這里插入圖片描述
加載完成后進入這個頁面
在這里插入圖片描述
這里選我們剛剛配好的數據源
在這里插入圖片描述
然后點擊import,就跳轉到看板頁面了,如果頁面沒有數據,可查看左上角這幾個選項是不是正確;或者可以等一會,也有可能數據還沒有上傳上來。
在這里插入圖片描述
至此,監控服務就部署好了,無論是做性能還是可靠性,我們可以對服務器進行長時間監測了。

問題記錄:

實際部署時,也遇到了一些其他問題,這里記錄下:
1.導入Node Exporter Full監控模版(id為1860)時,grafana一直報找不到方法,這個主要是1860這個模板和grafana當前版本不兼容,更新grafana即可。
2.監控數據不準確的問題,這個上面已經提到,解決辦法是node_exporter手動直接安裝在服務器上。
3.Prometheus可添加多個監控節點,網絡能正常連通即可,修改Prometheus配置文件后需重啟下服務。

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

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

相關文章

第十七章 使用 MariaDB 數據庫管理系統

1. 數據庫管理系統 數據庫是指按照某些特定結構來存儲數據資料的數據倉庫。在當今這個大數據技術迅速崛起的年代&#xff0c;互聯網上每天都會生成海量的數據信息&#xff0c;數據庫技術也從最初只能存儲簡單的表格數據的單一集中存儲模式&#xff0c;發展到了現如今存儲海量…

Jenkins授權策略的配置

簡介:在Jenkins中,通過系統管理下的“Manage and Assign Roles”以及“Manage Roles”來配置角色,是實現權限管理的關鍵步驟。以下是關于這兩個功能配置角色時的意義及注意事項的詳細解釋: 一、配置角色的意義 實現權限控制: 通過創建和分配角色,可以精確地控制不同用戶…

centos 7.9 安裝jdk1.8 mysql redis等

環境&#xff1a; centos 7.9 1、安裝OpenJDK 1.8 步驟 1: 更新系統 首先&#xff0c;確保你的系統是最新的&#xff0c;執行以下命令來更新所有軟件包&#xff1a; sudo yum update -y步驟 2: 安裝 OpenJDK 1.8 CentOS 7 默認的包管理器是 yum&#xff0c;你可以通過以下命…

計算機鍵盤的演變 | 鍵盤鍵名稱及其功能 | 鍵盤指法

注&#xff1a;本篇為 “鍵盤的演變及其功能” 相關幾篇文章合輯。 英文部分機翻未校。 The Evolution of Keyboards: From Typewriters to Tech Marvels 鍵盤的演變&#xff1a;從打字機到技術奇跡 Introduction 介紹 The keyboard has journeyed from a humble mechanical…

Methods and Initializers

1 Method Declarations 這回不從comipler開始&#xff0c;從runtime開始。 GC也需要follow 接下來難點在于如何填充這些表 2 Compiling method declarations 難點&#xff1a; 一個類可以聲明任意數量的方法。運行時需要查找并綁定所有這些方法。如果將這些方法都打包到一條…

飛飛5.4游戲源碼(客戶端+服務端+工具完整源代碼+5.3fix+5.4patch+數據庫可編譯進游戲)

飛飛5.4游戲源碼&#xff08;客戶端服務端工具完整源代碼5.3fix5.4patch數據庫可編譯進游戲&#xff09; 下載地址&#xff1a; 通過網盤分享的文件&#xff1a;【源碼】飛飛5.4游戲源碼&#xff08;客戶端服務端工具完整源代碼5.3fix5.4patch數據庫可編譯進游戲&#xff09; 鏈…

開源C代碼之路:一、Gitee

開源c代碼之路&#xff1a;一&#xff0c;Gitee 前言1、開源項目2、從哪里找&#xff1f;3、舉個例子4、總結&#xff1a; 本系列回顧清單開源代碼示例 前言 從開源開發的角度&#xff0c;由淺入深&#xff0c;一步步初探C語言編程的入門之路。 本篇講解&#xff1a;Gitee 1…

基于協同過濾算法的寵物用品商城的設計與實現(計算機畢業設計)Java Spring 衍生為任何商城系統 畢業論文

系統合集跳轉 源碼獲取鏈接 一、系統環境 運行環境: 最好是java jdk 1.8&#xff0c;我們在這個平臺上運行的。其他版本理論上也可以。 IDE環境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat環境&#xff1a; Tomcat 7.x,8.x,9.x版本均可 操作系統…

算法-字符串-165.比較版本號

一、題目 二、思路解析 1.思路&#xff1a; 比較的是兩個版本號它們以“.”作為分割的部分的有效值&#xff08;即數值&#xff09;是否一致 2.常用方法&#xff1a; 1.s.split("\\規則")&#xff0c;將字符串按參數規則進行分割并存儲在字符串數組中 String[] str …

MySQL(四)--索引

MySQL的服務器,本質是在內存中的,那么所有對數據的CURD操作,全都是在對內存進行操作。 而,提高數據的CURD操作的效率,有兩種方式:1、組織數據的格式(數據結構);2、算法。 而,數據結構,就是索引,即組織數據的格式。 1、沒有索引的問題 索引:提高數據庫的性能,索…

C# (WinForms) 使用 iTextSharp 庫將圖片轉換為 PDF

iTextSharp簡介 iTextSharp 是一個開源的 .NET 庫&#xff0c;主要用于創建和操作 PDF 文檔。它是 iText 的 .NET 版本&#xff0c;iText 是一個廣泛使用的 Java 庫。iTextSharp 繼承了 iText 的核心功能并進行了適應 .NET 平臺的調整。 iTextSharp 的主要功能包括&#xff1a…

ubuntu防火墻設置(四)——iptables語法與防火墻基礎配置

前面介紹的ufw和firewall-config均為iptables的前端&#xff0c; 分別適合個人用戶和服務器網絡管理 下面介紹底層——ipables iptables是一個強大的工具&#xff0c;用于配置Linux系統的防火墻。以下是一些基本的使用方法和示例&#xff0c;幫助您入門&#xff1a; 基本語法 …

【中間件開發】Redis基礎命令詳解及概念介紹

文章目錄 前言一、Redis相關命令詳解及原理1.1 string、set、zset、list、hash1.1.1 string1.1.2 list1.1.3 hash1.1.4 set1.1.5 zset 1.2 分布式鎖的實現1.3 lua腳本解決ACID原子性1.4 Redis事務的ACID性質分析 二、Redis協議與異步方式2.1 Redis協議解析2.1.1 redis pipeline…

力扣每日一題 - 999. 可以被一步捕獲的棋子數

題目 還需要你前往力扣官網查看詳細的題目要求 地址 1.給定一個 8 x 8 的棋盤&#xff0c;只有一個 白色的車&#xff0c;用字符 R 表示。棋盤上還可能存在白色的象 B 以及黑色的卒 p。空方塊用字符 . 表示。2.車可以按水平或豎直方向&#xff08;上&#xff0c;下&#xff0c;…

[UVM]在UVM環境中加入C++內存模塊

摘要&#xff1a;要在UVM環境中實現一個內存模塊并存入數據&#xff0c;您可以遵循以下步驟。這里會涉及C的內存建模和UVM的SystemVerilog部分的接口。在高層次上&#xff0c;我們將描述如何在C中實現內存模型并通過UVM的DPI接口訪問它。 一、C內存模型 首先&#xff0c;在C中…

學習記錄,正則表達式, 隱式轉換

正則表達式 \\&#xff1a;表示正則表達式 W: 表示一個非字&#xff08;不是一個字&#xff0c;例如&#xff1a;空格&#xff0c;逗號&#xff0c;句號&#xff09; W: 多個非字 基本組成部分 1.字符字面量&#xff1a; 普通字符&#xff1a;在正則表達式中&#xff0c;大…

Selenium是廣泛使用的模擬瀏覽器運行的庫

簡介 Selenium是廣泛使用的模擬瀏覽器運行的庫&#xff0c;它是一個用于Web應用程序測試的工具。 Selenium測試直接運行在瀏覽器中&#xff0c;就像真正的用戶在操作一樣&#xff0c;并且支持大多數現代 Web 瀏覽器。 環境 安裝 pip install selenium下載Chrome驅動 系統環境…

網絡練級寶典-> UDP傳輸層協議

目錄 傳輸層 端口號 端口號和進程的關系 UDP協議 UDP協議格式 UDP數據封裝&#xff1a; UDP數據分用&#xff1a; 面向數據報 UDP的緩沖區 UDP的缺點 基于UDP的應用層協議 傳輸層 端口號 我們知道端口號對應的其實就是一個進程的pid&#xff0c;在操作系統中二者的…

Redis原理—1.Redis數據結構

大綱 1.Redis的數據結構 2.Redis的SDS 3.Redis的鏈表 4.Redis的字典 5.Redis的跳躍表 6.Redis的整數集合 7.Redis的壓縮列表 8.Redis的對象 9.Redis對象的幾個關鍵屬性 10.Redis的單線程為什么這么快 11.Redis的典型應用場景和說明 12.Redis的相關命令說明 1.Redis…

【Vue3中Router使用】

Vue3中Router使用 1. 安裝vue-router組件2. 建兩個測試頁面2.1 測試頁面Home.vue2.2 測試頁面Category.vue 3. 創建路由對象4. 在入口main.js中引入router把App.vue改成路由頁面5. 測試5.1 關閉檢查解決ESlint報錯5.2 改文件名解決ESlint檢查報錯測試WebHashHistory 和WebHisto…