ec-cube2-plugin/cloud_watch_logs

安装: 0

依赖: 0

建议: 0

安全性: 0

星级: 0

关注者: 1

分支: 1

开放问题: 0

语言:JavaScript

类型:eccube2-plugin

1.4.4 2020-11-02 04:35 UTC

This package is auto-updated.

Last update: 2024-09-19 05:43:41 UTC


README

关于本插件

使用Monolog将EC-CUBE2的日志替换为CloudWatch Logs。 替换EC-CUBE2中使用的 GC_Utils_Ex::gfPrintLogGC_Utils::gfPrintLog 方法。

在管理界面“系统设置>EC-CUBE日志显示”中可以查看CloudWatch Logs的日志。

SC_Helper_HandleError 也被替换,并以Json格式非常整洁的形式输出。 因此,在CloudWatch Logs Insights中进行日志分析也非常容易。

出于安全考虑,在浏览器上应尽可能不显示 session_id

日志

Monolog的设置如下。

格式化器

JsonFormatter

当使用 GC_Utils_Ex::gfPrintLog 并指定 verbose 或记录 error 时,includeStacktraces 将自动生效。 Stacktraces 将记录在 traceprevious 中。

处理器

UserProcessor

记录EC-CUBE2的登录信息和 session_id。 在前端,记录 customer_idemail;在管理界面,记录 login_idauthority

WebProcessor

将Web请求信息记录在 extra 以下。 记录的值包括 urliphttp_methodserverreferrer

架构

以下两点是在使用Composer安装插件后,在EC-CUBE2上启用插件之前自动激活的。 如果是直接安装,则需要将插件中的 vendor/autoload.phphtml/define.php 的最后加载。

GC_Utils 无法扩展,因此使用技巧方法扩展类。 此外,一些行为不佳的支付插件使用 GC_Utils_Ex 而不是直接使用 GC_Utils,因此本插件扩展了 GC_Utils

SC_Helper_HandleError_Ex 也被替换。 这是通过 app_initial.php 读取的,因此需要预先替换。

设置

请向 config.php 添加以下内容。

define('AWS_REGION', 'ap-northeast-1');
define('AWS_ACCESS_KEY_ID', '');
define('AWS_SECRET_ACCESS_KEY', '');
define('CLOUDWATCH_LOGS_GROUP_NAME', '/eccube/SampleLogGroupName/%name%');
define('CLOUDWATCH_LOGS_STREAM_NAME', 'eccube');
define('CLOUDWATCH_LOGS_RETENTION', null);

CLOUDWATCH_LOGS_GROUP_NAME

CloudWatch Logs 的日志组

%name% 将替换为日志文件中指定的文件名,省略 .log

例如) ERROR_LOG_REALFILE -> error

CLOUDWATCH_LOGS_STREAM_NAME

CloudWatch Logs 的日志流

%name% 将替换为日志文件中指定的文件名,省略 .log

例如) ERROR_LOG_REALFILE -> error

CLOUDWATCH_LOGS_RETENTION

CloudWatch Logs 的日志保留期。 设置为 null 则不会失效。 仅在创建时有效。

关于日志的保存期限

由于过去的泄露信息,在法医调查时,日志是必不可少的。 因此,如果没有日志,在法医调查中得出结论将非常困难,因此需要保存适当的期限的日志。

通过使用CloudWatch Logs来保存和删除日志,本插件提供了一种可以执行适当日志记录的环境。 此外,即使有大量日志,CloudWatch Logs也能快速进行调查。

IAM

在AWS操作中,强烈建议使用IAM Role。 将IAM Role附加到EC2实例等。 不要使用IAM User的 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

需要以下权限。

123456789012 SampleLogGroupName 部分请适当替换。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:DescribeLogGroups"
            ],
            "Resource": "arn:aws:logs:ap-northeast-1:123456789012:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:DescribeLogStreams",
                "logs:PutRetentionPolicy"
            ],
            "Resource": "arn:aws:logs:ap-northeast-1:123456789012:log-group:/eccube/SampleLogGroupName/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:logs:ap-northeast-1:123456789012:log-group:/eccube/SampleLogGroupName/*:*:*"
        }
    ]
}