PHP журнал ошибок исчез (Windows Server 2019)

Вопрос или проблема

У меня есть два сервера Windows Server 2019 (в AWS), на которых работают Apache httpd 2.4.62, PHP 8.3.11 и SQL Server. Один из них предназначен для разработки/тестирования, другой – для производства.

Обычно я оставляю сеансы удаленного рабочего стола открытыми на обоих серверах и слежу за журналами PHP и Apache.

php.ini:

log_errors=On
error_log="C:\Windows\temp\php-errors.log"

Из-за программных ошибок журнал ошибок PHP существовал, и я следил за тем, чтобы увидеть, произошли ли дальнейшие ошибки после внесения исправлений.

Несколько дней назад файл php-errors.log исчез на обоих серверах в одну и ту же дату. Файл больше не существует.

Я не вижу никаких признаков взлома. Ищу в интернете, не могу найти ни одной упоминания о том, что файл журнала ошибок пропал.

Какие-нибудь предложения относительно того, что могло произойти, или как расследовать эту проблему? К сожалению, у меня не была включена политика аудита Windows Server, так что я не могу использовать это, чтобы выяснить, кто удалил файл.

Кроме того, в журнале событий Windows нет ничего необычного, так же как и в журнале сервера Apache, и в журналах доступа Apache.

Ответ или решение

Пропажа файла журнала ошибок PHP на Windows Server 2019

Проблема исчезновения файла журнала ошибок PHP является достаточно неординарной и требует комплексного подхода к диагностике. Рассмотрим подробно возможные причины и шаги, которые помогут устранить данную проблему.

Описание проблемы

На двух серверах Windows Server 2019, которые работают под управлением Apache httpd 2.4.62 и PHP 8.3.11, файл журнала ошибок PHP, расположенный по адресу C:\Windows\temp\php-errors.log, исчез в одно и то же время на обоих серверах. Использование RCA (Root Cause Analysis) позволит выявить возможные источники проблемы и предотвратить её повторение в будущем.

Возможные причины исчезновения файла

  1. Удаление файла пользователями:

    • Возможно, файл был случайно удален одним из пользователей, имеющим доступ к серверам через удаленный рабочий стол.
  2. Системные очистки:

    • Некоторые утилиты или политики, такие как очистка временных файлов, могут автоматически удалять файлы в папке C:\Windows\temp. Необходимо проверить, не были ли активированы сторонние программы или политики, способные влиять на временные папки.
  3. Настройки PHP:

    • Проверьте файл настроек php.ini. Убедитесь, что указан правильный путь к файлу журнала и что он доступен для записи службой Apache и PHP. Если папка, в которой лежит лог, изменена или у нее изменены разрешения, это может вызвать проблемы с записью.
  4. Ограничения по размеру файла:

    • В настройках PHP можно определить максимальный размер файла журнала, после достижения которого новый лог может не создаваться. Убедитесь, что такие ограничения не установлены.
  5. Конфликты приложений:

    • Если на серверах работают другие приложения, такие как антивирусы или системы безопасности, они могут ошибочно классифицировать файл журнала как нежелательный и удалить его.
  6. Ошибки в коде PHP:

    • Если в коде присутствуют фатальные ошибки, и файл журнала не может быть создан, необходимо провести аудит кода на предмет исключений и ошибок.

Рекомендации по расследованию

  1. Настройка журналирования:

    • Включите аудит файловой системы. Добавьте журналирование на события "удаление" для папки C:\Windows\temp. Это поможет вам впоследствии отследить, кто удалял файл.
  2. Мониторинг активности файлов:

    • Используйте инструменты мониторинга, такие как Process Monitor от Sysinternals, чтобы отслеживать операции с файлом журнала в реальном времени.
  3. Проверка на вирусы и вредоносные программы:

    • Выполните полное сканирование каждого сервера надежными антивирусными решениями, чтобы исключить возможность вредоносного вмешательства.
  4. Настройка резервного копирования:

    • Настройте регулярное резервное копирование файлов журналов, чтобы можно было восстановить информацию в случае её потери в будущем.
  5. Патчи и обновления:

    • Убедитесь, что все компоненты (Windows, Apache, PHP) обновлены до последних стабильных версий, чтобы избежать известных уязвимостей.
  6. Документация изменений:

    • Ведите документацию по всем изменениям в конфигурациях серверов и приложений, что поможет быстро отслеживать причины возникновения таких проблем в будущем.

Заключение

Отсутствие файла журнала ошибок PHP на ваших серверах требует не только тщательного расследования, но и внедрения профилактических мер для избежания подобных ситуаций. Оно может быть вызвано как человеческим фактором, так и системными процессами, поэтому важно организовать мониторинг и аудит систем. Следуя вышеприведенным рекомендациям, вы сможете восстановить целостность и стабильность серверной инфраструктуры.

Оцените материал
Добавить комментарий

Капча загружается...