Как я могу регистрировать исходящие IP-адреса в Pantheon?

У нас есть сайт Drupal, работающий под управлением Pantheon. Мы хотели бы вести журнал, аналогичный Apache access.log, показывающий REQUEST_URI каждой страницы, на которую было обращено внимание, вместе с исходным IP-адресом. Это сделано для того, чтобы, если мы наблюдаем, как кто-то злоупотребляет сайтом, мы могли просмотреть журнал и получить IP-адрес нарушителя. Я думаю, что почти каждый клиент Pantheon хотел бы эту возможность, поэтому я удивлен, что это кажется таким сложным. Надеюсь, я просто упускаю что-то очевидное. Я исследовал два возможных пути:

(1) Используйте файл nginx-access.log. Здесь есть вся необходимая мне информация, за исключением того, что сохраненный IP-адрес является внутренним IP-адресом Pantheon, например 10.223.177.45, а не исходным IP-адресом. Я спросил поддержку Pantheon о сохранении исходного IP-адреса в nginx-access.log и получил такой ответ:

Вы просите нас изменить способ хранения лог-файлов, этого не произойдет. Настройки универсальны для всей нашей платформы. Как я уже говорил, 10.223.177.45 — это внутренний IP-адрес от Pantheon.

Не существует способа сделать это.

Мне трудно поверить, что «это невозможно сделать», поскольку исходный 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 с этой проблемой раньше и нашел ли более простое решение?


person Steve Villee    schedule 23.04.2015    source источник


Ответы (1)


Решение 2 с простым правилом удаления старых файлов журнала в cron должно быть достаточно хорошим.

Я не пользователь пантеона, но это можно сделать и с помощью модулей, если это «проще» http://drupalnotes.com/post/64855594431/the-search-for-the-ideal-drupal-7-statistics

person Gibbet    schedule 29.04.2015