python日志查询分析脚本 python自动化查询工具

发布时间:2020-08-11编辑:脚本学堂
本文介绍了python进行日志查询分析的一段脚本,分为受控节点和主控节点,python自动化查询工具开发实例,需要的朋友参考下。

python实现的日志查询分析工具,一段很实用的日志查询分析脚本

在python语言中,有强大的python日志模块logging,灵活使用可以写出不错的日志分析工具。

之前介绍过 python日志模块logging的使用方法,以及python读写与处理log文件的例子,感兴趣的朋友,可以阅读下,以便于更好的理解本文代码。

以下是python日志查询分析工具的主要代码。

1,受控节点slave.py
 

复制代码 代码示例:
import socket
import re
class Log(object):
    file_list=['access.log','C:access.log']
    master_ip='192.168.0.103'
    def __init__(self):
        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        s.bind(('',3333))
        s.listen(1)
        while True:
            conn,addr=s.accept()
            print addr[0]
            if addr[0]==self.master_ip:
                reg=conn.recv(1024)
                result=self.all_log(reg)
                conn.sendall(result)
            conn.close()
    def all_log(self,reg):
        logs=''
        for f in self.file_list:
            logs+='n'+self.log_match(f,reg)
        return logs
    def log_match(self,f,reg):
        log_result='------------------------'+f+'------------------------'+'n'
        fo=open(f,'r')
        line=fo.readline()
        rp=re.compile(reg)
        while line!='':
            log_match=rp.match(line)
            if log_match:
                log_result+='n'+log_match.group()
            line=fo.readline()
        return log_result
if __name__=='__main__':
    ds=Log()

2,主控节点master.py
 

复制代码 代码示例:
import socket
class SlvCluster(object):
    ip_list=['127.0.0.1']
    def __init__(self,reg):
        for ip in self.ip_list:
            self.single_slv(ip,reg)
    def single_slv(self,slv_ip,reg):
        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        s.connect((slv_ip,3333))
        s.sendall(reg)
        print '-----------------------'+slv_ip+'--------------------------'
        print s.recv(102400)
        s.close()
if __name__=='__main__':
    reg=raw_input('Input the regular expression:')
    print '-----------Regular Expression: '+reg+'-----------------'
    sc=SlvCluster(reg)