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