补齐 OpenBao 内部健康与快照新鲜度告警
Co-authored-by: panxiao81 <[email protected]>
This commit was merged in pull request #163.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# OpenBao 监控运维
|
||||
|
||||
受鉴权 `/v1/sys/metrics` 通过 vmagent 内的 Bao Agent 使用 Kubernetes 身份采集。
|
||||
`metrics` policy 仅允许读取该路径;policy 和 role 由 `terraform/monitoring.tf` 管理。
|
||||
|
||||
Bao VM 的 Ubuntu `prometheus-node-exporter` 软件包监听 `192.168.10.8:9100`,
|
||||
由 `ansible/roles/openbao_monitoring` 管理。仅供内网监控,不配置公共入口;
|
||||
现场 UFW 未启用,故当前边界是 LAN 地址绑定,并非逐来源访问控制。
|
||||
标准主机指标复用 `job=node-exporter` 的主机告警,额外标记 `node=bao1`。
|
||||
|
||||
首次部署前需要 bootstrap 已创建 `/etc/openbao/snapshot.token` 和快照目录。
|
||||
只更新监控与快照运行文件(不会重启 Bao 或轮换 token):
|
||||
|
||||
```bash
|
||||
cd ansible
|
||||
ansible-playbook monitor-openbao.yml --check
|
||||
ansible-playbook monitor-openbao.yml
|
||||
# 在 bao1 上执行一次真实快照,建立成功基线:
|
||||
sudo systemctl start openbao-snapshot.service
|
||||
```
|
||||
|
||||
快照脚本在 `/var/lib/prometheus/node-exporter/` 原子更新两个 `.prom` 文件:
|
||||
|
||||
- `openbao_snapshot_result.prom`:最近一次运行结果(0/1)及完成时间。
|
||||
- `openbao_snapshot_success.prom`:最后一次成功生成完整本地快照的时间。
|
||||
|
||||
失败保留上次成功时间,先完成快照再删除超出保留数量的文件。
|
||||
指标文件 root 写、exporter 只读;不包含 token、路径标签或快照内容。
|
||||
首次成功前成功指标缺失,不用既有文件 mtime 冒充已验证成功。
|
||||
Bao sealed 或 token 失效时,独立 exporter 仍能报告失败及超时。
|
||||
|
||||
`PrometheusRule/openbao` 包含:采集不可用(3 分钟)、内部健康异常(3 分钟)、
|
||||
健康 gauge 缺失(5 分钟)、快照失败(5 分钟)、快照超过 36 小时或无成功记录
|
||||
(持续 15 分钟)、快照监控缺失/损坏(5 分钟)。内部健康规则按当前**单节点**设计,
|
||||
以后增加 standby 必须先调整 active 判定。快照指标仅证明本地任务成功,不能证明异地备份或可恢复性。
|
||||
|
||||
检查与恢复入口:
|
||||
|
||||
```bash
|
||||
sudo systemctl status openbao-snapshot.timer openbao-snapshot.service prometheus-node-exporter
|
||||
sudo journalctl -u openbao-snapshot.service -n 50 --no-pager
|
||||
curl -fsS http://192.168.10.8:9100/metrics | grep '^openbao_snapshot_'
|
||||
```
|
||||
|
||||
token 续期失败按[维护 runbook](https://git.ddupan.top/panxiao81/homelab-wiki/src/branch/main/guides/openbao-monitoring-maintenance.md)
|
||||
受控轮换;不要通过反复重启 Bao 排障。回滚 exporter 或快照脚本无需重启 Bao。
|
||||
回滚时同步撤回相应 ServiceMonitor/规则,否则缺指标告警会继续触发。
|
||||
|
||||
本地验证:
|
||||
|
||||
```bash
|
||||
python3 -m unittest discover -s infrastructure/openbao/ansible/tests -v
|
||||
# 需 PyYAML、Jinja2 和 promtool;已用 promtool 3.5.0 验证。
|
||||
PATH=/path/to/promtool:$PATH bash platform/observability/metrics/tests/check-rules.sh
|
||||
```
|
||||
|
||||
textfile 的原子发布方式遵循 [node_exporter 文档](https://github.com/prometheus/node_exporter#textfile-collector)。
|
||||
Reference in New Issue
Block a user