用python开发的运维管理系统_用python+django+twistd 开发一个属于自己的运维系统

开源的运维系统不少,比如nagios、zabbix、cati等等,但是遇到自己个性化的运维需求的时候,总是显的力不从心!最近在学习python,所以就考虑用python+django+twisted来定做一个完全个性化的运维系统。运维系统有几个主要的功能:监控、分析、报警、更甚者直接根据分析的结果进行反应操作。而以上几点通过上述的框架可以比较容易的实现。下面上图说明: 使用freemind整理了下...
摘要由CSDN通过智能技术生成

开源的运维系统不少,比如nagios、zabbix、cati等等,但是遇到自己个性化的运维需求的时候,总是显的力不从心!最近在学习python,所以就考虑用python+django+twisted来定做一个完全个性化的运维系统。

运维系统有几个主要的功能:监控、分析、报警、更甚者直接根据分析的结果进行反应操作。而以上几点通过上述的框架可以比较容易的实现。

下面上图说明:

20140709134324265

使用freemind整理了下思路:

20140709141104061

下面是一些代码段,完整的代码下载见文档底部:

Server:

#!/usr/bin/env python

#coding:utf-8

__author__ = 'dwj'

from twisted.internet.protocol import ServerFactory

from twisted.protocols import basic

import cx_Oracle

from twisted.application import service, internet

class Mornitor_Protocol(basic.LineReceiver):

def __init__(self):

#

_oracle_conn=cx_Oracle.connect('xxxx', 'xxxx', '192.168.7.17/test', threaded=True)

_oracle_conn.autocommit = True

self.cur = _oracle_conn.cursor()

self._oracle_conn=_oracle_conn

def ruku(self, line):

ip=self.transport.getPeer().host

#获取客户端IP

line=line.split(':::')

#使用:::分割原始数据

if line[1] in ['cpu', 'mem', 'disk', 'tcp', 'net', 'process_down']:

#根据数据包头来确定使用insert还是update,当是tcp包头的时候插入,其余的更新

if line[1] == 'tcp':

sql = "insert into MORNITOR_BASICINFO (ipadd,time,tcp) values (\'%s\',\'%s\',\'%s\')"%(ip,line[0],line[3])

print sql

self.cur.execute(sql)

else:

line_again = line[3].split('::')

sql = 'update MORNITOR_BASICINFO set %s=\'%s\',%s=\'%s\' where ipadd

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值