atlas 日志分析脚本

#!/usr/bin/env python
# encoding: utf-8

#@author: 东哥加油!
#@file: log_analyze.py
#@time: 2018/8/23 17:15

import pandas as pd
import re
import time
import datetime



def tj_log_to_excel(from_file_name,to_file_name):
    file=open(from_file_name,'r',encoding='UTF-8')
    columns = ('表名','SELECT 统计','UPDATE 统计','INSERT 统计','DELETE 统计')
    results = []
    results.append(columns)
    dict1 = {}
    print(time.strftime("%H:%M:%S"))
    for (num,line) in enumerate(file):
        line = line.lower()
        l_row = []
        if(re.search(r'delete from ',line)):
            str = re.findall(r"delete from ([a-zA-Z0-9_\.]*)", line)
            str = str[0]
            if(dict1.get(str) == None):
                l_row = [0,0,0,1]
                dict1[str] = l_row
            else:
                v = dict1.get(str)
                v[3] = v[3] + 1
        elif (re.search(r' from ',line)):
            str = re.findall(r" from ([a-zA-Z0-9_\.]*)", line)
            str = str[0]
            if str != '':
                if (dict1.get(str) == None):
                    l_row = [1, 0, 0, 0]
                    dict1[str] = l_row
                else:
                    v = dict1.get(str)
                    v[0] = v[0] + 1
        elif (re.search(r'"update ', line)):
            str = re.findall(r"update ([a-zA-Z0-9_\.]*)", line)
            str = str[0]
            if str != '':
                if (dict1.get(str) == None):
                    l_row = [0, 1, 0, 0]
                    dict1[str] = l_row
                else:
                    v = dict1.get(str)
                    v[1] = v[1] + 1
        elif (re.search(r'"insert into ', line)):
            str = re.findall(r"insert into ([a-zA-Z0-9_\.]*)", line)
            str = str[0]
            if str != '':
                if (dict1.get(str) == None):
                    l_row = [0, 0, 1, 0]
                    dict1[str] = l_row
                else:
                    v = dict1.get(str)
                    v[2] = v[2] + 1


    for key in dict1:
        t_row = []
        t_row.append(key)
        t_row.append(dict1[key][0])
        t_row.append(dict1[key][1])
        t_row.append(dict1[key][2])
        t_row.append(dict1[key][3])
        results.append(t_row)


    df = pd.DataFrame(results)
    df.to_excel(to_file_name)
    print(time.strftime("%H:%M:%S"))

if __name__ == '__main__':
    now_time = datetime.datetime.now()
    step_time = datetime.timedelta(days=1)
    yes_time = now_time - step_time
    pdate = yes_time.strftime('%Y%m%d')
    from_file_name = '/usr/local/mysql-proxy/log/sql_balance.log_'+pdate
    print(from_file_name)
    to_file_name= '/data/shell/sk/sql_balance_'+pdate+'.xls'
    tj_log_to_excel(from_file_name,to_file_name)

  

posted @ 2018-12-12 09:18  东哥加油!!!  阅读(384)  评论(0编辑  收藏  举报