系列文章目录
- Prometheus 的安装部署
- Grafana的安装部署
- Linux服务器接入Prometheus监控-Node Exporter 安装指南
- Prometheus 接入SpringBoot微服务监控
- Mysql 接入 Prometheus
- RocketMQ 接入Prometheus 监控
- ElasticSearch 接入 Prometheus
- Nacos 接入 Prometheus 监控
- Redis 接入 Prometheus 监控系统
- Prometheus + Grafana 监控系统-告警规则配置
- Prometheus + Grafana 监控系统-PrometheusAlert安装与配置指南
简介
-
整体架构图
-
Prometheus
- Prometheus是一个开源的系统监控和警报工具包。它具有多维数据模型和强大的查询语言,可帮助您有效地监控应用程序和基础设施。
- Prometheus 是由谷歌研发的一款开源的监控软件,它通过安装在远程机器上的 exporter,通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上
-
Grafana
- Grafana是一个开源的数据可视化和监控平台,它允许您通过图表和图形直观地展示和分析监控数据。
-
重要概念
- Exporters
- Exporters是用于将各种类型的监控数据导出到Prometheus的中间件。它们允许Prometheus监控不同类型的系统和服务,如数据库、操作系统等。
- 数据源
- 在Grafana中,数据源是指用于连接到外部数据源的配置。Prometheus作为数据源可以让Grafana获取监控数据并进行可视化展示。
- 仪表板
- 仪表板是Grafana中用于展示监控数据的可视化界面。它可以包含多个图表和面板,用于呈现各种监控指标和数据。
- 警报规则
- 警报规则用于定义在监控数据达到特定条件时应触发的警报。这些规则可以在Prometheus中定义,并集成到Grafana中进行管理和显示。
- Exporters
搭建指南
建议搭建配置顺序: Prometheus --> Grafana --> 各种Explorer --> 告警规则配置
下文将重点介绍 Prometheus 的搭建过程。
安装和配置 Prometheus
Prometheus Server 主要负责数据的收集,存储并且对外提供数据查询支持。
-
下载最新版本的Prometheus:
- 下载链接: Prometheus Releases
sh# 下载,解压 wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz tar -xvf prometheus-*.tar.gz # 将Prometheus二进制文件复制到生产服务器的合适位置: # /usr/local/bin/prometheus
-
配置prometheus.
-
配置prometheus.yml文件,定义监控目标和规则
- 示例配置文件:prometheus.yml Example
ymlglobal: scrape_interval: 15s # 定义全局的抓取间隔,这里设置为每15秒抓取一次数据 scrape_configs: - job_name: 'node' # 定义作业名称,这里以监控节点为例 static_configs: - targets: ['node1:9100', 'node2:9100'] # 定义要监控的目标节点及其端口,这里假设节点1和节点2上运行了Node Exporter并监听在9100端口 # 可以添加更多的作业,用于监控其他类型的目标,比如数据库、消息队列等 - job_name: 'mysql' static_configs: - targets: ['mysql1:9104'] # 假设MySQL Exporter监听在9104端口 # 可以继续添加其他作业和目标
-
指定数据存储位置
在早期版本中可以在prometheus.yml中配置storage.tsdb.path,但是从Prometheus 2.0版本开始,官方更倾向于将数据存储路径作为命令行参数传递给Prometheus。,而不是在配置文件中指定。这是因为数据存储路径通常被视为运行时配置,而不是静态配置。
您可以在启动命令中通过 --storage.tsdb.path参数来指定数据存储位置。
sh./prometheus --config.file=prometheus.yml --storage.tsdb.path=/path/to/data
- --storage.tsdb.path参数指定了数据存储的路径。这样的做法可以将数据存储位置与配置文件分离,使得配置文件更加清晰和易于管理。
-
-
启动Prometheus服务器:
- 启动命令:./prometheus --config.file=prometheus.yml
- 验证prometheus是否启动成功,prometheus默认端口为: 9090
- 数据可视化:
- Prometheus 自带了 Web Console, 安装成功后可以访问 http://localhost:9090/graph 页面,用它可以进行任何 PromQL 查询和调试工作,非常方便
- Grafana : Grafana 是一套开源的分析监视平台,支持 Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, CloudWatch 等数据源,其 UI 非常漂亮且高度定制化。
-
建议:创建 Prometheus 服务来管理,而不是直接命令行启动
-
创建一个systemd服务单元文件,以便Prometheus可以作为服务在后台运行。
- 服务单元文件示例(/etc/systemd/system/prometheus.service):
sh[Unit] Description=Prometheus After=network.target [Service] ExecStart=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/path/to/data Restart=always [Install] WantedBy=multi-user.target
- 如果需要修改web监听端口,则增加启动参数: --web.listen-address=":9091"
-
启动 Prometheus 服务
- 启动Prometheus服务并设置开机自启:
- 启动服务命令:sudo systemctl start prometheus
- 设置开机自启命令:sudo systemctl enable prometheus
-
查看日志
日志位置:如果你使用systemd作为服务管理器启动Prometheus,那么日志通常会被记录到systemd的日志系统中。
journalctl -u prometheus.service
-
查看所有可用的命令行参数
./prometheus -h
-
-
其他
- 配置防火墙和安全组
- 如果您的生产环境使用防火墙或安全组,请确保允许Prometheus的端口(默认为9090)通过防火墙或安全组。
- 集成各种 Exporters 和 Alertmanager
在Prometheus的配置文件中添加各种Exporters的监控目标,并配置Alertmanager以便处理警报通知。
如果需要动态添加或修改监控目标,通常的做法是修改prometheus.yml配置文件,然后重新加载或重启Prometheus服务。
* 注意:在某些情况下,可以使用Prometheus的API来动态修改配置,但这需要谨慎操作,因为配置的动态修改可能会影响Prometheus的稳定性和性能。
- 配置防火墙和安全组