wuxin4692 / ngx_log_collecter

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ngx_log_collecter

这是一个负责采集nginx日志并统计的一段程序代码

如何开始?

你可以从这里开始看 https://www.jianshu.com/p/9db2037bd436

为什么做这个?

我所接触的服务中一个服务大概每天产生90万条访问日志,而类似的服务有6个左右。其他一些林散的服务每个每天大概产生日志30-40万条左右。再来看看我的机器性能,4核8G带宽1M的一台机器,上面运行了zabbix,jenkins,mysql等程序,白天有日志实时查看需求的时候,带宽占用也比较大。我的梦想当然是ELK,但是现实是残酷的,小公司各种单点的情况下是没有多余的机器拿来给做ELK的。

所以一次性运行完,而且还要让统计后的结果尽量的小,就成了需要思考的问题。不是收集所有日志而只是把相同的统计到一起,所以时间粒度也就需要放大一点,这里我统计的每个小时不同URL的访问时间,IP,状态码等。当然如果需要更加精确的统计数据比如说秒,分也是可以做的,这个放到后面再说。

为什么用go?

1.我刚好开始学go语言,才把语法弄清楚了一些。 2.看到一片讲词频统计的代码片段 地址https://studygolang.com/articles/3393 觉得这个刚好能解决我的问题就照着写了。 3.一次编译到处运行,这一点是我觉得最爽的地方

安装

go get ngx_log_collecter.go go build ngx_log_collecter.go

然后把可执行程序拿到你ngx日志的所在目录就可以运行了

About


Languages

Language:Go 100.0%