emarketa/advanced-logger-magento2

Magento 2 模块。将日志发送到 Elasticsearch 或 Datadog。

安装: 997

依赖: 0

建议: 0

安全: 0

星标: 9

关注者: 1

分支: 2

开放问题: 1

类型:magento2-module

0.4.0 2022-01-09 18:03 UTC

This package is auto-updated.

Last update: 2024-09-11 21:23:59 UTC


README

版本 0.4.0 (Beta) 一个将您的 Magento 2 日志发送到 Elasticsearch 服务器或 Datadog 的模块。

这个模块源于将多个运行 Magento 2 网站的节点日志集中的需求。它目前有3种解决方案可以将日志发送到外部服务进行消费,并且将捕获 Monolog 日志记录器(随 Magento 2 一起提供)处理的几乎所有内容。

安装

使用以下命令安装或升级,通过 Composer:

composer require emarketa/advanced-logger-magento2.

需要 Magento 2 和 PHP 7.0 或更高版本。

Elasticsearch 日志记录器

配置在 Magento 2 管理员中通过 商店 > 配置 > EMARKETA > 高级日志记录器 > Elasticsearch

配置选项

  • 启用 Elasticsearch 日志记录器:在这里,您可以启用将日志记录到在 主机 配置中指定的 Elasticsearch 服务器/。

  • 开发者模式启用:由于开发者模式会创建大量日志记录,这可能不是您希望始终启用的功能(如果有的话),因此默认情况下已禁用,以防您从生产副本刷新本地开发数据库时忘记禁用此功能。但是,如果您需要覆盖它,此选项可供使用。

  • 最低级别:默认设置为 警告,以防止 Magento 2 调试日志导致 Elasticsearch 服务器出现日志记录条目洪水的情况。请谨慎降低级别。

  • 索引标签后缀:当创建一个新的索引以进行日志记录时,高级日志记录器将尝试创建一个名为 magento_log_[SUFFIX] 的索引。如果留空,则索引名称将默认为 default,创建索引名称 magento_log_default。您有机会在这里为不同的网站或甚至不同的 Magento 2 店铺视图使用不同的索引名称。

连接

  • 主机:在这里,您可以指定传递给 Elasticsearch PHP 模块(https://github.com/elastic/elasticsearch-php)的主机。逗号分隔的列表(这里避免空格)将设置多个主机。您的条目应符合以下格式:host:port,host:port. 用户名和密码也会包含在主机的 HTTP 身份验证中。

示例

对于 HTTP 身份验证,请使用以下格式:http://user:pass@1.2.3.4:9200

对于 SSL,请使用以下格式:https://1.2.3.4:9200

如果您需要指定证书文件,请通过以下命令添加

bin/magento config:set advanced_logger/elasticsearch/cafile /full/path/to/ca.pem.

这将被传递到 elastic/elasticsearch-php 模块,但请注意,在本模块的上下文中尚未完全测试到 Elasticsearch 的安全连接。

Datadog 日志记录器

配置在 Magento 2 管理员中通过 商店 > 配置 > EMARKETA > 高级日志记录器 > Datadog

您有两种方法可以将日志发送到 Datadog

通过 Datadog Agent(首选)。

小贴士:您需要配置路径,指向/path/to/your/magento/var/log/datadog.log.json

在您的Datadog PHP配置文件中,您会有类似以下的内容

init_config:

instances:

## Log section
logs:

  - type: file
    path: "/path/to/your/magento/var/log/datadog.log.json"
    service: php
    source: php
    sourcecategory: sourcecode

您也可以在此文件中添加自己的标签。

警告:如果您同时启用HTTP API和代理方法,并且有一个与您的API密钥相同账户的正在运行的Datadog代理,您将在这个账户中看到每条日志都被重复记录。

  • 开发者模式启用:由于开发者模式会创建大量日志记录,这可能不是您希望始终启用的功能(如果有的话),因此默认情况下已禁用,以防您从生产副本刷新本地开发数据库时忘记禁用此功能。但是,如果您需要覆盖它,此选项可供使用。

  • 最低级别:默认设置为警告,以防止因为Magento 2的调试日志导致大量日志记录出现在您的Datadog账户中,从而增加存储成本。请谨慎降低日志级别。

通过HTTP API

  • 通过Cron发送:如果您无法在您的服务器上设置Datadog代理,但又不希望在发送日志时阻塞网站,您现在可以使用此功能作为Magento cron的一部分,每分钟发送一次日志。请注意,这意味着事件与日志发送到Datadog之间最多有一个分钟的延迟。Cron将在每次成功发送后清除文件,以保持请求大小最小。

  • 单独发送日志:由于PHP是一种阻塞语言,并且因为PHP Curl在收到响应之前会挂起,您可能会因为不需要设置Datadog代理而获得便利性,但可能会牺牲网站性能。您可以通过将最低级别提高到ERROR来进一步缓解这个问题。如果调试日志被激活并发送到Datadog,即使有120毫秒的超时,您也可能会在低于WARNING级别的日志上遇到显著的挂起。

小贴士:实际上,这个解决方案在您想要对生产集群的Web节点问题进行临时洞察时非常有用,或者您可以在预发布环境中启用它来帮助审计发布。

如果您永久启用了HTTP,请注意,您应该将最低日志级别设置为警告或更高,并且所有发送记录失败的尝试都会静默失败。

警告:如果您同时启用http和代理方法,并且有一个与您的账户相同的正在运行的Datadog代理,您将在这个账户中看到每条日志都被重复记录。

  • 开发者模式启用:建议您不要在开发者模式下启用此功能,因为您将为此存储付费,并且由于如此多的日志活动,您会减慢速度,因为PHP在等待每个curl调用。但是,如果您真的必须在开发者模式下启用HTTP,那么这里有一个选项可以做到这一点。它默认是禁用的,以防您从生产环境的副本刷新本地开发数据库时忘记禁用此功能。

  • 最低级别:将级别设置在警告以下可能会创建大量记录,这可能会显著增加您的成本;特别是如果正在创建调试日志的话。

  • 账户区域:指定您的账户区域。如果您不确定,请登录仪表板查看您是否在https://app.datadoghq.eu/https://app.datadoghq.com/

  • API密钥:您需要正确获取这个密钥,因为目前没有其他方法可以知道它是否失败(由于“一次性且不考虑后果”的政策),除非等待几秒钟来查看日志是否出现。

对于欧盟账户,您的API密钥在此处可用:https://app.datadoghq.eu/account/settings#api

对于美国账户,您的API密钥在此处可用:https://app.datadoghq.com/account/settings#api

许可

本软件遵循GNU通用公共许可证第3版发布。请记得授权使用。