Prometheus+Grafana 监控平台实践-搭建常用服务监控告警
前言
Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能
本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机&服务,分享日常使用的一些使用经验
文章较长,已安装可略过,推荐先看第三节 常用服务的 Prometheus+Grafana 配置
特点
- 成熟稳定且强大
- 丰富的插件,大部分情况都能满足
- 轻量级部署,资源占用少
使用情况
- 主要用来作为监控面板使用
- 使用 Grafana 监控:linux ,windows,redis,clickhouse,mongodb,mysql, RabbitMQ,站点情况
- 使用 Grafana 设置告警当服务出现无法访问时通知到企业微信群
- Grafana 版本问题,可能存在面板失效,需要做一些调整
使用 docker compose 安装 Prometheus
配置文件说明
-
prometheus 版本:v2.47.2
-
指定运行参数:
- 启动配置文件路径:
'--config.file=/etc/prometheus/prometheus.yml'
- 数据存储目录:
'--storage.tsdb.path=/prometheus'
- 数据保留时间:
'--storage.tsdb.retention.time=30d'
- 允许使用
curl -X POST ``http://localhost:9090/-/reload
重载其配置:'--web.enable-lifecycle'
- 指定 web 控制台配置,添加了账号密码:
'--web.config.file=/etc/prometheus/web-config.yml'
- 启动配置文件路径:
-
开放端口:9090
-
指定网络:devopsnetwork (
docker network create devopsnetwork
) -
挂载配置文件及数据目录,需要对数据目录进行创建及赋予权限:
mkdir prometheus_data && chown 65534 ./prometheus_data
关于持久化权限的讨论 -
用到了三个配置文件:compose.yml prometheus.yml web-config.yml
-
docker compose 文件:compose.yml
version: '3.1'
services:prometheus:restart: alwayscontainer_name: prometheusimage: prom/prometheus:v2.47.2command:# 配置文件- '--config.file=/etc/prometheus/prometheus.yml'# 指定web面板账号密码访问- '--web.config.file=/etc/prometheus/web-config.yml'# 数据目录- '--storage.tsdb.path=/prometheus'# 数据保留时间- '--storage.tsdb.retention.time=30d'# 运行使用 curl -X POST http://localhost:9090/-/reload 重载其配置- '--web.enable-lifecycle'volumes:# 需要权限 mkdir prometheus_data && chown 65534 ./prometheus_data- ./prometheus.yml:/etc/prometheus/prometheus.yml- ./prometheus_data:/prometheus- ./web-config.yml:/etc/prometheus/web-config.ymlports:- 9090:9090networks:- devopsnetworknetworks:devopsnetwork:external: true
-
prometheus 配置文件示例:prometheus.yml,
- 指定了 prometheus ,并设置了访问密码 root devops666
global:scrape_interval: 15s # By default, scrape targets every 15 seconds.# Attach these labels to any time series or alerts when communicating with# external systems (federation, remote storage, Alertmanager).external_labels:monitor: 'codelab-monitor'# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:- job_name: 'prometheus'scrape_interval: 5sstatic_configs:- targets: ['localhost:9090']# 启用了账号密码 web-config.yml basic_auth_users 需要配置basic_auth:username: rootpassword: devops666
-
web 控制台配置:web-config.yml
- 指定账号密码 root devops666
basic_auth_users:root: $2a$10$c6OOt9f6LuhiabPyW0nkNOprb1ndQ/HHSfqjB/exe7yh5FaYUqvBy
- 启动:
docker compose up -d
Prometheus 指定账号密码访问
- 设置 https 或基础密码验证文档
- 要启用 web 面板账号密码访问,指定 web 访问配置文件
'--web.config.file=/etc/prometheus/web-config.yml'
- 映射 web-config.yml 指定账号密码 root devops666 ,Prometheus 密码需要使用 htpasswd 生成 bcrypt 密码 在线生成工具
basic_auth_users:root: $2a$10$kmkC.lHR3Kwl19DE9l1KRerMDinEejEbNmJigrJZYAGkgzbVBUpa2
- 如果需要使用 Prometheus 监听 Prometheus ,并且 Prometheus 启用了身份验证,需要在配置出增加 basic_auth 配置节
scrape_configs:- job_name: 'prometheus'scrape_interval: 5sstatic_configs:- targets: ['localhost:9090']# 启用了账号密码 web-config.yml basic_auth_users 需要配置basic_auth:username: rootpassword: devops666
-
掉坑里去了,如果一开始 basic_auth 没有配置对,重载配置是无效的,需要重启
重载配置
修改了配置文件后,可以使用 api 接口重载配置,如果启用了账号密码可以使用 -u 参数指定(basic_auth 修改重载配置无效),没有就不需要加 -u 参数
curl -X POST http://localhost:9090/-/reload
或
curl -X POST -u root:devops666 http://localhost:9090/-/reload
添加 nginx 配置
还不会在局域网申请 ssl 及配置的可以参考之前的文章 前后端都用得上的 Nginx 日常使用经验
server {listen 80;listen 443 ssl;server_name prometheus.devops.test.com; # 自行修改成你的域名ssl_certificate /certs/prometheus.devops.test.com/server.crt;ssl_certificate_key /certs/prometheus.devops.test.com/server.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {proxy_pass http://prometheus:9090;proxy_http_version 1.1;proxy_buffering off;proxy_request_buffering off;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}
}
安装成功
根据上面的配置,完成了 Prometheus 的搭建,监听本身 Prometheus 的情况
通过https://prometheus.devops.test.com/
使用账号密码 root devops666 登陆后即可
使用 docker compose 安装 Grafana
Grafana 是一个开源的数据可视化和监控平台,它提供了丰富的图表和面板,用于展示各种指标和数据。提到 Prometheus,Grafana 自然是不不能落下,基于官方和社区,可以很快的制作出监控可视化面板,助力日常运维检测
配置文件说明
- grafana 版本:v10.2.0
- 指定账号密码: root devops666
- 端口映射:3000
- 挂载数据目录 ./grafana_data, 需要赋予权限:
mkdir -p grafana_data && chown -R 472:472 ./grafana_data
- 指定网络为 devopsnetwork(
docker network create devopsnetwork
) - docker compose 文件:compose.yml ,安装 v10.2.0 替换版本号即可
version: '3.1'
services:grafana:restart: alwayscontainer_name: grafanaimage: grafana/grafana:10.2.0ports:- "3000:3000"volumes:- ./grafana_data:/var/lib/grafanaenvironment:- GF_SECURITY_ADMIN_USER=root- GF_SECURITY_ADMIN_PASSWORD=devops666- GF_USERS_ALLOW_SIGN_UP=falsenetworks:- devopsnetworknetworks:devopsnetwork:external: true
- 启动:
docker compose up -d
添加 nginx 配置
server {
相关文章:

Prometheus+Grafana 监控平台实践-搭建常用服务监控告警
前言 Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机&服务,分享日常使用的一些使用经验 文…...

leaflet加载天地图:卫星底图(影响地图) 和 路网底图(矢量地图)【webgis】
文章目录 引言I 申请Key1.1 应用创建1.2 账号认证II 使用申请的key进行相关的服务调用2.1 服务API2.2 初始化地图组件2.3 加载影像底图和影像注记2.4 地理编码查询引言 自己没有对应的地图服务器和地理查询服务器的时候,使用天地图来实现业务的快速支撑。 基于天地图使用Leaf…...

微软蓝屏事件:全球网络安全与系统稳定性的警示
文章目录 每日一句正能量前言探讨软件更新流程中的风险管理和质量控制机制软件更新的风险风险管理策略质量控制措施测试流程缺陷识别实施质量控制结论 提供预防类似大规模故障的最佳方案或应急响应对策设计冗余系统实施灾难恢复计划建立高可用架构应急响应对策利用自动化工具和…...
【51单片机仿真】基于51单片机设计的整数/小数计算器系统仿真源码文档——文末资料下载
演示: 摘要 本项目设计并实现了一种基于51单片机的多功能计算器系统。系统采用STC89C52单片机作为主控制器,结合LCD显示模块、矩阵键盘等外设,实现了基本的整数、小数算术运算功能,包括加、减、乘、除、取模等。本文详细介绍了系统的硬件设计和软件实现,并对系统的功能和…...
ubuntu安装dockergitlab
#更换阿里云进行配置GPG 密钥 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [archarm64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" #如果出现错…...
自定义视图提示:提升Laravel用户体验的秘诀
自定义视图提示:提升Laravel用户体验的秘诀 在Laravel框架中,视图提示是一种向用户显示友好信息的方式,它们可以是表单输入后的错误信息、成功通知或其他重要的用户反馈。自定义视图提示不仅可以增强用户体验,还可以使应用程序的…...
关于黑马Ajax项目的笔记
一、token的介绍 概念: 访问权限的令牌,本质上是一串字符串 创建: 正确登录后,由后端签发并返回 作用: 判断是否有登录状态等,控制访问权限 注意 前端只能判断token有无,后端才能判断to…...

Java面试八股之JDK 动态代理和 CGLIB 动态代理的区别
JDK 动态代理和 CGLIB 动态代理的区别 JDK 动态代理和 CGLIB 动态代理都是在 Java 中实现动态代理的两种常见方式。它们各自有不同的特点和适用场景。下面详细介绍一下这两种动态代理的区别: 1. 代理机制 JDK 动态代理: 实现原理: JDK 动态代理基于 Java 的反射…...

验证码邮件接口测试指南?接口的优化策略?
验证码邮件接口集成步骤与注意事项?API接口设计要点? 在现代应用程序开发中,验证码邮件接口是保障用户安全和验证身份的重要工具。AokSend将详细介绍验证码邮件接口的测试指南,帮助开发者确保接口的稳定性和可靠性。 验证码邮件…...

基于Java的智能停车场管理系统
你好,我是计算机学姐码农小野!如果你对智能停车场管理系统感兴趣或有相关需求,欢迎私信联系我。 开发语言: Java 数据库: MySQL 技术: JSP技术 JAVA B/S架构 工具: 浏览器(…...

前后端分离开发遵循接口规范-YAPI
目前,网站主流开发方式是前后端分离。因此前后端必须遵循一套统一的规范,才能保证前后端进行正常的数据(JSON数据格式)请求、影响,这套规范即是 YAPI. 产品经理撰写原型; 前端或后端撰写接口文档。 YAPI…...
把本地的项目代码初始化到git仓库
cd /path/to/your/project# 在当前目录创建新的仓库 git init# 添加当前目录下的所有文件到暂存区 git add .# 添加commit message git commit -m "Initial commit"# 关联远程仓库 git remote add origin https://github.com/username/repository.git# 更改默认仓库&…...

白杨SEO:公众号如何找选题?如何利用ai工具写公众号?公众号变现方式有哪些?22个公众号营销常见问题解答大全!
前言:为什么分享这个?因为我发现不管是SEO从业者还是自媒体从业者,想通过公众号来做影响力或流量,甚至变现,但很多朋友公众号都没弄懂,所以分享一下。 分享问题大纲如下: 1、公众号如何申请注册…...
零基础学习深度学习以及模块缝合总结
Python基础知识 推荐视频:黑马程序员python教程,8天python从入门到精通,学python看这套就够了_哔哩哔哩_bilibili 工具和资源:PyTorch、Zotero、谷歌学术、Github、B站、ChatGPT等。 深度学习基本知识 张量维度表示:…...

XXE-lab-master靶场:PHP_xxe
目录 有回显 测试回显位置 构建payload 无回显数据外带 构建payload 漏洞修复 XXE-lab是一个一个包含php,java,python,C#等各种语言版本的XXE漏洞靶场。 下载地址:https://github.com/c0ny1/xxe-lab 将PHPStudy的中间件与版本信息调制为 php-5.4.29Apache 以…...

视图,存储过程和触发器
目录 视图 创建视图: 视图的使用 查看库中所有的视图 删除视图 视图的作用: 存储过程: 为什么使用存储过程? 什么是存储过程? 存储过程的创建 创建一个最简单的存储过程 使用存储过程 删除存储过程 带参的存储…...

sqli-labs(6-10)关通关讲解
sqli-labs(6-10)关通关讲解 Less-6 方法一:手工注入 1.判断闭合 http://localhost/sqli-labs/Less-6/?id1" //报错 http://localhost/sqli-labs/Less-6/?id1" -- //正常 http://localhost/sqli-labs/Less-6/?id1" and 11 -- http://localhos…...

【解决方法】git clone出现 curl 56 OpenSSL SSL_read: Connection was reset, errno 10054
当我们克隆别人的项目出现以下提示信息时候 remote: Enumerating objects: 7095, done. error: RPC failed; curl 56 OpenSSL SSL_read: Connection was reset, errno 10054 error: 2292 bytes of body are still expected fetch-pack: unexpected disconnect while reading s…...

机械拆装-基于Unity-本地数据持久化
目录 1. 数据结构简介:数据的集合 1.1 线性数据结构 1.2 非线性数据结构 2. 对数据集合的操作: 3. 数据持久化 3.1 数据的序列化存储 3.2 JSON文件硬盘存储 3.2.1 Json文件允许存储的数据类型 3.2.2 Json文件的语法格式 3.2.3 Json文件的读取 3.2.4 …...
【SpringBoot】4.3.5 参数传递之ModelAndView对象
ModelAndView也是SpringMVC中常用的数据返回对象。当控制器处理完请求时,通常会将包含视图对象和数据的ModelAndView对象一起返回前台。它的作用类似request对象的setAttribute()方法。 ModelAndView对象有两个作用: 1)设置转向地址(这也是ModelAndView和ModelMap的…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...