博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
写一个监控平台的思路总结和实践
阅读量:7085 次
发布时间:2019-06-28

本文共 2365 字,大约阅读时间需要 7 分钟。

   这几天一直在研究如何出图,经过几天的思考终于写出了一个简单的运维监控画图的雏形,下面就贴出来与大家分享,因为我的数据量比较小,所以我直接从客户端用脚本收集数据,发送给远程的mysql服务器,mysql服务器上面部署了,django,结合画图工具出图:

   监控拓扑:

下面给出代码展示:监控连接数:

1、脚本收集远程入库入库:

[root@mail python]# cat test.py#!/usr/bin/env pythonimport osimport MySQLdbdef test():        ip = '192.168.10.100'        p=os.popen('salt \* cmd.run \'netstat -an|wc -l\'|sed 1d').read()        p= p.strip('\n')        conn=MySQLdb.connect(host='192.168.10.205',user='test',passwd='123456',db='yizhan',port=3306)        cursor=conn.cursor()        cursor.execute("insert into app01_test(ip,netstat) values(%s,%s)"%(ip,p))        conn.commit()        cursor.close()        conn.close()        print p ,ipif __name__=='__main__':        test()2、后台处理数据,返回列表形式:def test(request):        data1 = []        data = Test.objects.all()        for i in data:                xiaoluo=i.netstat                data1.append(int(xiaoluo))                print data1        return render_to_response('test.html',{'data':data,'data1':data1})3、前端渲染:  var option = {    title : {        text: '服务器并发连接数',        subtext: '服务器连接数',    },    tooltip : {        trigger: 'axis'    },    legend: {        data:['www.shikee.com']    },    toolbox: {        show : true,        feature : {            mark : {show: true},            dataView : {show: true, readOnly: false},            magicType : {show: true, type: ['line', 'bar']},            restore : {show: true},            saveAsImage : {show: true}        }    },    calculable : true,    xAxis : [        {            type : 'category',            boundaryGap : false,            data : ['10.01','10.05','10.06','10.7','10.08','10.09','10.10']        }    ],    yAxis : [        {            type : 'value',            axisLabel : {                formatter: '{value}'             }        }    ],    series : [        {            name:'最高并发',            type:'line',            data:`data1`,            markPoint : {                data : [                    {type : 'max', name: '最大值'},                    {type : 'min', name: '最小值'}                ]            },            markLine : {                data : [                    {type : 'average', name: '平均值'}                ]            }        }    ]};        // 为echarts对象加载数据         myChart.setOption(option);      4、效果展示:

   总结:主要我们返回的数据是json.或者是列表的形式,都是很容易画图的,这里还不完整就是我还没有加,时间的数据,大家可以再数据库里面添加一个时间字段,实时读取。

转载地址:http://sorml.baihongyu.com/

你可能感兴趣的文章
word提示您试图运行的函数
查看>>
Docker持续部署图文详解 | 高效运维最佳实践06
查看>>
NoSQL生态系统
查看>>
DELPHI自定义事件
查看>>
江苏钢铁业联合重组胎动 重整方式多元化
查看>>
为何3D打印技术普及一直很慢?因为人们还不够了解这项技术
查看>>
Linux的常用目录(Ubuntu)
查看>>
linux 下更改文件名编码方式
查看>>
浏览器内核相关
查看>>
深入了解java运行时的内存区域
查看>>
Azkaban的Exec Server分析 30:JobRunner如何构造一个Job大揭秘
查看>>
varnish-cache:高性能反向代理缓存服务器和http加速器
查看>>
61.使用yum下载rpm包
查看>>
Completely Uninstall Node.js from Mac OS X
查看>>
Linux中什么是动态网站环境及如何部署
查看>>
搜狗输入法初体验
查看>>
在 RHEL/CentOS 上为Web服务器架设 “XR”(Cro***oads) 负载均衡器
查看>>
消息中间件--RabbitMQ
查看>>
Redis数据库学习(1)
查看>>
破除对于XP半开连接数限制的误解
查看>>