У меня есть веб-приложение, работающее на некоторых серверах, у которых есть файлы журнала Apache на томе SAN OCFS2. Внутреннее ведение журнала веб-приложений выполняется с помощью log4perl в режиме конвейера с cronolog на другом конце канала для обработки ротации файла журнала. Время от времени, около полуночи, при ротации файлов журналов на некоторых серверах происходит сбой канала, из-за чего Apache не может вести журнал и генерирует всевозможные предупреждения и плохие вещи.
Мне интересно, есть ли способ определить основную причину поломки трубы. DTrace звучит так, как будто он мог бы это сделать при некотором умном программировании, но я не уверен.
У кого-нибудь есть идеи?
Спасибо,
Кендалл
Я предполагаю, что если chronolog регистрирует сломанную трубу, возможно, у вас есть logrotate или какой-то другой ротатор, конкурирующий с ним. logrotate
ротация журналов apache путем закрытия и повторного открытия файлов журналов (что заставляет его создавать новые файлы после того, как logrotate переместил старые), что может привести к поломке канала. Вы можете попробовать apache2ctl graceful
(это то, что logrotate использует в debian, ваш дистрибутив может отличаться), чтобы узнать, не вызывает ли это условие.