Can';t将php fpm日志获取到stdout中

Can';t将php fpm日志获取到stdout中,php,docker,logging,kubernetes,kibana,Php,Docker,Logging,Kubernetes,Kibana,编辑:因为我看到了反对票,并且我了解他们,我会澄清:该应用程序没有按照标准方式记录,也不是我要求改变的。而且,作为k8s的新手,当时不知道如何获取其他文件。开发人员无法改变这一点(不记得为什么),但我确实用fluentD/bit之类的东西收集了文件。对不起,误会了 我有一个装有两个容器的吊舱:nginx和php-fpm。 我正在将php fpm日志(确实记录到容器中)发送到stdout,以便在kibana看到它们 以下是php fpm容器中的一些信息表单: #env | grep -i log

编辑:因为我看到了反对票,并且我了解他们,我会澄清:该应用程序没有按照标准方式记录,也不是我要求改变的。而且,作为k8s的新手,当时不知道如何获取其他文件。开发人员无法改变这一点(不记得为什么),但我确实用fluentD/bit之类的东西收集了文件。对不起,误会了

我有一个装有两个容器的吊舱:nginx和php-fpm。 我正在将php fpm日志(确实记录到容器中)发送到stdout,以便在kibana看到它们

以下是php fpm容器中的一些信息表单:

#env | grep -i log
APP_LOG_PATH=php://stdout

# php -i | grep -i log
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.17, Copyright (c) 1999-2018, by Zend Technologies
amqp.login => guest => guest
error_log => no value => no value
log_errors => Off => Off
log_errors_max_len => 1024 => 1024
mail.log => no value => no value
com_binlog_dump => 0
Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException
opcache.error_log => no value => no value
opcache.log_verbosity_level => 1 => 1
APP_LOG_PATH => php://stdout
$_SERVER['APP_LOG_PATH'] => php://stdout
$_ENV['APP_LOG_PATH'] => php://stdout
Segmentation fault (core dumped)
# 
试图在www.conf(日志就在那里)取消注释:

我唯一能得到的是与流程相关的信息,如“已重新启动”“已启动”等

我用以下命令重新启动了php:

kill -USR2 1
但这样做之后,无法获取log_errors=>on=>on


任何帮助都会很好,谢谢

设置
error\u log=/dev/stdout
access.log=/dev/stdout
,以及
log\u level
在主php fpm配置文件中所需的级别。可能位于
/etc/php/7.2/fpm/php fpm.conf
或其他位置,具体取决于您的父docker映像


事实证明,开发人员需要在应用程序中更改与日志记录方式相关的内容

一旦它完成了,我将能够得到日志感谢这里的建议


干杯

您使用哪个docker映像?您好,我们使用:php:7.1-fpm-alpineChange access.log to
access.log=/proc/self/fd/1
in/usr/local/etc/php-fpm.d/docker.conf并重新启动php fpm实例。刚刚检查,它已经设置为那样。也许这与运行在其中的应用程序代码有关。我可以在容器内的random-name.log上看到php fpm日志,如果我使用kubelog pod name-c fpm,也一样,但是无法将其取出,因此我可以通过kibana共享它。Original设置为2(stderr)。谢谢,我会尝试一下,然后返回给您。仍然无法看到,从fpm中看到一些日志,但不是所有日志。我需要看到他们所有,检查什么是去与该应用程序没有做kubectl日志或进入它。再次感谢!你丢失访问日志了吗?答案更新为将
access.log
设置为
/dev/stdout
。当我设置access.log=/dev/stdout时,fpm容器崩溃。发生了什么变化?这并不能解决您的原始问题。这不是我们要解决的问题,而是开发人员的问题。是的,对不起。我编辑了OP.Devs无法更改应用程序日志的方式,但我们确实使用fluentbit获取了自定义日志文件。
kill -USR2 1