0

我想监视我的简单 bash 脚本以备份 cassandra,所以这是我的脚本

!/bin/bash

### Check for incomplete backups

if medusa list-backups  | grep Incomplete 
then
echo cassandra_backup_status{status='"success"'} 0  > /var/lib/node_exporter/textfile_collector/cassandra_backup_status.prom
else
echo "all is ok tho"
fi

所以你可以在这里看到,我使用文本文件收集器,其中 node_exporter 内置,然后我想使用 alertmanager 选择它,比如 cassandra_backup_status =!0; 然后 alert_to_telegram

这种情况对吗?

4

1 回答 1

1

超越公开指标的方法(文本文件或推送网关)。该方法不正确,因为:

  • 该指标只会出现在一种状态(即失败时),这意味着您将无法检测脚本是否/何时运行
  • 在另一种情况下或您的情况下if,您不会删除文本文件,这意味着它将始终保留(处于失败状态)

最后,标签并不意味着传递一个状态,而只有值应该报告它。在确定什么是最后一个状态时,它还会为您节省很多痛苦;每当标签更改时,都会创建一个新指标,而旧指标仍在普罗米修斯中,直到它变得陈旧(5 分钟)。

作为结论,脚本应该:

  • 使用值为 0 表示失败和 1 表示成功的指标
  • 添加一个指标来指示脚本最后一次运行的日期(以检测扁平化)

除此之外,我建议您使用临时文件或使用海绵原子地写入文件。

于 2020-06-01T19:02:26.343 回答