概述
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
之后图标经过之前的配置能正常显示: