API网关Kong实践笔记分布式

Kong[nginx]-18 nginx日志goaccess实时

2019-08-23  本文已影响26人  国服最坑开发

KONG专题目录


TL;NR

本文只关注一个目的:
使用goaccess,生成一个可以自动实时刷新的HTML网页.

0x00 关于goaccess

简单来说goaccess, 是用C语言开发, 可以高效解析nginx访问日志的工具.

命令行窗口效果

GoAccess was designed to be a fast, terminal-based log analyzer. Its core idea is to quickly analyze and view web server statistics in real time without needing to use your browser (great if you want to do a quick analysis of your access log via SSH, or if you simply love working in the terminal).

While the terminal output is the default output, it has the capability to generate a complete, self-contained real-time HTML report (great for analytics, monitoring and data visualization), as well as a JSON, and CSV report.

GoAccess是基于终端,快速的日志分析工具. 核心理念是实时查看服务性能指标.
同时具有命令行窗口输出模式,还有实现HTM输出能力.

0x01 安装goaccess
yum install glib2 glib2-devel GeoIP-devel  ncurses-devel zlib zlib-develyum install gcc -y
yum -y install GeoIP-update
yum install goaccess
0x02 配置日志格式
time-format %T
date-format %d/%b/%Y
log-format %h - %^ [%d:%t %^] requesthost:"%v"; "%r" requesttime:"%T"; %s %b "%R" - %^"%u"
log_format  main  '$remote_addr - $remote_user [$time_local] requesthost:"$http_host"; "$request" requesttime:"$request_time"; '
        '$status $body_bytes_sent "$http_referer" - $request_body'                      
        '"$http_user_agent" "$http_x_forwarded_for"';

重启nginx服务

# 测试nginx配置文件有效性
nginx -t
# 重启服务
nginx -s reload
0x03 生成goaccess实时页面

我们的目标是生成一个网页, 客户端打开后, 可以自动刷新nginx访问日志内容.

goaccess /your_nginx_log/access.log -o /your_nginx_static/go.html  --real-time-html &

关于输出页面:

把输出的页面放到一个远程可以静态访问路径即可.

server {
        listen 80 ;
        server_name yourscompany.com;

        location /go {
                index index.html;
                alias /app/nginx/html/;
        }   
}
0x04 输出效果

访问页面后, 可以看到很炫酷的效果如下:


goaccess
0x05 后记

其实本打算使用ELK+Kibana+Grafana来显示访问信息的
可是服务器资源受限, 怕资源不够用,影响接口性能.
这一套实现下来, 还是比较简单的, 性价比极高.


KONG专题目录


上一篇下一篇

猜你喜欢

热点阅读