Prometheus+Grafana實時監控系統各項指標

一、監控架構設計

核心組件與數據流

  • Prometheus:時序數據采集、存儲與告警規則管理
  • Node Exporter:采集主機指標(CPU、內存、磁盤、網絡等)
  • 數據庫Exporter:如 mysqld_exporterpostgres_exporter
  • Grafana:數據可視化與儀表盤展示
  • Alertmanager(可選):告警通知管理

二、主機環境準備

1. 系統要求

  • Linux系統(推薦CentOS 7+/Ubuntu 20.04+)
  • 開放端口:9090(Prometheus)、3000(Grafana)、9100(Node Exporter)
  • 確保所有節點時間同步(NTP服務)
# CentOS安裝NTP
sudo yum install ntp
sudo systemctl start ntpd
sudo systemctl enable ntpd# Ubuntu安裝NTP
sudo apt install ntp
sudo systemctl restart ntp

三、組件安裝與配置

1. 安裝Prometheus Server

下載二進制包
wget https://github.com/prometheus/prometheus/releases/download/v2.39.1/prometheus-2.39.1.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz
sudo mv prometheus-2.39.1.linux-amd64 /usr/local/prometheus
創建系統服務
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus# 創建service文件
sudo cat <<EOF > /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target[Service]
User=prometheus
Group=prometheus
ExecStart=/usr/local/prometheus/prometheus \--config.file=/etc/prometheus/prometheus.yml \--storage.tsdb.path=/var/lib/prometheus \--web.listen-address=0.0.0.0:9090Restart=always[Install]
WantedBy=multi-user.target
EOF# 配置Prometheus
sudo cp /usr/local/prometheus/prometheus.yml /etc/prometheus/
sudo chown -R prometheus:prometheus /etc/prometheus# 啟動服務
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

2. 部署Node Exporter(所有節點)

下載安裝
wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo mv node_exporter-1.4.0.linux-amd64/node_exporter /usr/local/bin/
sudo useradd -rs /bin/false node_exporter
創建系統服務
sudo cat <<EOF > /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target[Service]
User=node_exporter
Group=node_exporter
ExecStart=/usr/local/bin/node_exporterRestart=always[Install]
WantedBy=multi-user.target
EOFsudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter

3. 配置Prometheus抓取規則

編輯 /etc/prometheus/prometheus.yml

scrape_configs:- job_name: 'node'static_configs:- targets: ['node1:9100', 'node2:9100', 'node3:9100']

重啟Prometheus生效:

sudo systemctl restart prometheus

四、數據庫監控配置(以MySQL為例)

1. 安裝mysqld_exporter

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
tar xvfz mysqld_exporter-*.tar.gz
sudo mv mysqld_exporter-0.14.0.linux-amd64/mysqld_exporter /usr/local/bin/
sudo useradd -rs /bin/false mysqld_exporter

2. 創建監控用戶

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'SecurePass123!' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';

3. 創建環境變量文件

sudo mkdir /etc/mysqld_exporter
sudo cat <<EOF > /etc/mysqld_exporter/.my.cnf
[client]
user=exporter
password=SecurePass123!
EOF

4. 創建系統服務

sudo cat <<EOF > /etc/systemd/system/mysqld_exporter.service
[Unit]
Description=MySQL Exporter
After=network.target[Service]
User=mysqld_exporter
EnvironmentFile=/etc/mysqld_exporter/.my.cnf
ExecStart=/usr/local/bin/mysqld_exporter \--config.my-cnf="%a" \--web.listen-address=0.0.0.0:9104Restart=always[Install]
WantedBy=multi-user.target
EOFsudo systemctl daemon-reload
sudo systemctl start mysqld_exporter
sudo systemctl enable mysqld_exporter

五、安裝與配置Grafana

1. 安裝Grafana(CentOS)

sudo tee /etc/yum.repos.d/grafana.repo <<EOF
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOFsudo yum install grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

2. 配置Grafana數據源

  1. 訪問 http://<服務器IP>:3000,默認賬號 admin/admin
  2. 左側菜單 → Configuration → Data Sources → Add data source
  3. 選擇 Prometheus,填寫URL http://localhost:9090
  4. 點擊 Save & Test

六、導入監控儀表盤

1. 主機監控儀表盤

  • Node Exporter Full:ID 1860
  • Linux Hosts Metrics:ID 11074

2. MySQL監控儀表盤

  • MySQL Overview:ID 7362
  • Percona MySQL:ID 11323

操作步驟

  1. 左側菜單 → Create → Import
  2. 輸入儀表盤ID → Load
  3. 選擇Prometheus數據源 → Import

七、安全加固

1. 防火墻配置

# CentOS
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --permanent --add-port=9090/tcp
sudo firewall-cmd --reload# Ubuntu
sudo ufw allow 3000/tcp
sudo ufw allow 9090/tcp
sudo ufw reload

2. Grafana反向代理(Nginx示例)

server {listen 80;server_name grafana.yourdomain.com;location / {proxy_pass http://localhost:3000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}

八、告警配置示例

1. 創建告警規則文件

sudo cat <<EOF > /etc/prometheus/alerts.yml
groups:
- name: host-alertsrules:- alert: HighMemoryUsageexpr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100 > 85for: 5mlabels:severity: warningannotations:summary: "內存使用率過高 (實例 {{ $labels.instance }})"description: "內存使用率超過85%持續5分鐘"
EOF

2. 修改Prometheus配置

# /etc/prometheus/prometheus.yml
rule_files:- alerts.yml

重啟服務:

sudo systemctl restart prometheus

九、故障排查指南

1. 服務狀態檢查

sudo systemctl status prometheus
sudo systemctl status node_exporter
sudo systemctl status mysqld_exporter

2. 日志查看

# Prometheus日志
journalctl -u prometheus -f# Node Exporter日志
journalctl -u node_exporter -f# MySQL Exporter日志
journalctl -u mysqld_exporter -f

十、總結

通過原生安裝方式,您已構建完整的監控系統:

  • 資源監控:實時掌握CPU、內存、磁盤等指標
  • 數據庫監控:跟蹤查詢性能、連接數、復制狀態
  • 告警通知:配置閾值觸發郵件/釘釘通知
  • 安全加固:通過防火墻和反向代理保護服務

后續擴展方向

  • 集成Alertmanager實現多通道告警
  • 監控Redis、Kafka等中間件
  • 部署長期存儲(如Thanos)管理歷史數據

資源參考

  • Prometheus官方文檔
  • Grafana儀表盤庫

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

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

相關文章

[密碼學基礎]GMT 0029-2014簽名驗簽服務器技術規范深度解析

GMT 0029-2014簽名驗簽服務器技術規范深度解析 引言 在數字化轉型和網絡安全需求激增的背景下&#xff0c;密碼技術成為保障數據完整性與身份認證的核心手段。中國密碼管理局發布的GMT 0029-2014《簽名驗簽服務器技術規范》&#xff0c;為簽名驗簽服務器的設計、開發與部署提…

多路轉接select服務器

目錄 select函數原型 select服務器 select的缺點 前面介紹過多路轉接就是能同時等待多個文件描述符&#xff0c;這篇文章介紹一下多路轉接方案中的select的使用 select函數原型 #include <sys/select.h> int select(int nfds, fd_set *readfds, fd_set *writefds, f…

QT6 源(45):分隔條 QSplitter 允許程序的用戶修改布局,程序員使用 IDE時,就是分隔條的用戶,以及其 QSplitter 源代碼

&#xff08;1&#xff09; &#xff08;2&#xff09;本類的繼承關系如下&#xff0c;所以說分隔條屬于容器&#xff1a; &#xff08;3&#xff09;本類的屬性&#xff1a; &#xff08;4&#xff09; 這是一份 QSplitter 的舉例代碼&#xff0c;注意其構造函數時候的傳參&am…

VSCode PIO使用Jlink SWD燒錄Stm32

一、背景 PIO的編譯速度比Arduino快很多&#xff0c;同樣支持Arduino的語法。VScode的自動補全和插件也能夠幫助快速開發目前使用JLINK SWD的方式連接STM32 二、配置 在ini配置文件中&#xff0c;添加如下內容 [env:genericSTM32F103C8] platform ststm32 board genericS…

JavaScript 渲染內容爬取:Puppeteer 入門

在現代網絡應用中&#xff0c;許多網頁內容是通過 JavaScript 渲染生成的&#xff0c;傳統的爬蟲工具往往難以獲取這些動態內容。Puppeteer 作為一種強大的瀏覽器自動化工具&#xff0c;為這一問題提供了優雅的解決方案。本文將帶你入門 Puppeteer&#xff0c;介紹如何安裝、啟…

卷積神經網絡:視覺煉金術士的數學魔法

引言&#xff1a;當數學遇見視覺煉金術 在人工智能的奇幻世界里&#xff0c;卷積神經網絡&#xff08;CNN&#xff09;猶如掌握視覺奧秘的煉金術士&#xff0c;將原始像素的"鉛塊"淬煉成認知的"黃金"。這種融合數學嚴謹性與生物靈感的算法架構&#xff0c…

Android Cordova 開發 - Cordova 快速入門(Cordova 環境配置、Cordova 第一個應用程序)

一、Cordova 1、Cordova 概述 Cordova 是使用 HTML&#xff0c;CSS 和 JavaScript 構建混合移動應用程序的平臺 2、Cordova 特征 &#xff08;1&#xff09;命令行界面&#xff08;Cordova CLI&#xff09; 這是可用于啟動項目&#xff0c;構建不同平臺的進程&#xff0c;…

ubuntu18.04啟動不了修復

參考: 虛擬機里的Ubuntu18.4啟動時進入到grub rescue救援模式&#xff08;無法正常進入到系統&#xff09;&#xff0c;ls查看后只有一個硬盤和分區&#xff0c;且無法找到/boot/grub文件【已解決】_ubuntu grub rescue-CSDN博客 本人fdisk錯誤使用,導致了grub啟動不了 第一步…

SpringBoot3設置maven package直接打包成二進制可執行文件

注意事項 SpringBoot普通native打包順序clean compile spring-boot:process-aot native:compile 使用以下配置只會的打包順序clean package&#xff08;注意&#xff1a;使用此配置以后打包會有編譯后的class文件、jar包、original源文件、二進制可執行文件【Linux是無后綴的包…

【華為】防火墻雙擊熱備-之-主備模式-單外網線路

FW1和FW2的業務接口都工作在三層&#xff0c;上行連接二層交換機。上行交換機連接運營商的接入點&#xff0c;運營商為企業分配的IP地址為100.100.100.2。現在希望FW1和FW2以主備備份方式工作。正常情況下&#xff0c;流量通過FW1轉發&#xff1b;當FW1出現故障時&#xff0c;流…

MYSQL之表的操作

1. 創建表 語法: CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校驗規則 engine 存儲引擎; field 表示列名, datatype 表示列的類型character set 字符集, 如果沒有指定字符集, 則以所在數據庫的字符集為…

RAG進階:Chroma開源的AI原生向量數據庫

一、Chroma 核心概念與優勢 1. 什么是 Chroma&#xff1f; Chroma 是一款開源的向量數據庫&#xff0c;專為高效存儲和檢索高維向量數據設計。其核心能力在于語義相似性搜索&#xff0c;支持文本、圖像等嵌入向量的快速匹配&#xff0c;廣泛應用于大模型上下文增強&#xff0…

店匠科技摘得 36 氪“2025 AI Partner 創新大獎”

全場景 AI 方案驅動跨境電商數智化躍遷 4 月 18 日,36 氪 2025 AI Partner 大會于上海盛大開幕。大會緊扣“Super App 來了”主題,全力探尋 AI 時代的全新變量,探索 AI 領域下一個超級應用的無限可能性。在此次大會上,跨境電商獨立站 SaaS 平臺店匠科技(Shoplazza)憑借“店匠跨…

SQL技術終極指南:從內核原理到超大規模應用

一、DDL核心應用場景與最佳實踐 1.1 表結構設計場景矩陣 業務場景核心語法要素典型實現案例電商用戶畫像JSON字段虛擬列索引CREATE TABLE users (id INT, profile JSON, AS (profile->>$.age) VIRTUAL, INDEX idx_age((profile->>$.age)))物聯網時序數據分區表壓…

吳恩達深度學習作業CNN之ResNet實現(Pytorch)

課程中認識許多CNN架構。首先是經典網絡&#xff1a; LeNet-5AlexNetVGG 之后是近年來的一些網絡&#xff1a; ResNetInceptionMobileNet 經典網絡 LeNet-5 LeNet-5是用于手寫數字識別&#xff08;識別0~9的阿拉伯數字&#xff09;的網絡。它的結構如下&#xff1a; 網絡…

FPGA入門學習Day1——設計一個DDS信號發生器

目錄 一、DDS簡介 &#xff08;一&#xff09;基本原理 &#xff08;二&#xff09;主要優勢 &#xff08;三&#xff09;與傳統技術的對比 二、FPGA存儲器 &#xff08;一&#xff09;ROM波形存儲器 &#xff08;二&#xff09;RAM隨機存取存儲器 &#xff08;三&…

SqlSugar與Entity Framework (EF)的SWOT分析

以下是基于 SWOT 分析法 對 SqlSugar 和 Entity Framework (EF) 的特性對比&#xff1a; SqlSugar 優勢 (Strengths) 高性能&#xff1a; SqlSugar 以輕量化設計著稱&#xff0c;執行速度更快&#xff0c;適合對性能要求較高的場景。在大數據量操作和復雜查詢中表現優異。 易…

學習記錄:DAY16

Maven 進階與前端實戰 前言 二輪考核的內容下來了&#xff0c;由整體項目構建轉為實現特定模塊的功能。對細節的要求更高了&#xff0c;而且有手搓線程池、手搓依賴注入等進階要求&#xff0c;又有得學力。嘻嘻&#xff0c;太簡單了&#xff0c;只要我手搓 Spring Boot 框架……

深度學習--卷積神經網絡調整學習率

文章目錄 前言一、學習率1、什么學習率2、什么是調整學習率3、目的 二、調整方法1、有序調整1&#xff09;有序調整StepLR(等間隔調整學習率)2&#xff09;有序調整MultiStepLR(多間隔調整學習率)3&#xff09;有序調整ExponentialLR (指數衰減調整學習率)4&#xff09;有序調整…

【消息隊列RocketMQ】四、RocketMQ 存儲機制與性能優化

一、RocketMQ 存儲機制詳解 1.1 存儲文件結構? RocketMQ 的存儲文件主要分布在store目錄下&#xff0c;該目錄是在broker.conf配置文件中通過storePathRootDir參數指定的&#xff0c;默認路徑為${user.home}/store 。主要包含以下幾種關鍵文件類型&#xff1a;? 1.1.1 Comm…