使用Prometheus监视备份脚本

使用Prometheus监视备份脚本,prometheus,prometheus-node-exporter,Prometheus,Prometheus Node Exporter,我想监视备份cassandra的简单bash脚本,下面是我的脚本 !/bin/bash 正如您在这里看到的,我使用textfile collector,它内置了一个节点\导出器 然后我想像这样使用alertmanager来选择它 cassandra_备份_状态=!0; 然后用电报通知你 这个场景正确吗?超出了公开度量的手段(文本文件或推送网关)。该方法不正确,因为: 度量将只在一种状态下出现(即当它失败时),这意味着您将无法检测脚本是否/何时运行 在另一种情况下,或者在中,如果,则不删除文本文

我想监视备份cassandra的简单bash脚本,下面是我的脚本

!/bin/bash 正如您在这里看到的,我使用textfile collector,它内置了一个节点\导出器 然后我想像这样使用alertmanager来选择它 cassandra_备份_状态=!0; 然后用电报通知你


这个场景正确吗?

超出了公开度量的手段(文本文件或推送网关)。该方法不正确,因为:

  • 度量将只在一种状态下出现(即当它失败时),这意味着您将无法检测脚本是否/何时运行
  • 在另一种情况下,或者在
    中,如果
    ,则不删除文本文件,这意味着它将始终保留(处于失败状态)
最后,标签并不意味着传递状态,只有值应该报告该状态。当你决定最后的状态时,它也会帮你省去很多痛苦;每当标签发生变化时,就会创建一个新的度量标准,而旧的度量标准仍在普罗米修斯中,直到它过时为止(5分钟)

作为结论,脚本应:

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

因此,我建议您使用一个临时文件或用于对文件进行原子写入。

这是否回答了您的问题?
### 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