Prometheus 监控
Prometheus 监控系统的架构包括以下组件:
Prometheus Server:
Prometheus 服务器是监控系统的核心组件,负责收集、存储和处理指标数据。它定期从各种数据源(如 Exporter、Agent 等)拉取指标数据,并将其存储在本地的时序数据库中。Prometheus 服务器还提供了强大的查询语言(PromQL),用于对数据进行实时查询和分析。
Exporter:
Exporter 是用于从不同数据源中收集指标数据的组件。Prometheus 社区提供了许多官方 Exporter,如 Node Exporter(用于收集主机级别的系统指标)、Blackbox Exporter(用于进行健康检查)、MySQL Exporter(用于监控 MySQL 数据库)等。此外,还有许多第三方 Exporter 可用于监控各种不同类型的应用程序和服务。
Push Gateway:
Push Gateway 是一个中间件组件,用于接收短暂性作业(如批处理任务、临时服务等)生成的指标数据,并将其暂时存储在内存中,以便被 Prometheus 服务器拉取。这使得 Prometheus 能够监控短暂性作业,而无需这些作业一直在线。
Alertmanager:
Alertmanager 是用于处理和发送警报的组件。它与 Prometheus 集成,负责管理警报规则、接收来自 Prometheus 服务器的警报通知,并根据配置的策略进行处理,如抑制重复警报、分组、静默等,然后将警报发送到各种通知渠道(如电子邮件、Slack 等)。
存储:
Prometheus 使用本地磁盘存储时序数据库,以存储收集到的指标数据。这使得 Prometheus 能够快速高效地查询历史数据,并支持灵活的数据保留策略。此外,Prometheus 还支持与远程存储系统(如 InfluxDB、Google Cloud Storage 等)集成,以实现长期存储。
Grafana:
尽管 Grafana 不是 Prometheus 的一部分,但它经常与 Prometheus 一起使用,用于创建仪表盘、图表和报表,以实时展示和分析监控数据。Grafana 提供了丰富的可视化功能,使用户能够直观地了解系统的运行状态和性能指标。
整个 Prometheus 监控系统的架构设计灵活且模块化,可以根据具体的需求和场景进行定制和扩展。通过合理配置和组合各种组件,可以构建一个高效、稳定且功能丰富的监控解决方案,帮助用户实时监控和管理其 IT 基础架构和应用程序。
准备
- 两台虚拟机
192.168.100.125 Prometheus端
192.168.100.126 node端
- 开放防火墙端口
更改防火墙
在两台机器执行
请运行以下命令以开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --zone=public --add-port=9115/tcp --permanent
firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --zone=public --add-port=9100/tcp --permanent
firewall-cmd --reload
-
打开 SELinux 的配置文件
vi /etc/selinux/config
-
在打开的配置文件中,找到
SELINUX
这一行。这一行可能设置为enforcing
(强制模式)或permissive
(宽容模式)。如果你想要将 SELinux 设置为宽容模式,确保这一行的值是permissive
:SELINUX=permissive
-
保存并关闭文件。如果你使用的是 vi 编辑器,按
Esc
,然后输入:wq
并按Enter
来保存并退出。 -
为了让新的 SELinux 配置生效,你需要重启你的系统:
reboot
-
或者,你也可以尝试使用
setenforce
命令临时将 SELinux 设置为宽容模式,但这只是临时的,重启后 SELinux 会恢复到配置文件中的设置:setenforce 0
一、Prometheus 部署
Prometheus:
Prometheus 是一种开源的系统监控和警报工具包。它最初由 SoundCloud 开发,现已成为 CNCF(云原生计算基金会)的一部分。Prometheus 具有多维数据模型和灵活的查询语言,可实时收集和存储各种系统指标,如 CPU 使用率、内存使用率、磁盘空间、网络流量等。它支持通过 HTTP 等多种方式进行数据抓取,并能够对数据进行长期存储和分析。
以下在 Prometheus 端执行
- 下载 wget
yum install wget
- 在线下载
wget https://github.com/prometheus/prometheus/releases/download/v2.37.2/prometheus-2.37.2.linux-amd64.tar.gz
或者(可能更快)
wget https://githubfast.com/prometheus/prometheus/releases/download/v2.37.2/prometheus-2.37.2.linux-amd64.tar.gz
</