1 概述 && 架构
1.1 说明
为了实现整个 Prometheus 监控系统的统一查询入口,并将历史数据进行一致性存储,示例采用 Thanos 构建解决方案。该方案具备以下特点:
-
提供 Prometheus 的统一查询入口和历史数据的一致性保存。
-
Thanos Querier 兼容 Prometheus 接口,使 Grafana 能够直接利用 Prometheus 数据源进行监控。
-
Thanos 包含以下组件:
通过 Thanos + Prometheus 的部署,客户将构建一个分布式的查询和持久性存储功能的 Prometheus 监控系统。
1.2 基础架构图
2 环境部署
2.1 初始化配置
# 修改打开文件数
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
EOF
# 禁用 selinux && 禁用 firewalld
setenforce 0 && sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && getenforce
systemctl disable firewalld && systemctl stop firewalld
# 停止 swap, fstab 关闭 swap 自启动
swapoff -a
vim /etc/fstab
# 创建 Prometheus 用户
useradd -s /sbin/nologin prometheus
# 创建 Prometheus 存储目录
/data/prometheus
2.2 Prometheus 部署
2.2.1 下载 & 安装 Prometheus
# 下载 Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
# 解压 Prometheus
tar xf prometheus-2.45.0.linux-amd64.tar.gz
# 移动到工具目录
mv prometheus-2.45.0.linux-amd64 /usr/local/prometheus
# 配置 Prometheus 权限
chown prometheus.prometheus -R /usr/local/prometheus/
chown prometheus.prometheus -R /data/prometheus
2.2.2 Prometheus 服务配置
# vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/data/prometheus \
--storage.tsdb.min-block-duration=2h \
--storage.tsdb.max-block-duration=2h \
--web.enable-admin-api \
--web.enable-lifecycle \
[Install]
WantedBy=multi-user.target
2.2.3 Prometheus 启动 && 开机启动
systemctl start prometheus.service
systemctl enable prometheus.service
3. 参考资料
Prometheus 安装包