win 端 Nginx 如何统计流量?

2021-02-04 14:40:15 +08:00
 PepperEgg

目前公司开发一个程序,需要特定场景启 ngixn,windows 端的 nginix 貌似没有选项控制台输出吧,也没有流量统计的选项。从 access log 里面下手的话,也是一些 header 信息。。。感觉不好下手啊,求大佬解答。

2571 次点击
所在节点    NGINX
13 条回复
julyclyde
2021-02-04 14:44:45 +08:00
即使 linux,控制台也没什么输出啊
都是从日志统计的
eason1874
2021-02-04 15:07:53 +08:00
统计什么流量?

用 OpenResty 可以在日志阶段统计任何东西,包括请求和响应的信息。

用 Nginx 自身的 mirror 可以把请求镜像发送到另一个地址,但这样就统计不到响应信息,跟 rewrite 一起配置的时候也麻烦。
q1angch0u
2021-02-04 15:17:18 +08:00
ngixn/nginix 是啥
PolarBears
2021-02-04 15:31:19 +08:00
我是配置 log_format 成 json 格式输出到文件,然后使用 filebeat 读取日志文件输出到 elasticsearch,之后可以用 kibana 或者 grafana 统计流量
PolarBears
2021-02-04 15:36:33 +08:00
要简单轻量的话应该用 OpenResty 来做比较好
Lee2019
2021-02-04 15:59:57 +08:00
lua ?
Lemeng
2021-02-04 16:11:49 +08:00
Nginx..好吧
julyclyde
2021-02-04 16:39:22 +08:00
@PolarBears 是自己拼一个 json 字符串吗?学到了。确实比空格分割要好!
PolarBears
2021-02-04 17:01:38 +08:00
@julyclyde 注意要配置 escape=json,贴一个我自用的配置:

log_format main escape=json '{"timestamp":"$time_iso8601",'
'"server_addr":"$server_addr",'
'"server_port":"$server_port",'
'"host":"$host",'
'"hostname":"$hostname",'
'"client_addr":"$remote_addr",'
'"client_port":"$remote_port",'
'"server_name":"$server_name",'
'"request_uri":"$request_uri",'
'"uri":"$uri",'
'"https":"$https",'
'"x_forwarded_for":"$http_x_forwarded_for",'
'"scheme":"$scheme",'
'"request_method":"$request_method",'
'"args":"$args",'
'"referer":"$http_referer",'
'"http_user_agent":"$http_user_agent",'
'"request_length":$request_length,'
'"content_length":"$content_length",'
'"content_type":"$content_type",'
'"body_bytes_sent":$body_bytes_sent,'
'"bytes_sent":$bytes_sent,'
'"request_time":$request_time,'
'"status":$status,'
'"upstream_status": "$upstream_status",'
'"upstream_addr":"$upstream_addr",'
'"upstream_time":"$upstream_response_time",'
'"upstream_cache_status":"$upstream_cache_status"'
'}';
PepperEgg
2021-02-04 17:53:02 +08:00
@q1angch0u 不好意思打字有点快没注意
PepperEgg
2021-02-04 17:53:32 +08:00
@PolarBears 可以 研究下。
learningman
2021-02-04 21:00:12 +08:00
@PolarBears 这么玩不会把 io 堵死吗。。。
julyclyde
2021-02-05 10:44:31 +08:00
@learningman 其实并没有多几个字符吧?一个空格变成俩引号一个逗号而已

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

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

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

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

© 2021 V2EX