首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将PHP应用程序日志直接发送到ELK服务?

如何将PHP应用程序日志直接发送到ELK服务?
EN

Stack Overflow用户
提问于 2017-05-04 11:10:35
回答 1查看 9K关注 0票数 1

根据文档,向SwisscomDev ELK服务发送日志信息有两种方法。

  1. 通过stdout的标准方式:每个输出到stdout都发送到Logstash
  2. 直接发送给Logstash

询问方法2,这是如何实现的,特别是如何期望输入?

我们在基于PHP的应用程序中使用单色,并且使用它的stdout_handler很好。

我正在尝试GelfHandler (连接拒绝)、SyslogUdPHandler (没有错误,但没有结果),这两种配置都配置为使用VCAPServices logstashHostlogstashPort作为API端点/主机发送日志。

绑定工作,可以设置env变量,但我不知道如何从我们的应用程序中发送与SwisscomDev ELK服务Logstash端点兼容的日志信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-04 11:59:10

Logstash配置了一个tcp输入,它可以通过logstashHost:logstashPort访问。tcp输入配置了它的默认编解码器,即line编解码器(源代码;而不是文档中所述的plain编解码器)。

日志事件的有效负载应该用JSON编码,以便Elasticsearch自动识别字段。如果是这样的话,整个日志事件将被转发,而无需进一步处理到Elasticsearch。如果有效负载不是JSON,则整个日志行将在字段message中结束。

对于使用Monolog的用例,我建议您使用SocketHandler (指向logstashHost:logstashPort)与LogstashFormatter结合使用,后者将处理日志事件被分隔行的JSON编码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43781240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档