用Saltstack的returners实现监控及执行结果回调

这是以前在51cto写的文章,因为有了独立的博客,so 转了过来。没有saltstack基础的朋友,看下我以前的教程 saltstack 入门教程。。。。

那么大家在很多时候都用cmd.run跑命令,查看结果,然后根据返回的结果,做点你需要做的事情,比如把结果插入数据库,我们可以在页面中,看到他的执行的结果,状态,jobid等等。。。


关于监控,虽然zabbix的监控做的挺不错的,他的接口也很完全,我用过这个写过批量增加和批量删除的接口,挺不错的。

然而 如果咱们只是用来做一个临时的监控,又不想麻烦的用zabbix 做item action的麻烦过程。

最近爬虫很吊,那么问题来了,很多人都搜不到我的站点了。 blog.xiaorui.cc

这个时候 ,大家可以用用我的这个思路。 因为我这段时间在写saltstack的功能,现在做到日志的展示了。我突然发现可以做个临时的小监控啥的。 理由就像我刚才说的。。。xiaorui.cc

总之,就想临时搞搞数据监控,迅速实现大批量的监控。


用到的是 Saltstack Returners

Returners是minion返回数据到达后被调用的模块。不将返回数据传递给salt master,而是调用Returner模块来将数据发给其他服务,通常是数据库。Salt目前支持的returner,可以连接cassandra, mongo, redis和mysql. 也可以很容易的用Python脚本为其他服务写一个returner。     xiaorui.cc

官方的例子

https://github.com/saltstack/salt/tree/develop/salt/returners

实现的过程

1   创建分组,或者直接用 * 表示全部主机

2   写个returner规则

3   写个modules规则

4   走起~

主要提2  3 。。。。

这个是modules

我测试用的是 系统已经写过的cmd.run

大家可以根据自己的情况写

监控服务

监控进程数

监控连接数

监控流量

监控队列系统

监控邮件的待发队列,延迟队列

监控某种bug

那么下面的代码就是一个returners的结果通知的格式, 不管是用mail还是回调给mysql、redis、mongodb都是这样的用法。 最近被盗链的厉害~  暂时先图片,等他们抓完了后,再上代码。。。


那么开始走起,saltutil.sync_all 主要是为了实现模块的下发同步


那我们可以在邮箱里面看到报警的邮件:


总结:

       salt来实现快速的监控,需要大家有些saltstack的基础,不然有一头雾水的感觉。这篇文章标题是用returners做监控,其实更多的是表述他的用法。  大家可以把这些都用在实战用。 


大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码,感谢!
另外再次标注博客原地址  xiaorui.cc

发表评论

邮箱地址不会被公开。 必填项已用*标注