php slowlog порождение ptrace ошибка в контейнере докера

У меня есть хост-машина Linux AWS, работающая песни 7 контейнеров докера с 5.5.25 и php-fpm, работающий в нем. Php подвергается за пределами контейнера докера по порту 9000 и обслуживает запросы nginx серверу. Эта установка хорошо работала, но когда я недавно включил php-fpm slowlog, чтобы попытаться отладить некоторый медленный код, и я не мог заставить php регистрировать медленные сценарии. Я установил следующее в/etc/php-fpm.d/www.conf:

request_slowlog_timeout = 5s
slowlog = /var/www/log/php-fpm-slow.log

и /var/www/log/php-fpm-slow.log принадлежит www пользователю с 777 полномочиями. Следующее регистрируется к php журналу ошибок каждый раз, когда медленный сценарий работает.

[07-Jul-2015 07:33:34] ERROR: failed to ptrace(ATTACH) child 18: Operation not permitted (1)
[07-Jul-2015 07:33:34] WARNING: [pool www] child 18, script '/var/www/src/index.php' (request: "GET /index.php") executing too slow (5.700050 sec), logging

Я беру от этого, что request_slowlog_timeout 5 с на самом деле инициирован, но по некоторым причинам журнал не может быть сгенерированным.

Я видел подобный, но не идентичные проблемы, которые предлагают изменить/etc/sysctl.d/10-ptrace.conf или/proc/sys/kernel/yama/ptrace_scope. К сожалению, ни один из этих файлов не существует в моем хосте AWS Linux или контейнерный Centos 7 Операционных систем.

У кого-либо есть какие-либо идеи того, что могло бы вызывать эту проблему, или что ступает, я мог взять для отладки далее?

5
задан 19 July 2015 в 21:00
1 ответ

Я наконец понял это. Вам необходимо дать докер-контейнеру возможность использовать ptrace. Простое добавление --cap-add SYS_PTRACE к команде docker run устранило эту проблему для меня.

11
ответ дан 3 December 2019 в 01:06

Теги

Похожие вопросы