关于项目运行期间的项目状态监控、日志搜集、汇总,大家有什么好办法吗?

2016-08-13 21:06:40 +08:00
 nonesuccess

技术栈是 java web 的。项目中有各种各样需要的东西。说结构化肯定算不上,完全按照非结构化去处理,也不能满足要求,不知道这样说能不能理解。

比如某用户登录时,打了一条日志,该有的信息都打进去了,但是是个非结构化的字符串。

可能某天想统计用户登录情况,面对一堆堆的日志,很难去找到想要的信息。

又比如项目会有一些夜里运行的批量任务,现在运行情况也是随手扔到日志里,突然有一天发现问题的时候,想统计近期两个月的运行情况,也非常困难。

而且这些内容最好能让非技术人员能看懂,并做初步的处理。

这种类似的需求有十几个甚至几十个,也许执行一段时间之后就不需要了。如果每个都去建表写功能的话,工作量是一方面,感觉多了一些这样的东西,对项目复杂度的控制也不太好,不知道大家有没有什么好主意。

另外,求一个类似这样的日志工具:载入日志文件后,能按一定规则把用户分条显示出来,并且可以按照关键字做筛选,比如所有 INFO 级别的包含 id=xxxx 字样的日志。

3792 次点击
所在节点    程序员
21 条回复
yelite
2016-08-13 21:28:59 +08:00
elasticsearch kibana logstash
defunct9
2016-08-13 21:39:12 +08:00
elk 是不适合的,尤其是 java 抛出大段错误的时候,你让程序猿点几十下看错误,崩溃了
nonesuccess
2016-08-13 22:14:38 +08:00
@defunct9 对,最好是能按照 INFO 、 ERROR 这些级别划分的
hustlike
2016-08-13 22:17:01 +08:00
ELK 是没那么好用的。楼主下个 splunk 装一下。免费版每天 500m 数据,对你来说完全够用。结构化和非结构化都可以处理。你试完会回来感谢我的。
defunct9
2016-08-13 22:19:09 +08:00
没办法,以前是用 rsyslog 推送日志到 elk 。结果文本一行就是一条记录。完全无法观看撒,放弃
hustlike
2016-08-13 22:22:41 +08:00
@defunct9 大哥,推荐你也试一下 splunk 。实时日志索引,告警,可视化等都不是 elk 能比的。
slixurd
2016-08-13 22:24:30 +08:00
不会用 ELK 也能说 ELK 不合适..
defunct9
2016-08-13 22:41:28 +08:00
最先用的就是 splunk 。数据量大了,无法使用才换的 elk 。
defunct9
2016-08-13 22:53:14 +08:00
@slixurd 请教了,我们是 tomcat 日志扔到 catalina.out ,如何才能让程序猿像 tail -f 一样在 elk 里查看上下文相关的一片日志,而不是每行都是一条记录,需要一条一条点开看
alexapollo
2016-08-13 22:55:34 +08:00
各个公司大多是自己造的轮子吧
iyaozhen
2016-08-13 23:03:46 +08:00
还是用 elk 吧。很容易快速上手

不推荐自己造轮子,太痛苦了,各种问题要解决。
slixurd
2016-08-13 23:06:04 +08:00
@defunct9 最简单的方式就是存个自增 id 然后取这个 id 前后的一段记录。
在 ELK 外面套层轮子很是很正常的处理方式
cqcn1991
2016-08-13 23:06:41 +08:00
OneAPM? New Relic?
mml
2016-08-13 23:47:30 +08:00
elk 和 graylog 都用过,没加其他轮子,我觉得,使用起来非常糟糕。特别是你这需求还要给非技术人员用。
letitbesqzr
2016-08-13 23:50:43 +08:00
@defunct9 谁说需要一条条看的..
atpking
2016-08-14 00:24:52 +08:00
@defunct9 splunk 好贵的说
fatpa
2016-08-14 01:10:53 +08:00
将同类的服务日志打到一文件里面,前面加个 tag ,有 flume 之类的根据 tag 采到不同的 channel 然后入库
defunct9
2016-08-14 07:10:19 +08:00
@letitbesqzr ?这个就是一条撒,再长点,从错误开始,到错误结束, 7 、 8 条跟你这样一样的合起来看。想要这种效果
defunct9
2016-08-14 07:19:26 +08:00
用 rsyslog 扔到集中的 syslog-ng 中分别保存,用 Log.io 实时看。我们是这样搞法,很土炮
defunct9
2016-08-14 07:20:24 +08:00
跑题了,跑到如何实时看集群日志了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/299115

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX