Featured image of post Java工程师 运维监控[01] Prometheus && Grafana

Java工程师 运维监控[01] Prometheus && Grafana

🌏Java工程师 运维 🎯 这系列文章用于记录 运维监控【01】 Prometheus && Grafana 相关的学习和总结

概述

Prometheus这个名字来源于希腊神话中的泰坦神普罗米修斯(Prometheus)。在神话中,普罗米修斯因偷火给人类而闻名,他代表了智慧和对人类福祉的贡献。他的名字在希腊语中意味着“先见之明”(pro- “before” + manthano “I learn” 或 “forethought”)。

给监控系统取名为Prometheus,寓意着它能够预见系统可能发生的问题,并通过监控和警报提前警告用户,帮助避免潜在的灾难性事件。就像普罗米修斯给人类带来了火种,Prometheus监控系统给系统管理员带来了对即将发生问题的洞察力。

Prometheus是一个开源的系统监控和警报工具套件,常用于记录实时的时间序列数据。它通过采集和存储指标(metrics),提供了强大的查询语言(PromQL)来让用户检索和分析这些数据。

Grafana是一个开源的数据可视化和监控平台。它允许用户通过图表、面板等方式将数据以图形界面展示出来,支持多种数据源,包括但不限于Prometheus。Grafana使得监控数据更加直观易懂,便于分析和分享。

Prometheus提供了监控数据的原材料,而Grafana则将这些数据转化为直观的图表和仪表板。

Prometheus 监控原理

原图由博客[1]获取 自行添加文字注释 一图胜千言:

部署Prometheus

部署node_exporter

(1)上传安装包

(2)解压并进入解压目录 执行:nohup ./node_exporter &

(2.1)查看运行日志

(2.2)查看端口占用情况 ss -naltp | grep 9100

安装Prometheus

(1)上传安装包

(2)解压并 vi prometheus.yml

scrape_configs配置项下添加Linux监控的job,其中 IP修改为上面部署 node_exporter机器的ip,端口号为9100,注意缩进:

- job_name: 'node'  
  static_configs:  
  - targets: ['127.0.0.1:9100'] 

(3)保存配置文件,启动prometheus并查看启动成功日志

(4)打开服务器9090端口

(5)浏览器访问prometheus监控页面:http://{ip}:9090

查看Prometheus自带的图像效果:

部署Grafana

下载安装grafana

(1)下载wget https://dl.grafana.com/oss/release/grafana-8.0.6-1.x86_64.rpm

(2)安装yum install -y ./grafana-8.0.6-1.x86_64.rpm

(3)启动Grafana服务: 安装完成后,启动Grafana服务,并设置开机自启。

命令sudo systemctl daemon-reload的作用是重新加载systemd的配置,而无需重启服务或整个系统。

sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

配置Grafana

Grafana的配置文件通常位于/etc/grafana/grafana.ini。可根据需要配置。

(1)支持数据展示模板 添加如下配置信息:

[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards

(2)下载安装mysql监控的dashboard(包含相关的json文件,这些json文件可以看作是开发人员的一个监控模板)

cd /var/lib/grafana
#Linux上下载不下来可自行下载后上传到Linux
git clone https://github.com/percona/grafana-dashboards.git 
#拷贝数据图表模板
cp -r ./grafana-dashboards-main/dashboards/ /var/lib/grafana/
#重启grafana
systemctl restart grafana-server

访问Grafana

更新防火墙规则(如果有必要): 如果服务器运行的是防火墙,你可能需要添加规则来允许访问Grafana的端口(默认是3000)。

sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

访问Grafana Web界面: 打开浏览器并访问http://<server-ip>:3000,其中<server-ip>是你的服务器IP地址。使用默认的管理员账号admin和密码admin登录。

用admin账号登录:

Grafana展示Prometheus监控的数据库数据源

部署mysqld_exporter

(1)上传安装包

(2)解压缩

(3)配置服务器的MySQL信息

(4)启动mysql_exporter 执行nohup ./mysqld_exporter --config.my-cnf=./.my.cnf &

(5)验证mysqld_exporter是否启动 ss -naltp | grep 9104

(6)让Prometheus可以拉取mysqld节点的信息

添加如下配置:

- job_name: 'mysql'
    static_configs:
    # if the ip is remote then give ip addr
    - targets: ['localhost:9104']

(7)重启Prometheus

nohup ./prometheus --config.file=./prometheus.yml

这个时候,查看Prometheus的界面信息如下:

Grafana添加数据源

点击第六步后:

(2)导入模板数据: 打开 grafana 官网,查找官网提供的 prometheus 监控模板(链接: https://grafana.com/grafana/dashboards.)

(2.1)选择此模板

(2.2)拷贝此模板ID并填充,点击Load

(2.3)选择Prometheus并点击Import

但是当前无数据:

(2.4 )分析原因

将其修改为

当前只有一个页面有部分数据,具体问题需要后面进行排查:

最终解决方案 -> 切换Grafana的版本为11.0.2

之后图标经过之前的配置能正常显示:

参考文章列表

[1] Linux集群监控部署: prometheus 普罗米修斯 + Grafana(超详细)

Licensed under CC BY-NC-SA 4.0