0

我开始使用logstash 进行日志记录,因为它与elasticsearch 配合得很好。

但我找不到在 php 中轻松存储日志的方法。

从php存储日志的最快方法是什么?

文件、tcp、udp 其他?

所以我可以在我的应用程序中添加一个类,然后运行一行代码,例如

$logclass->log('my_event', 'mymessage');
4

2 回答 2

1

您可以通过 2 种方式从 PHP 卷曲到弹性搜索:

  • 使用 PHP curl 扩展,这将是同步的
  • 使用shell_exec("curl .... &"),这将是异步的,但可能会创建僵尸

如果您的流量确实很大,您可以在中间添加logstash:

  • php --> redis --> logstash --> elasticsearch
  • php --> UDP --> logstash --> elasticsearch

php error_log也是一个很棒的方法,非常好用。

于 2015-10-02T15:06:17.417 回答
0

在这种情况下,“容易”这个词取决于很多事情。

  • 您的日志是如何存储的?
  • 您的日志是否已通过网络传输?
  • 您的日志是否合并在 1 个文件中?
  • 您对 rsyslog 或其他系统日志系统了解多少?

如果你只是尝试了一些东西然后回来提出一个更具体的问题,那将是最好的。每个选项都有优点和缺点……例如,UDP 数据包是一劳永逸的,这意味着数据包可能会丢失。如果丢弃太多 TCP 数据包,可能会阻塞您的网络。文件需要本地存储空间来存储文件,以便将文件读入logstash。

做一些研究并尝试一些东西,但我认为仅根据您提供的信息我无法给您一个正确的答案。

另外,$logclass->log('my_event', 'mymessage');与你选择文件的 TCP、UDP 无关。

于 2013-06-28T12:07:45.870 回答