设为首页 收藏本站
查看: 2252|回复: 0

[经验分享] 利用saltstack的api接口和modules实现实时监控

[复制链接]

尚未签到

发表于 2018-8-1 11:15:33 | 显示全部楼层 |阅读模式
  前言:
  其实一说起实时监控,我就有很多的感想 ~  以前也做过几个类似的全网流量监控的项目,用过websocket的模式的,还有就是redis pubsub模式,还有就是从同事的nagios获取流量数据(这个结果很郁闷,nagios加了Ndoutils插件后可以把数据存入到mysql里面,当时水平不到位,获取的数据有断链,原因不明)。 这些方法也都是大同小异,一般从nagios和zabbix获取的数据不太实时,当然你也可以配置间隔时间,但那样的话,会造成你的一些个配置的改变,以及可能会出现利用率高的情况。  每个人都有自己的一套做法,我这边给大家再扩展出一个方案   salstack api的方式 !
  请多关注下我的个人博客, 更多运维研发及python, blog.xiaorui.cc
  saltstack 我也做过类似的方案,有些朋友可能看到我写的grains returners的方法 ~  其实也是可以的,需要说明的是 grains 的数据,一般是启动minion的时候获取的,不太好做实时。 returners的话,是采用回调的方法,也就是说 我把想要的数据交给minion处理,这家伙搞到数据后,往另一个接口扔数据。我这个时候想看数据的话,就从库里面看,比如他扔给redis,我就从redis里面看 ~
  有需求的朋友可以先瞅瞅我以前写的例子,大家要是觉得那里不对,咱们讨论下哈
  websocket的模式:
  http://rfyiamcool.blog.51cto.com/1030776/1269232
  redis pub sub的模式:
  (咱们的saltstack api的模式也是属于pubsub的模式~)
  http://rfyiamcool.blog.51cto.com/1030776/1272629
  第三方监控的扩展模式:
  比如nagios的ndoutils插件~   可以简单的mysql sql语句就可以获取数据 ~
  获取监控项目
-------------------------------+-------------------  
192.168.15.178 | CPU
  
192.168.15.178 | Current Load
  
192.168.15.178 | Current Users
  
192.168.15.178 | HTTP
  
192.168.15.178 | PING
  
192.168.15.178 | Qcache_free
  
192.168.15.178 | Root Partition
  
192.168.15.178 | SSH
  
192.168.15.178 | system swap
  
192.168.15.178 | Total Processes
  
localhost | CPU
  为啥用saltstack api
  原因就是好用,返回的结果也是可控的,是json的数据,好拆分!    一开始刚用saltstack做测试的时候,数据的前端页面数据渲染都是用的subprocess的模块,搓的要命。
  有了接口,咱们可以做多线程的操作,当然saltstack本身确实是多进程的模式,用的multiprocess的模块。 在终端下肯定是好的,但是在这里不太适用,毕竟咱们是有啥数据,先返回,而不是等所有数据都搞到手了,才渲染页面。
  原文:http://rfyiamcool.blog.51cto.com/1030776/1345518
DSC0000.jpg

  简单描述下他的实现思路:
  利用saltstack api 获取数据,然后插入到数据库里面,然后前端从后端来获取数据。
  做这个东西,需要点其他的支撑,比如 基础的集群saltstack的使用,数据库的使用,前端样式的使用。 这些还算好学的,搜搜网上的文档也都可以搞定。
  图表的数据暂时是模拟的,环境有点问题,我就简单模拟了一个server ! 原理都是那么回事 !
  图表的实现方式: 用sparkline实现的

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
    "http://www.w3.org/TR/html4/strict.dtd">
  
<head>
  
    <script type="text/javascript" src="jquery-1.7.2.js"></script>
  
    <script type="text/javascript" src="jquery.sparkline.js"></script>
  
    <script type="text/javascript">
  
    $(function() {
  
        /** This code runs when everything has been loaded on the page */
  
        /* Inline sparklines take their values from the contents of the tag */
  
        $('.inlinesparkline').sparkline();
  
        /* Sparklines can also take their values from the first argument
  
        passed to the sparkline() function */
  
        var myvalues = [10,8,5,7,4,4,1];
  
        $('.dynamicsparkline').sparkline(myvalues);
  
        /* The second argument gives options such as chart type */
  
        $('.dynamicbar').sparkline(myvalues, {type: 'bar', barColor: 'green'} );
  
        /* Use 'html' instead of an array of values to pass options
  
        to a sparkline with data in the tag */
  
        $('.inlinebar').sparkline('html', {type: 'bar', barColor: 'red'} );
  
    });
  
    </script>
  
</head>
  
<body>
  
<p>
  
Inline Sparkline: <span class="inlinesparkline">1,4,4,7,5,9,10</span>.
  
</p>
  
<p>
  
Sparkline with dynamic data: <span class="dynamicsparkline">Loading..</span>
  
</p>
  
<p>
  
Bar chart with dynamic data: <span class="dynamicbar">Loading..</span>
  
</p>
  
<p>
  
Bar chart with inline data: <span class="inlinebar">1,3,4,5,3,5</span>
  
</p>
  
</body>
  
</html>
  先放一个demo,这两天把项目的细节写出来 !!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-544686-1-1.html 上篇帖子: saltstack一键部署zabbix_agent&&管理文件 下篇帖子: SaltStack使用教程(二):文件和目录管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表