你们的服务器是怎么记录日志的?

2020-03-03 12:23:46 +08:00
 5bb864e1fc775087
  1. 接口日志是记录在哪里? 日志文件吗?
  2. 是否将接口请求的 request header 和传入的参数,服务端输出的 response header 和数据都记录到日志里?
  3. 业务中日志记录是否有规范,比如要求按某种格式写:“{触发记录日志的文件名和行数} {原因} {其他涉及的参数}”

我在的公司记录的是日志文件,查看日志只能才 FTP 上下载日志文件下来看,有时候日志文件几十 M,下载的时候还会拖到服务器的带宽,感觉这个做法不好

6213 次点击
所在节点    DevOps
16 条回复
Livid
2020-03-03 12:25:20 +08:00
搜索关键词:

ELK
Splunk
Papertrail Log
logz.io
zzzmh
2020-03-03 12:27:02 +08:00
文件总比数据库强,觉得拖带宽可以先放到另外一台服务器或者同区域的私有 OSS 里再统一拖下来。我们一般 API 接口记录简单的调用记录,再有一份 Nginx 的自带的日志
Vegetable
2020-03-03 12:27:27 +08:00
别问,问就是 ELK
5bb864e1fc775087
2020-03-03 12:27:44 +08:00
@Livid #1 👌
gz911122
2020-03-03 12:27:53 +08:00
slf4j 调下格式就好了
sumarker
2020-03-03 12:29:38 +08:00
阿里云的日志服务.
littlewing
2020-03-03 12:41:32 +08:00
站长正解
ericls
2020-03-03 12:44:36 +08:00
Vector
ELK

Cluster 的每个 node 往 ELK 发送
37Y37
2020-03-03 13:07:54 +08:00
别问,问就是 ELK,参考:
https://ops-coffee.cn/elk
18258226728
2020-03-03 16:37:31 +08:00
小规模项目不想搞 elk,1,2,3 点全符合,也只有这样才能准确定位问题。
只能 FTP 下载日志文件太麻烦了,一般直接 ssh 上去 grep。
按照第三点规范日志后,可以根据日志做监控,比如什么日志一段时间内出现多少次就报警发钉钉消息
smallpython
2020-03-03 17:07:39 +08:00
用数据库是为了方便搜索吗, 感觉写文件挺好的
hakono
2020-03-03 22:42:13 +08:00
公司服务全在 aws 上,所有服务的日志直接无脑输出到 stdout,然后在 CloudWatch 上查看管理
Livid
2020-03-04 07:35:04 +08:00
关于 2,如果 Web Server 是 NGINX 的话,配合 lua-nginx-module 可以在 log_by_lua 阶段把那些数据写到日志里。
iceecream
2020-04-07 09:51:16 +08:00
@smallpython ELK 记录 nginx 日志是教程最喜欢用的例子,切割字段太方便了,还能图形化展示。。数据分析。。
领导喜欢。。。容易出成果。
donespeak
2021-01-04 11:55:59 +08:00
@18258226728 如果日志中输出中含有参数,要怎么统计出现次数呢?比如:
```java
log.info("fail to create user {}", email, ex);
```
18258226728
2021-01-05 17:48:33 +08:00
@donespeak 可以用 awk 统计次数

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

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

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

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

© 2021 V2EX