SaltStack:反应堆节流/维持内部状态

时间:2019-07-13 21:33:31

标签: salt-stack

我已经使用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

0 个答案:

没有答案