Prometheus 是一个开源的监控和告警系统,最初由 SoundCloud 开发,后来成为 Cloud Native Computing Foundation (CNCF) 的一个项目。它用于收集和存储时间序列数据,特别适用于监控大规模分布式系统和微服务架构。
核心特点:
-
时间序列数据存储:Prometheus 使用高效的时序数据模型来存储时间序列数据。每个数据点由时间戳和一组标签组成,这使得它非常适合用于监控和日志分析。
-
拉取模型:Prometheus 使用拉取的方式从目标系统获取数据,而不是像很多其他监控工具那样让目标系统主动推送数据。通过配置 HTTP 接口,Prometheus 会定期访问目标系统来获取指标。
-
灵活的查询语言 (PromQL):Prometheus 提供了一种强大的查询语言——PromQL (Prometheus Query Language),用来提取、聚合和处理时间序列数据,支持各种查询操作,比如过滤、聚合、计算差异等。
-
自带告警功能:Prometheus 可以根据设定的规则进行告警,并通过 Alertmanager 管理告警的路由、抑制和通知。
-
支持多种可视化工具:Prometheus 可以与各种可视化工具集成,如 Grafana,用于展示监控数据的图表和仪表板。
-
高度可扩展:Prometheus 设计时考虑到高效性和扩展性,可以通过水平扩展来应对大规模系统和大量数据的需求。
使用场景:
- 基础设施监控:监控服务器、容器、数据库、网络设备等各种基础设施资源。
- 应用性能监控:通过监控应用的业务指标,帮助开发团队了解应用的健康状况。
- 告警和故障检测:基于实时数据生成告警,帮助团队在出现异常时及时响应。
总之,Prometheus 因其简洁的设计、高效的数据模型和灵活的查询能力,成为了现代云原生环境中非常流行的监控工具。
安装部署
下载官网:下载 |普罗 米修斯
选择对应操作系统的版本,我这个选择的linux系统,先下载到本地 如何使用Xftp 工具上传到linux服务器上面。
#解压命令
tar -xvzf prometheus-3.1.0.linux-amd64.tar.gz
#进入解压后的目录
cd prometheus-3.1.0.linux-amd64/
#在这个目录下,你会看到 prometheus 可执行文件。你可以使用以下命令来启动 Prometheus
./prometheus --config.file=prometheus.yml
#默认情况下,Prometheus 会启动并监听在 http://localhost:9090,你可以在浏览器中访问它。
#补充建议:
防火墙设置:如果你的服务器启用了防火墙,确保打开 9090 端口。
sudo firewall-cmd --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
安装完成
加入systemd 管理
创建 systemd 服务文件 /etc/systemd/system/prometheus.service
:
sudo vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/root/prometheus-3.1.0.linux-amd64/prometheus --config.file=/root/prometheus-3.1.0.linux-amd64/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
WorkingDirectory=/root/prometheus-3.1.0.linux-amd64
[Install]
WantedBy=multi-user.target
重新加载 systemd 配置并启动 Prometheus 服务:
sudo systemctl daemon-reload
sudo systemctl start prometheus
打开浏览器并访问 http://localhost:9090
,你应该能看到 Prometheus 的 Web 界面。
#日志和调试:你可以使用以下命令查看 Prometheus 服务的日志来诊断问题
sudo journalctl -u prometheus -f
#查看 /root/prometheus-3.1.0.linux-amd64/data 目录中的文件是否被其他进程占用
lsof +D /root/prometheus-3.1.0.linux-amd64/data
#修改访问端口 ./prometheus --config.file=prometheus.yml 命令
后面加参数 把9100换成你先设置的端口
--web.listen-address=:9100 &
#打开防火墙端口
sudo firewall-cmd --add-port=9100/tcp --permanent
sudo firewall-cmd --reload