如题,完整的日志是多行记录中的信息合并成的一个有效的日志,而且多行记录还有时间差,有什么办法进行分析?或者这个分析的术语叫啥哈?
1 ruin2016 2019-07-22 23:48:04 +08:00 按时间戳查询,或者关键字.. xxx, yyy 是时间戳 awk '$1>xxxxxx' && '$1 < yyyyy' yourfile |
2 widewing 2019-07-23 00:41:04 +08:00 via Android 如果你说 stack trace 那种,就匹配第一行;如果你说的不同线程或什么的打印到一个文件那种,找线程 id 或别的什么;如果是业务相关的,可以记录 tracking id |
![]() | 3 limuyan44 2019-07-23 02:25:22 +08:00 via Android 你需要 es |
![]() | 4 autogen 2019-07-23 02:35:01 +08:00 日志分析一律用 awk,贼简单 |
5 hustlike 2019-07-23 08:21:24 +08:00 via Android 了解下阿里云日志服务,日志可以用 sql 分析。 |
8 yuycchn OP @widewing 业务或者日志上,如果对这些数据进行分析,如果从多行的信息中提取出一个或多个值进行汇总,这种场景有合适的数据软件吗 |
![]() | 9 www5070504 2019-07-23 10:28:18 +08:00 日志一般不都是线程安全的么 应该不会出现错行现象吧 logstash 有匹配多行的插件 |
![]() | 10 rrfeng 2019-07-23 10:32:36 +08:00 没办法,你只能自己洗一遍洗成结构化的数据再去处理。 ES 可以,但一天上亿需要的集群不小了。 或者直接丢 hive,但是也要预处理,比 ES 预处理简单,但是分析起来麻烦。 |
![]() | 11 justfly 2019-07-23 10:40:40 +08:00 自己写个程序匹配日志起始的特征不就好了,用不了多少代码 |
![]() | 12 sparkssssssss 2019-07-23 10:49:41 +08:00 @yuycchn 上亿,肯定是集群才能产生的数量级,所以在日志收集的时候做下处理.目前大部分日志收集都支持多行按规则合并的 |