多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] **注意:**通常不需要 Compactor 的高可用性。 `thanos compact` 命令应用 Prometheus 2.0 存储引擎的压缩过程来阻止存储在对象存储中的数据。它通常在语义上不是并发安全的,并且必须部署为针对存储桶的单例。 Compactor、Sidecar、Receive 和 Ruler 是唯一应该对对象存储具有写访问权限的 Thanos 组件,只有 Compactor 能够删除数据。 ## 创建数据目录 ```shell sudo mkdir -p /data/thanos/compact sudo chown -R ops. /data/thanos/ ``` ## 创建systemd服务 ```shell cat <<-EOF | sudo tee /usr/lib/systemd/system/thanos-compact.service > /dev/null [Unit] Description=thanos-compact Documentation=https://thanos.io/ After=network.target [Service] Type=simple User=ops Group=ops ExecStart=/usr/local/bin/thanos compact --log.format=json \\ --http-address=127.0.0.1:10909 \\ --data-dir=/data/thanos/compact \\ --compact.concurrency=8 --wait \\ --objstore.config-file=/data/thanos/thanos-minio.yml ExecReload=/usr/bin/kill -HUP TimeoutStartSec=20s Restart=always LimitNOFILE=20480000 [Install] WantedBy=multi-user.target EOF ``` > 1. 默认情况下,thanos compact 将运行完成,这使得它可以作为 cronjob 执行。使用参数 --wait 和 --wait-interval=5m 可以让它保持运行。 > 2. 建议提供 --compact.concurrency 数量的 CPU 内核。 ## 启动服务 ```shell systemctl daemon-reload systemctl enable --now thanos-compact.service systemctl is-active thanos-compact.service ``` ## 验证 ```shell $ curl localhost:10909/-/healthy && echo OK ``` ## 参考文档 https://thanos.io/tip/components/compact.md/