我已经使用SaltStack设置了基本监视。因此,现在id磁盘使用率> 90%,反应堆会发出一封电子邮件。
但是,存在间隔问题。目前,该信标设置为60秒。这意味着,在问题解决之前,所有收件人将每60秒钟收到一封电子邮件。
我想将其移动到自定义模块(自定义信标或自定义状态),并且在该自定义python代码内部实现一些限制逻辑。但是,这要求该自定义代码每分钟保持一些状态,即最近发送的电子邮件的时间戳等。
实现此目标的最佳方法是什么?
为了阐明这一点:我知道如何编写自定义模块,我不知道如何(以及是否)可以维护某些自定义状态。例如,我应该只使用带有获取/设置功能的谷物/支柱/矿井吗?还是有更好的方法?
# /etc/salt/minion.d/beacons.conf:
beacons:
diskusage:
- interval: 60
- /: 90%
# /etc/salt/master.d/reactor.conf:
reactor:
- 'salt/beacon/*/diskusage/':
- /.../salt/reactor/monitoring/diskusage.sls
# /.../salt/reactor/monitoring/diskusage.sls:
diskusage:
local.smtp.send_msg:
- tgt: master
- args:
- recipient: admins-group@company.com
- subject: "High disk usage on {{ data['id'] }}"
- message: "Disk usage on {{ data['id'] }} (mount: {{ data['mount'] }}) is at {{ data['diskusage'] }}%."
- profile: monitoring-smtp-profile