goaccess分析json格式日志

一.安装使用yum安装,yum install goaccess

二.主要介绍格式问题

1.nginx日志格式如下:

log_format main escape=json '{"time_local":"$time_local",'

'"remote_addr":"$remote_addr",'

'"referer":"$http_referer",'

'"request":"$request",'

'"status":"$status",'

'"bytes":"$body_bytes_sent",'

'"agent":"$http_user_agent",'

'"dm":"$request_body",'

'"up_resp_time":"$upstream_response_time",'

'"request_time":"$request_time"'

'}';

2.nginx输出日志内容:

{"time_local":"11/Jul/2024:10:56:30 +0800","remote_addr":"x.x.x.x","referer":"https://www.xxxxx","request":"GET /xxxx/xxx/xxxx HTTP/2.0","status":"200","bytes":"47","agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)","dm":"","up_resp_time":"","request_time":"0.000"}

3.goaccess配置如下:

goaccess -f access.log -o /data/java-program/webpage/record.html --real-time-html --log-format='"time_local":" %d:%t %^","%^":"%h","%^":"%R","%^":"%U","%^":"%s",%^,%^,%^,%^,"%^":"%T"' --time-format='%H:%M:%S' --date-format='%d/%b/%Y'

三.遇到的问题

1.时间格式问题

"time_local":" %d:%t %^"

注意中间这里有个空格,不加这个空格会报Token '[11/Jul/2024' doesn't match specifier '%d' ,

下面这种方法无法解决不识别问题,或者我没试出来。

复制代码
LANG="en_US.UTF-8" bash -c 'goaccess access.log'

日志输出之后中间并没有这个空格,在解析日志的时候是出现了"双引号,去掉双引号之后依然无法识别,后偶然间加了空格,成功识别,希望踩坑经过可以帮助后来的人。

2.log-format格式问题

这个里面的格式要和输出的日志保持一致,里面空格也需要添加才能识别到,所以遇到空格多又不是特别重要的,可以使用%^跳过。

3.time-format,date-format

这两个必须要指定,不然会出现时间格式未设置的问题,参考命令设置。

相关推荐
农村小镇哥3 小时前
nginx服务器的介绍
运维·服务器·nginx
llm大模型算法工程师weng11 小时前
负载均衡做什么?nginx是什么
运维·开发语言·nginx·负载均衡
fTiN CAPA12 小时前
服务器无故nginx异常关闭之kauditd0 kswapd0挖矿病毒 CPU占用200% 内存耗尽
运维·服务器·nginx
lKWO OMET14 小时前
查看 nginx 是否已经启动
运维·数据库·nginx
ywlovecjy16 小时前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx
hutengyi17 小时前
四、nginx的优化和location匹配规则
运维·nginx
eEKI DAND17 小时前
一个比 Nginx 还简单的 Web 服务器
服务器·前端·nginx
Watermelo6171 天前
理解 JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义的那些事
前端·javascript·vue.js·chrome·nginx·正则表达式·seo
Cyber4K1 天前
【Nginx专项】高级进阶架构篇-Location、Rewrite及HTTPS
服务器·nginx·架构·https
博风1 天前
nginx:前后端分离常用配置
nginx