使用两个有趣的Salt函数帮你找出失去响应了的Minions

当我们同时维护着几百、几千或几万个系统节点时,系统节点当机、Minion服务僵死或网络异常等事件的发生概率同样在成倍提升。

那么,怎样及时发现和定位到我们失去联系了的SaltStack Minions节点呢?

最理想的方法,仍然是通过Salt Master与Minions间的定时通信来确认Minions的健康状态。
下面就为大家介绍两个比较实用也很有趣的办法,只要定期执行一下,就能把已经掉队的Minions给暴露出来。

使用Salt 的verbose选项

在运行salt命令时使用verbose(-v)选项,因为对于任何超时的Minions,它将显示“Minion did not return”。

# salt -v '*' test.ping
Executing job with jid 20190815231552564284
-------------------------------------------
production-test-node5:
    True
production-test-master:
    True
production-test-node1:
    True
test-service-1:
    True
test-abc2:
    Minion did not return. [Not connected]
test_wiki:
    Minion did not return. [Not connected]
test-salt:
    Minion did not return. [No response]
test-dx:
    Minion did not return. [Not connected]
  • 这个办法还不算是特别的理想,因为健康与不健康的节点是混在一起返回的。

使用Salt manage.down运行器

运行器,即salt runners,是在Salt Master节点上执行的一个管理功能。

下面的这个salt runners便是专为检测和暴露那些失联的Minions所设计的:

salt.runners.manage.down(removekeys=False, tgt='*', tgt_type='glob', timeout=None, gather_job_timeout=None)
  • 注意,自2017.7版本起,原 expr_form 选项被重命名为了 tgt_type

打印所有当机或无响应的Salt Minions的列表。还可以选择从Master上删除掉那些服务当机的minons的密钥。

# salt-run manage.down
- a-bc1
- a-production-t-01
- a-production-t-02
- a-production-t-03
- a-production-t-04
- a-production-t-05
- a-production-t-06
- a-production-t-07

如果是说,在找出失联节点的同时,即清除掉其密钥信息:

salt-run manage.down removekeys=True

当你有成千上万个minons时,建议分组做健康检测:

salt-run manage.down tgt="a*" tgt_type="glob"
salt-run manage.down tgt="webservers" tgt_type="nodegroup"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值