Я ищу способ анонимизировать журналы nginx (журналы ошибок и доступа), и он должен иметь следующие свойства:
нет возможности узнать IP-адрес пользователя
должен быть способ узнать, сколько разных пользователей у сайта
Отслеживание геолокации было бы неплохо, но не обязательно.
Моя первая идея состояла в том, чтобы создать хэш IP-адреса, но, учитывая, что большинство IP-адресов являются IP4, существует примерно 4 миллиарда вариантов, которые очень легко обратимы.
Существуют ли существующие решения или стратегии и как их реализовать?
Модуль ipscrub позволяет регистрировать IP-адреса, хешированные с помощью эфемерной соли.
Это не поможет со вторым требованием подсчета отдельных пользователей, потому что хеши меняются очень часто, поэтому, если вы подсчитываете разные хеши, вы будете пересчитывать.
Здесь они сопоставляют IP-адрес с сокращенной версией:
https://stackoverflow.com/questions/6477239/anonymize-ip-logging-in-nginx
Я бы лично использовал Google Analytics с анонимными IP-адресами для выполнения всех подсчетов, отслеживания и т. Д., А затем просто полностью удалил бы IP из ваших журналов.
https://developers.google.com/analytics/devguides/collection/analyticsjs/ip-anonymization
ga('set', 'anonymizeIp', true);
Вы можете использовать свой собственный формат журнала http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format с пользовательской переменной вместо $ remote_addr, которая может быть чем угодно.