1.Prometheus的介绍
Prometheus是一个开源系统监控和警报工具包。Prometheus将其指标收集并存储为时间序列数据,即指标信息与记录的时间戳一起存储,以及称为标签的可选键值对。
特征:
- 一个多维数据模型,具有由指标名称和键/值对标识的时间序列数据
- PromQL,一种利用这种维度的灵活查询语言
- 不依赖分布式存储;单个服务器节点是自治的
- 时间序列收集通过HTTP上的拉模型发生
- 通过中间网关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 多种图形和仪表板支持模式
组件:Prometheus生态系统由多个组件组成,其中许多是可选的 - 抓取和存储时间序列数据的主要Prometheus服务器
- 用于检测应用程序代码的客户端库
- 支持短期工作的推送网关
- HAProxy、StatsD、Graphite等服务的专用出口商
- 一个警报管理器来处理警报
- 各种支持工具
下图是Prometheus的架构及其一些生态系统组件:
Prometheus为何使用拉而不是推
拉取 HTTP 提供了许多优点:
- 开发更改时,您可以在笔记本电脑上运行监控。
- 您可以更轻松地判断目标是否已关闭。
- 您可以手动转到目标并使用 Web 浏览器检查其运行状况。
总的来说,我们认为拉比推略好,但在考虑监控系统时,不应将其视为重点。
对于必须推送的情况,提供Pushgateway。
2.在监控服务器上安装prometheus
下载二进制安装包
[root@localhost ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz
解压安装包
[root@localhost ~]# tar -vzxf prometheus-2.28.1.linux-amd64.tar.gz -C /usr/local/prometheus
添加软链接
[root@localhost ~]# ln -sv /usr/local/prometheus/prometheus /usr/bin/prometheus
配置systemd管理
cat > /usr/lib/systemd/system/prometheus.service << EOF
[Unit]
Description=https://prometheus.io
[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
[Install]
WantedBy=multi-user.target
EOF
设置为开启自启动
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start prometheus
[root@localhost ~]# systemctl enable prometheus
浏览器访问地址:http://ip:9090
查看当前抓取的数据地址:http://ip:9090/metrics