Как я могу зарегистрировать исходящие IP-адреса в Pantheon?
У нас есть сайт на Drupal, работающий под Пантеоном. Мы хотели бы сохранить журнал, аналогичный доступу Apache access.log, показывающий REQUEST_URI каждого обращения к странице, а также исходный IP-адрес. Это связано с тем, что, если мы наблюдаем, как кто-то злоупотребляет сайтом, мы можем просмотреть журнал и получить IP-адрес обидчика. Я думаю, что почти каждый клиент Pantheon захочет эту способность, поэтому я удивлен, что это кажется таким сложным. Надеюсь, я просто упускаю что-то очевидное. Я исследовал два возможных пути:
(1) Используйте файл nginx-access.log. Здесь есть вся необходимая информация, за исключением того, что сохраненный IP-адрес является внутренним IP-адресом Пантеона, таким как 10.223.177.45, вместо исходного IP-адреса. Я попросил поддержки Pantheon о получении исходного IP-адреса, хранящегося в nginx-access.log, и получил этот ответ:
Вы просите нас изменить способ хранения файлов журнала, чего не произойдет. Настройки установлены универсально на всей нашей платформе. Как я уже говорил, 10.223.177.45 является внутренним IP-адресом от Пантеона.
Нет способа сделать это.
Мне трудно поверить, что "нет способа сделать это", поскольку исходный IP-адрес предоставляется через PHP как $_SERVER["REMOTE_ADDR"]
, Понятно, что у них есть информация, но по какой-то причине они не хотят хранить ее в nginx-access.log.
(2) Создайте наш собственный файл журнала из PHP, сохраняя $_SERVER["REMOTE_ADDR"]
а также $_SERVER["REQUEST_URI"]
, У нас уже есть несколько пользовательских кодов в sites / default / settings.php, и мы могли бы добавить что-то, что использует file_put_contents
добавить строку в файл журнала. Может быть, что-то вроде этого:
<?php file_put_contents('sites/default/files/private/access.log', $_SERVER['REMOTE_ADDR'] . ' ' . date('Y-m-d H:i:s') . ' ' . $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . "\n", FILE_APPEND); ?>
Но тогда нам нужно будет повернуть этот файл журнала, когда он заполнится. Я думаю, мы можем сделать это... это просто забота о техническом обслуживании.
Кто-нибудь из клиентов Pantheon сталкивался с этой проблемой раньше и нашел более простое решение?
1 ответ
Решение 2 с простым правилом удаления старых файлов журнала на cron должно быть достаточно хорошим.
Я не пользователь пантеона, но это возможно сделать и с помощью модулей, если это "проще" http://drupalnotes.com/post/64855594431/the-search-for-the-ideal-drupal-7-statistics