我正在寻找一种匿名化 nginx 日志(错误日志和访问日志)的方法,它应该具有以下属性:
无法找到用户的 IP 地址
应该有办法知道该网站有多少不同的用户
地理位置跟踪很好但不是必需的。
我的第一个想法是创建 IP 地址的哈希值,但考虑到大多数 IP 都是 IP4,因此大约有 40 亿个选项,可以很容易地进行逆向。
是否存在现有的解决方案或策略以及如何实施它们?
答案1
这里他们将 IP 地址映射到缩短版本:
https://stackoverflow.com/questions/6477239/anonymize-ip-logging-in-nginx
我个人会使用带有匿名 IP 的 Google Analytics 进行所有计数、跟踪等,然后从日志中完全删除 IP。
https://developers.google.com/analytics/devguides/collection/analyticsjs/ip-anonymization
ga('set', 'anonymizeIp', true);
答案2
模块ipscrub让您记录使用临时盐散列的 IP 地址。
但是,这无助于满足计算不同用户的第二个要求,因为哈希值时常会发生变化,所以如果您计算不同的哈希值,则会计数过多。
答案3
您可以使用自己的日志格式http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format使用自定义变量代替 $remote_addr,它几乎可以是任何内容。