完整教程:Ubuntu 系统安装 Prometheus+Grafana(附shell脚本一键部署↓)
Prometheus与Grafana的组合是云原生环境下高效监控与可视化的黄金搭档,二者通过技术互补形成完整的监控解决方案,适用于容器化应用、微服务架构及传统IT环境的性能管理。
Prometheus:云原生监控的核心引擎
- 技术定位与优势
Prometheus是由SoundCloud开发、后纳入CNCF的开源监控系统,采用Pull模式主动拉取指标数据,支持多维数据模型(时间序列由指标名和键值对标签构成)。其核心优势包括:- 高效存储:单机每秒可采集千万级指标,320万时间序列存储60天仅需228GB磁盘。
- 灵活查询:PromQL查询语言支持复杂数学运算,适合动态服务架构的监控需求。
- 服务发现:原生支持Kubernetes、DNS、Consul等动态目标发现,适配容器化环境。
- 自治架构:单节点独立运行,不依赖分布式存储,故障时仍可提供基础监控能力。
- 典型应用场景
- Kubernetes集群监控:通过Node Exporter采集节点资源(CPU、内存、磁盘),Kube-State-Metrics监控Pod/Deployment状态,cAdvisor跟踪容器资源使用。
- 微服务性能分析:结合Blackbox Exporter监控服务存活性,通过自定义指标分析接口响应时间、错误率。
- 日志与事件关联:与Loki集成实现日志与指标的交叉分析,加速故障定位。
Grafana:数据可视化的终极利器
- 技术定位与优势
Grafana是基于Go的开源可视化平台,支持多数据源(Prometheus、InfluxDB、MySQL等),提供动态仪表盘、告警规则配置及插件扩展能力。其核心价值包括:- 直观展示:折线图、热力图、仪表盘等20+种图表类型,支持时间范围对比、数据下钻。
- 告警管理:通过Alerting模块定义阈值规则,支持Email、Slack、Webhook等多渠道通知。
- 混合数据源:单图聚合不同数据源指标(如Prometheus指标+MySQL业务数据)。
- 模板变量:动态生成仪表盘(如按服务名筛选Pod指标),提升复用性。
- 典型应用场景
- 实时监控大屏:构建IT运维驾驶舱,集中展示核心业务指标(如订单量、交易成功率)。
- 告警中心:集成Alertmanager实现告警收敛、分组,减少噪音干扰。
- 自定义报表:通过SQL或PromQL生成日报/周报,支持PDF导出与分享。
Prometheus + Grafana:1+1>2的监控实践
- 技术协同原理
Prometheus负责数据采集与存储,Grafana通过API拉取指标并可视化,二者通过以下机制深度集成:- 数据源配置:在Grafana中添加Prometheus数据源,指定URL(如
http://prometheus-server:9090
)。 - 仪表盘模板:利用社区模板(如Node Exporter Full、Kubernetes Cluster)快速部署监控面板。
- 告警联动:Grafana Alerting调用Alertmanager API,实现可视化告警规则配置与通知。
- 数据源配置:在Grafana中添加Prometheus数据源,指定URL(如
- 部署架构示例
- 单机部署:同一服务器安装Prometheus(端口9090)与Grafana(端口3000),通过Nginx反向代理实现统一访问。
- 集群部署:Prometheus联邦模式分散采集压力,Grafana集群通过HA配置保障高可用。
- 安全配置:启用Prometheus TLS认证,Grafana配置LDAP集成实现权限管理。
- 最佳实践建议
- 标签设计:遵循
<metric_name>{label="value"}
规范,避免高基数标签(如用户ID)。 - 采集频率:根据指标重要性设置
scrape_interval
(默认1分钟),关键业务指标可缩短至15秒。 - 告警策略:采用“紧急>警告>通知”分级机制,结合抑制规则减少重复告警。
- 扩展性:长期历史数据存储可对接Thanos或Cortex,实现全局视图与降采样查询。
- 标签设计:遵循
一、安装 Prometheus
1. 下载 Prometheus
sudo apt update #更新软件包列表
wget https://githubfast.com/prometheus/prometheus/releases/download/v2.53.2/prometheus-2.53.2.linux-amd64.tar.gz
2. 解压并移动文件
tar xvf prometheus-2.53.2.linux-amd64.tar.gz
sudo mv prometheus-2.53.2.linux-amd64 /usr/local/prometheus-2.53.2 # 移动到系统目录
sudo ln -s /usr/local/prometheus-2.53.2 /usr/local/prometheus # 创建软链接便于未来升级
3. 创建专用用户和权限
sudo useradd -s /sbin/nologin -M prometheus # 创建prometheus用户,禁止登录
sudo chown -R prometheus:prometheus /usr/local/prometheus* # 授权
4. 创建数据存储目录
sudo mkdir -p /data/prometheus
sudo chown -R prometheus:prometheus /data/prometheus/
5. 配置 systemd 服务
sudo tee /etc/systemd/system/prometheus.service > /dev/null << 'EOF'
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/prometheus/prometheus \--config.file=/usr/local/prometheus/prometheus.yml \--storage.tsdb.path=/data/prometheus \--web.enable-lifecycle \--web.listen-address=:9090
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
6. 启动 Prometheus 服务
# 重新加载systemd配置
sudo systemctl daemon-reload
# 启动并设置开机自启
sudo systemctl start prometheus
sudo systemctl enable prometheus
# 查看状态
sudo systemctl status prometheus --no-pager
7. 访问 Prometheus Web UI
打开浏览器访问:http://<IP>:9090
二、安装 Grafana
1. 添加 Grafana 官方仓库
# 安装依赖
sudo apt-get install -y software-properties-common wget
# 添加GPG密钥
wget -q -O - https://packages.grafana.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/grafana.gpg
# 添加仓库
echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | \sudo tee /etc/apt/sources.list.d/grafana.list
2. 更新并安装 Grafana
sudo apt-get update
sudo apt-get install grafana -y
3 启动 Grafana 服务
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
# 查看状态
sudo systemctl status grafana-server --no-pager
4. 访问 Grafana Web UI
打开浏览器访问:http://<IP>:3000
- 默认用户名:
admin
- 默认密码:
admin
首次登录后会提示修改密码,请立即设置新密码。
三、配置 Grafana 为中文
- 登录 Grafana 后,点击左侧齿轮图标 "Administration"
- 进入 General > Default preferences
- 将 Language 设置为 中文(简体)
- 点击 Save,点击下面的 Save
四、在 Grafana 中添加 Prometheus 数据源
- 登录 Grafana
- 点击左侧 连接 号,选择 "数据源(Data Source)"
- 选择 Prometheus
- 在 HTTP 区域的 URL 输入框中填写:http://localhost:9090
- 向下滚动,点击 Save & Test
- 如果显示 "绿色√",表示连接成功。
五、监控本机指标 —— 安装 Node Exporter
1. 下载并运行 Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvf node_exporter-*.tar.gz
sudo cp node_exporter-*/node_exporter /usr/local/bin/
创建一个 systemd 服务来管理 Node Exporter
sudo tee /etc/systemd/system/node-exporter.service > /dev/null << 'EOF'
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=root
ExecStart=/usr/local/bin/node_exporter
Restart=always
[Install]
WantedBy=multi-user.target
EOF
启用并启动服务
sudo systemctl daemon-reload
sudo systemctl start node-exporter
sudo systemctl enable node-exporter
2. 配置 Prometheus 抓取 Node Exporter
编辑 Prometheus 配置文件:
sudo vim /usr/local/prometheus/prometheus.yml
在 scrape_configs
下添加:
- job_name: 'node_exporter'static_configs:- targets: ['localhost:9100']
3. 重载 Prometheus 配置
sudo systemctl reload prometheus
sudo kill -HUP $(pgrep prometheus) # 或发送 HUP 信号
七、shell脚本自动化安装
#!/bin/bash
# +--------------------------------------------------+
# | Ubuntu 自动部署 Prometheus + Grafana |
# | 作者:LoneEon
# | 2025 年 9 月 29 日
# | 适用于 Ubuntu 20.04/22.04 LTS |
# +--------------------------------------------------+
set -e # 遇到错误立即退出
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${GREEN}开始部署 Prometheus + Grafana 监控系统(精简版)...${NC}"
# 1. 更新系统
echo -e "${YELLOW}【步骤1】更新系统软件包...${NC}"
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl gnupg2 software-properties-common
# 2. 创建专用用户
echo -e "${YELLOW}【步骤2】创建 prometheus 用户...${NC}"
sudo useradd -s /sbin/nologin -M prometheus 2>/dev/null || true
# 3. 下载 Prometheus 2.53.2
echo -e "${YELLOW}【步骤3】下载 Prometheus 2.53.2...${NC}"
wget https://githubfast.com/prometheus/prometheus/releases/download/v2.53.2/prometheus-2.53.2.linux-amd64.tar.gz
tar xvf prometheus-2.53.2.linux-amd64.tar.gz
sudo mv prometheus-2.53.2.linux-amd64 /usr/local/prometheus-2.53.2
sudo ln -sf /usr/local/prometheus-2.53.2 /usr/local/prometheus
# 4. 创建数据目录
echo -e "${YELLOW}【步骤4】创建数据和配置目录...${NC}"
sudo mkdir -p /data/prometheus
sudo chown -R prometheus:prometheus /usr/local/prometheus*
sudo chown -R prometheus:prometheus /data/prometheus
# 5. 创建 prometheus.yml 配置文件
echo -e "${YELLOW}【步骤5】生成 Prometheus 配置文件...${NC}"
sudo tee /usr/local/prometheus/prometheus.yml > /dev/null << 'EOF'
global:scrape_interval: 15sevaluation_interval: 15s
scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']
EOF
sudo chown prometheus:prometheus /usr/local/prometheus/prometheus.yml
# 6. 创建 Prometheus systemd 服务
echo -e "${YELLOW}【步骤6】配置 Prometheus 服务...${NC}"
sudo tee /etc/systemd/system/prometheus.service > /dev/null << 'EOF'
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/prometheus/prometheus \--config.file=/usr/local/prometheus/prometheus.yml \--storage.tsdb.path=/data/prometheus \--web.enable-lifecycle \--web.listen-address=:9090
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# 7. 添加 Grafana 官方仓库
echo -e "${YELLOW}【步骤7】添加 Grafana 仓库...${NC}"
wget -q -O - https://packages.grafana.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/grafana.gpg
echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | \sudo tee /etc/apt/sources.list.d/grafana.list
# 8. 安装 Grafana
echo -e "${YELLOW}【步骤8】安装 Grafana...${NC}"
sudo apt update
sudo apt install -y grafana
# 9. 启动所有服务
echo -e "${YELLOW}【步骤9】启动并启用 Prometheus 和 Grafana 服务...${NC}"
sudo systemctl daemon-reload
# 启动 Prometheus
sudo systemctl start prometheus
sudo systemctl enable prometheus
# 启动 Grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
# 10. 输出完成信息
echo -e "${GREEN}==================================================${NC}"
echo -e "${GREEN}✅ Prometheus + Grafana 部署完成(精简版)!${NC}"
echo -e "${GREEN}==================================================${NC}"
echo
echo -e "${GREEN} Prometheus 访问地址:${NC} http://$(hostname -I | awk '{print $1}'):9090"
echo -e "${GREEN} Grafana 访问地址:${NC} http://$(hostname -I | awk '{print $1}'):3000"
echo -e "${GREEN} Grafana 默认账号:${NC} admin / admin"
echo
echo -e "${YELLOW} 首次登录 Grafana 后请立即修改密码!${NC}"
echo
echo -e "${GREEN} 部署成功!${NC}"
八、 常见问题排查
问题 | 解决方案 |
---|---|
apt-get update 报错 GPG 密钥 | 确保正确执行了 gpg --dearmor 步骤 |
Grafana 无法启动 | 检查 /etc/apt/sources.list.d/grafana.list 文件内容是否正确 |
权限错误 | 确保 /data/prometheus 目录属于 prometheus 用户:sudo chown -R prometheus:prometheus /data/prometheus/ |
服务无法开机自启 | 确认已执行 systemctl enable 命令 |
通过本文的完整实践,我们成功在Ubuntu系统上部署了Prometheus与Grafana这一强大的监控组合,实现了从数据采集、存储到可视化的闭环。这不仅为系统性能观测提供了有力工具,也为后续构建全面的告警体系和深入的运维分析奠定了坚实基础。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924725.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
网站的设计与制作论文题目成都高端网站建设哪家好
这世界上有后悔药– www.houhuiyao.cc 后悔药数据恢复 站长语前面的内容也提到过update或delete误更新删除了数据后如何恢复。实际生产环境中常常因各种不同场景导致一些办法有效一些办法无效,当然,最有效的办法依然是备份!虽然啰嗦ÿ…
重庆市住房和城乡建设部网站自己怎么开发app软件
文章目录 性能比较区别使用方式和行为 性能比较
最终总结:如果数据在1万以内的话,for循环效率高于foreach和stream;如果数据量在10万的时候,stream效率最高,其次是foreach,最后是for。另外需要注意的是如果数据达到10…
详细介绍:【计算机视觉】形态学的去噪
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
阿里巴巴做网站的电话号码wordpress社
JavaScript返回上一页代码区别: window.history.go(-1); //返回上一页window.history.back(); //返回上一页//如果要强行刷新的话就是:window.history.back();location.reload();window.location.go(-1); //刷新上一页
开封旅游网站建设网页推广莱西市城乡建设局网站
最近,Oracle采用了一种新策略,即每六个月发布一次新的语言版本。 该策略假定只有每个第3版都将提供长期支持或LTS。 快速说明: 具有LTS的当前版本是Java 8; Java 9仅应在2018年3月之前获得支持,因此已经结束。 Java…
[apple pencil二代充不上电]
不废话:
先不急着联系苹果官方ipad 插上电
2.apple pencil 2 吸附在旁边
3.等一夜
4.早上起来反复开关ipad蓝牙,
5.连上了
分布式光纤声波振动与AI的深度融合:开启智慧感知新时代 - 指南
分布式光纤声波振动与AI的深度融合:开启智慧感知新时代 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Co…
2025液压扳手实力厂家推荐榜:精准扭矩与耐用品质专业之选
2025液压扳手实力厂家推荐榜:精准扭矩与耐用品质专业之选在工业装备领域,液压扳手作为关键扭矩工具,其性能直接影响设备安装质量与运维安全。随着2025年工业技术标准的提升,市场对液压扳手的精度、耐用性及适配性提…
网站建设如何选择良好的服务器长沙网页制作网站
如何开展软件架构之概念架构 到目前为止,我们已经完成了需求的分析过程,总结来说,主要的步聚是 一)需求结构化, 二)分析约束影响 三)重点关注质量需求。 那么接下来的阶段则是系统的概念架构了&…
做网站选云服务器内核大连建设网站制作
1、权限组件rbac 1、什么是权限 1 项目与应用 2 什么是权限? 一个包含正则表达式url就是一个权限 who what how ---------->True or Flase 2、版本1:用户表与权限url表 对应关系 # 版本1UserInforname pwdpermissionmodels.manytomany(Permissi…
工会网站建设请示可以做锚文本链接的网站
E201_06_02_正弦函数题目要求:按照三角函数泰勒级数展开式计算正弦函数值:,直到最后一项的绝对值小于106解题思路:1. 输入弧度2. 确定初始化值3. 求阶梯函数代码:public class E201_06_02_正弦函数 {public static void main(Stri…
Flutter完整开发指南 | FlutterDart – The Complete Guide - 教程
Flutter完整开发指南 | Flutter&Dart – The Complete Guide - 教程2025-10-02 08:40
tlnshuju
阅读(0)
评论(0) 收藏
举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: au…
Flutter实现闲鱼底部导航栏中间突出效果
Flutter实现闲鱼底部导航栏中间突出效果Posted on
2025-10-02 08:41
lifeisastory
阅读(0)
评论(0) 收藏
举报实现思路
在 Scaffold 组件中使用 bottomNavigationBar 和 floatingActionButton 属性建立底部导航栏…
2025试验机实力厂家品牌公司最新权威推荐榜:精准测试与技术创新标杆之选
在制造业转型升级与质量强国战略深入推进的背景下,试验机作为质量检测与材料研发的核心装备,正迎来前所未有的发展机遇。根据行业数据显示,2024年我国试验机市场规模已突破百亿元,年均复合增长率保持在12%以上,其…
AI元人文:价值共生体系统——构建人机文明的演进基石——DeeoSeek融合
AI元人文:价值共生体系统——构建人机文明的演进基石
摘要
本文针对传统AI"价值对齐"范式的局限性,提出"价值共生体系统"作为下一代智能系统的核心架构。该系统通过价值语义网络、共识决策引擎和…
详细介绍:大模型架构之GPT、LLaMA与PaLM模型
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
2025喷涂厂家TOP企业品牌推荐排行榜,喷涂、喷涂设备、 喷涂生产线、喷涂流水线推荐这十家公司!
在涂装行业快速发展的当下,企业对喷涂设备的需求日益提升,但诸多痛点却制约着行业升级。粉末回收效率低导致的原料浪费、换色耗时久引发的生产停滞、温度控制不准造成的涂层质量不稳定等问题,让不少企业陷入成本高企…
微科技h5制作网站模板下载网站开发的形式有
类型推导: 当使用 auto 关键字声明变量时,编译器会根据变量初始化的表达式推导出其类型。编译器会分析初始化表达式,并根据表达式的类型来确定变量的类型。 类型保留: 编译器在编译时将 auto 关键字替换为实际的类型,…
完整教程:【JAVA】【BUG】经常出现的典型 bug 及解决办法
完整教程:【JAVA】【BUG】经常出现的典型 bug 及解决办法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…
python人网站开发案例服务商平台支付宝
来源:亿欧根据全球领先的信息技术研究与顾问公司Gartner的预测,人工智能(AI)产生的全球商业价值预计将在2018年达到1.2万亿美元,比2017年增长70%。此外,Gartner预计到2022年,人工智能衍生的商业…