【prometheus+Grafana篇】避坑指南:实践中常见问题与解决方案总结整理(持续更新...)

💫《博主主页》:

🔎 CSDN主页__奈斯DB

🔎 IF Club社区主页__奈斯、
🔥《擅长领域》:擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(Redis)有了解
💖如果觉得文章对你有所帮助,欢迎点赞收藏加关注💖

这篇文章主要是整理一下博主在部署以及运维prometheus和Grafana时踩过的那些"坑"😅。从配置到启动,从监控到展示,每一个坑都是博主亲自踩过、实测解决的!

并且这篇"避坑指南"博主会一直更新下去,后续遇到新坑也会同步在这里。看在博主为爱发电🆓 疯狂"填坑"的份上,求个点赞❤️收藏⭐加关注✅方便各位大佬回头抄作业!

prometheus+Grafana全系列文章(实时更新🔥):

序号 文章
1 【prometheus+Grafana篇】Prometheus与Grafana:深入了解监控架构与数据可视化分析平台
2 【prometheus+Grafana篇】从零开始:Linux 7.6 上二进制安装 Prometheus、Grafana 和 Node Exporter
3 【prometheus+Grafana篇】Prometheus告警规则参数全解析 + Alertmanager实现多平台告警(含电子邮件/企业微信群/飞书群/钉钉群接受方式)
4 【prometheus+Grafana篇】PromQL核心函数解析:rate()与irate()函数详解
5 【prometheus+Grafana篇】避坑指南:实践中常见问题与解决方案总结整理(持续更新...)
6 【prometheus+Grafana篇】基于Prometheus+Grafana实现Linux操作系统的监控与可视化
7 【prometheus+Grafana篇】基于Prometheus+Grafana实现windows操作系统的监控与可视化
8 【prometheus+Grafana篇】基于Prometheus+Grafana实现Oracle数据库的监控与可视化
9 【prometheus+Grafana篇】基于Prometheus+Grafana实现MySQL数据库的监控与可视化
10 【Prometheus+Grafana篇】监控通过Keepalived实现的MySQL HA高可用架构
11 【prometheus+Grafana篇】基于Prometheus+Grafana实现MongoDB数据库的监控与可视化
12 【prometheus+Grafana篇】基于Prometheus+Grafana实现Redis数据库的监控与可视化
13 【prometheus+Grafana篇】基于Prometheus+Grafana实现postgreSQL数据库的监控与可视化
14 【prometheus+Grafana篇】基于Prometheus+Grafana实现SQLserver数据库的监控与可视化

点赞、收藏、加关注,填坑路上不迷路!


目录


一、Prometheus常见问题与解决办法总结:

问题一:

  • 描述: 如果安装的Prometheus监控服务器上的时间,和在打开Prometheus的PC电脑上的时间不一致,会在打开Prometheus的时候提示时间误差的信息,但并影响Prometheus采集监控数据。
  • 解决办法: Prometheus监控服务器的时间需要为北京时间,同样的访问Prometheus的PC电脑也需要为北京时间。

问题二:

  • 描述: Prometheus大面积获取监控数据失败,查看/var/log/messages系统日志记录,有大量的too many open files报错
  • 解决办法: 从systemd v230 开始,PAM 和 1imits.conf 对服务进程不再生效,systemd 服务的资源限制优先由systemd 配置控制,而不是limits.conf。这也就导致了在 /etc/security/limits.conf 文件中配置的参数不会对通过 systemctl 启动的服务进程生效,因此 limits.conf 文件中配置的参数只会对通过登录shell启动的用户进程有效(如 SSH 登录后运行命令)和直接在命令行中启动的服务有效(启动命令直接在命令行中执行的,不是通过systemctl服服务启动的)。对于systemd管理的服务(systemctl status service服务)其资源限制由 systemd 自身配置决定,完全忽略 /etc/security/limits.conf 文件中的配置,需要在配置启动参数文件时加上对limited的限制。必须要加上对"打开文件数"的limited限制,不然在Prometheus监控的机器多了的时候会在/var/log/messages系统日志记录大量的too many open files报错。

问题二的复现:通过systemd启动的Prometheus进程,没有应用limits.conf文件配置的案例
1)Prometheus大面积获取监控数据失败,查看/var/log/messages系统日志记录,有大量的too many open files报错

sql 复制代码
[root@app-prod-prometheus ~]# tail -200f /var/log/messages


2)查看Prometheus相关进程打开的所有文件总数:

sql 复制代码
[root@app-prod-prometheus ~]#ps -ef | grep prometheus
[root@app-prod-prometheus ~]#lsof -p 4816 | wc -l       ###统计这个进程打开的文件总数(包括网络连接、管道、共享库等)。

可以看到Prometheus相关进程总共打开了七千+个文件(包括网络连接、管道、共享库等)


3)在limits.conf文件中配置了影响所有用户的软限制和硬限制,但因从systemd v230 开始,PAM 和 1imits.conf 对服务进程不再生效

sql 复制代码
[root@app-prod-prometheus ~]# more /etc/security/limits.conf    ### "*"表示影响所有用户的软限制和硬限制


4)在配置启动参数文件时加上对"打开文件数"的limited限制

sql 复制代码
# Sets open_files_limit
LimitNOFILE = 65536    ### 每个进程可打开的最大文件数(关键参数,避免"Too many open files"错误)  
LimitNPROC = 65536     ### 每个用户可创建的最大进程数(影响可启动的并行进程数量)


5)然后通过cat /proc/服务进程PID/limits,查看限制有没有生效,默认Max open files值为4096

sql 复制代码
[root@app-prod-prometheus ~]# cat /proc/4816/limits

二、Grafana常见问题与解决办法总结:

问题一:

  • 描述: 如果安装Grafana服务器上的时间,和在打开Grafana的电脑上的时间不一致,那么在仪表盘查看图形化数据时,会出现部分图形化数据显示 No data ,直接导致看不到监控数据。
  • 解决办法: Grafana服务器的时间需要为北京时间,同样的访问Grafana的PC电脑也需要为北京时间。

问题二:

  • 描述: Grafana的监控仪表盘和Prometheus的版本是存在兼容性的,如果Prometheus或者Grafana的版本太高或太低会导致监控仪表盘可能获取不到数据。
  • 解决办法: 还没有在官网上找到关于Prometheus与Grafana兼容性的对应文档,只能在工作中遇到了再进行总结。目前已知的兼容性问题如下:
    1. Oracle的监控仪表盘因为Prometheus的版本太高导致仪表盘获取不到数据,表空间和总览部分显示No data ,Grafana的版本为10.4.5,然后将Prometheus从2.47版本替换成2.45版本就没有问题了,原因是因为高版本Prometheus的监控指标项的获取格式变了,从而导致低版本的Grafana抓取Prometheus数据时不兼容。

目前博主踩过的坑有这些,后续也会继续更新到这篇文章上面,希望这篇《踩坑实录》能帮大家少走弯路,看在博主熬夜掉发、为爱发电的份上,记得三连~ 你们的支持,就是我继续"填坑"的动力!❤️

相关推荐
草莓熊Lotso9 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
历程里程碑9 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
七夜zippoe17 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Fcy64819 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满19 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠19 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey90319 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技20 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀21 小时前
Linux环境变量
linux·运维·服务器
zzzsde21 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器