技术栈是 java web 的。项目中有各种各样需要的东西。说结构化肯定算不上,完全按照非结构化去处理,也不能满足要求,不知道这样说能不能理解。
比如某用户登录时,打了一条日志,该有的信息都打进去了,但是是个非结构化的字符串。
可能某天想统计用户登录情况,面对一堆堆的日志,很难去找到想要的信息。
又比如项目会有一些夜里运行的批量任务,现在运行情况也是随手扔到日志里,突然有一天发现问题的时候,想统计近期两个月的运行情况,也非常困难。
而且这些内容最好能让非技术人员能看懂,并做初步的处理。
这种类似的需求有十几个甚至几十个,也许执行一段时间之后就不需要了。如果每个都去建表写功能的话,工作量是一方面,感觉多了一些这样的东西,对项目复杂度的控制也不太好,不知道大家有没有什么好主意。
另外,求一个类似这样的日志工具:载入日志文件后,能按一定规则把用户分条显示出来,并且可以按照关键字做筛选,比如所有 INFO 级别的包含 id=xxxx 字样的日志。
1
yelite 2016-08-13 21:28:59 +08:00 via iPhone
elasticsearch kibana logstash
|
2
defunct9 2016-08-13 21:39:12 +08:00 via iPhone
elk 是不适合的,尤其是 java 抛出大段错误的时候,你让程序猿点几十下看错误,崩溃了
|
3
nonesuccess OP @defunct9 对,最好是能按照 INFO 、 ERROR 这些级别划分的
|
4
hustlike 2016-08-13 22:17:01 +08:00
ELK 是没那么好用的。楼主下个 splunk 装一下。免费版每天 500m 数据,对你来说完全够用。结构化和非结构化都可以处理。你试完会回来感谢我的。
|
5
defunct9 2016-08-13 22:19:09 +08:00 via iPhone
没办法,以前是用 rsyslog 推送日志到 elk 。结果文本一行就是一条记录。完全无法观看撒,放弃
|
7
slixurd 2016-08-13 22:24:30 +08:00
不会用 ELK 也能说 ELK 不合适..
|
8
defunct9 2016-08-13 22:41:28 +08:00 via iPhone
最先用的就是 splunk 。数据量大了,无法使用才换的 elk 。
|
9
defunct9 2016-08-13 22:53:14 +08:00 via iPhone
@slixurd 请教了,我们是 tomcat 日志扔到 catalina.out ,如何才能让程序猿像 tail -f 一样在 elk 里查看上下文相关的一片日志,而不是每行都是一条记录,需要一条一条点开看
|
10
alexapollo 2016-08-13 22:55:34 +08:00
各个公司大多是自己造的轮子吧
|
11
iyaozhen 2016-08-13 23:03:46 +08:00 via Android
还是用 elk 吧。很容易快速上手
不推荐自己造轮子,太痛苦了,各种问题要解决。 |
12
slixurd 2016-08-13 23:06:04 +08:00
@defunct9 最简单的方式就是存个自增 id 然后取这个 id 前后的一段记录。
在 ELK 外面套层轮子很是很正常的处理方式 |
13
cqcn1991 2016-08-13 23:06:41 +08:00
OneAPM? New Relic?
|
14
mml 2016-08-13 23:47:30 +08:00
elk 和 graylog 都用过,没加其他轮子,我觉得,使用起来非常糟糕。特别是你这需求还要给非技术人员用。
|
15
letitbesqzr 2016-08-13 23:50:43 +08:00 1
@defunct9 谁说需要一条条看的..
|
17
fatpa 2016-08-14 01:10:53 +08:00
将同类的服务日志打到一文件里面,前面加个 tag ,有 flume 之类的根据 tag 采到不同的 channel 然后入库
|
18
defunct9 2016-08-14 07:10:19 +08:00 via iPhone
@letitbesqzr ?这个就是一条撒,再长点,从错误开始,到错误结束, 7 、 8 条跟你这样一样的合起来看。想要这种效果
|
19
defunct9 2016-08-14 07:19:26 +08:00 via iPhone
用 rsyslog 扔到集中的 syslog-ng 中分别保存,用 Log.io 实时看。我们是这样搞法,很土炮
|
20
defunct9 2016-08-14 07:20:24 +08:00 via iPhone
跑题了,跑到如何实时看集群日志了
|
21
HunterPan 2016-08-14 11:34:05 +08:00
调用链日志开发 确实是很难的.
还是推荐 flume+kafak+(spark)storm 之类的,然后选择合适的存储引起,例如 es... |