OpenStack日志事件发生时间分析

日志格式

时间戳,进程ID,日志级别,代码模块,request信息,日志内容,代码路径(如果是DEBUG级别)

(常用日志级别 - [ DEBUG,INFO,WARNING,ERROR ])

e.g., 2017-01-05 13:25:35.414 1171 DEBUG oslo_service.periodic_task [req-2303f9f9-e637-430c-910e-376b6834d9af - - - - -] Running periodic task ComputeManager._reclaim_queued_deletes run_periodic_tasks /usr/lib/python2.7/site-packages/oslo_service/periodic_task.py:213

 

注意:分析关键需要用到时间戳字段,可以用Python自带包,将字符串转换为datetime对象,以方便处理

from datetime import datetime

# t1和t2即为时间戳,e.g.,2017-01-05 13:25:35.414
t1 = datetime.fromisoformat(t1) 
t2 = datetime.fromisoformat(t2)

# 计算时间差
(t1-t2).seconds

 


时间分析

分离日志事件(常用方法是日志解析,解析方法可参考的文献较多)

结合openstack的日志特点的方法:

首先可以截取 日志级别+代码模块+代码路径 作为第一级

然后按需提取日志内容的常量部分(即不含参数的部分)作为第二级,比较简单的方法就是把含数字的词当成参数

 

可视化分析

分析目的:查看日志事件出现的情况,包括日志事件的出现频率、各个日志事件出现的顺序

图的数据源为来自计算节点的服务进程nova-compute的日志,横坐标为时间线,表示距离起始时间过了多少秒纵坐标表示的是不同的第二级日志事件(图标题为第一级日志事件)

从下面的第一个图可以看出:

- 这些事件的发生大致具有周期性,多数日志事件发生间隔为 60s 左右,有些间隔120s,甚至更长

- 有一些日志事件发生的时间点差不多

 从下面的第二个图(除第一个图中呈现的事件之外的其他事件)可以看出:这些事件大致伴随着图一中的事件的发生而发生

 

以上就是简单的将日志事件的发生情况进行了可视化,可以方便观察整个各个服务进程的执行状态,做一个全局性的观测。

后续还会陆陆续续做一些进一步的日志分析,敬请期待~~

 

posted @ 2020-05-06 08:44  丫uan丫ue  阅读(346)  评论(0编辑  收藏  举报