这是以前在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做监控,其实更多的是表述他的用法。  大家可以把这些都用在实战用。 



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

Saltstack通过api接口调用modules实时监控

前言:      这也是以前的内容,一说起实时监控,我就有很多的想法 ~  以前也做过几个类似的全网流量监控的项目,用过websocket的...

阅读全文

发表评论