atlas怎么看日志_atlas 日志分析脚本

此篇博客介绍了如何使用Python脚本 tj_log_to_excel.py,从MySQL-proxy的日志中提取SQL操作类型(SELECT, UPDATE, INSERT, DELETE),并对各表操作进行计数,最后将结果汇总并保存为Excel文件。
摘要由CSDN通过智能技术生成

#!/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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值