有没有办法将Nginx网站访问日志直接写入MySQL或其它的数据库里?
- 0次
- 2021-05-31 12:15:44
- idczone
抗投诉服务器
隔段时间分析导入?
这个工作没必要由nginx来做(而且可能会影响nginx的性能),可以用脚本分析日志然后再写入数据库。
我也觉得这会影响nginx的性能。而且你想想,访问你网站的人数多了,不管访问什么页面都像是一种CC攻击,这种的网站性能能好么。真心没必要。
1楼的正解
用纯文本也没啥不好的,汇总到一个地方供分析即可
其实LS说的影响性能的说法不存在。logging可以是一个unix pipe,或者udp这种fire-and-forget方式,甚至是异步的。
http://tengine.taobao.org/document/http_log.html
这个淘宝的nginx fork可以实现各种logging
个人比较推荐udp logging。用来多节点做日志聚合非常方便。
https://github.com/semihalev/nginx-fluent-module
https://github.com/fluent/nginx-fluentd-module
为毛要这么折腾呢?
nginx日志导入到 mysql里面 之后的处理更复杂 还不如用awk或者perl什么的呢
一个例子,10G日志统计一下浏览器top 5的平均响应时间吧。你用 shellscript 搞一个试试?
用syslog-ng或者rsyslog应该可以实现
100G的apache日志我处理过,没感觉有什么问题。 mysql处理这个东西 我感觉完全不合适。
计算个指标出来也一点问题没有?
不知道你指的指标是什么意思,我经常会通过apache日志统计各个url的pv uv rt等信息 awk里也有用很多 if else 正则 数组 substring什么的 我感觉性能还好 我的blog里面有关于写脚本处理日志的demo 你可以看看 。 10G日志你导入到mysql不知道你到底是神码硬件,能很流畅这样的东西。对UA这样的字段建索引,太折磨mysql了吧
求地址,0101.pro ? 跳转到奇怪的地方