【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数据时不兼容。

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

相关推荐
观测云2 小时前
通过 Grafana 使用 PromQL 查询分析观测云数据最佳实践
grafana
ʚ希希ɞ ྀ3 小时前
跳跃游戏||----超全写详细解
1024程序员节
wjt1020203 小时前
YOLO5目标检测(续)
1024程序员节
努力学习的小廉3 小时前
我爱学算法之—— 分治-归并
c++·算法·1024程序员节
、、、、南山小雨、、、、3 小时前
pytorch下对各种超参调整效果
1024程序员节
风清再凯3 小时前
02_prometheus监控&Grafana展示
prometheus·1024程序员节
心灵宝贝3 小时前
申威服务器安装Java11(swjdk-11u-9.ky10.sw_64.rpm)详细操作步骤(附安装包)
1024程序员节
傻童:CPU3 小时前
C语言需要掌握的基础知识点之链表
c语言·1024程序员节
乐之者v3 小时前
Mac常用软件
java·1024程序员节