首页 > 解决方案 > AWS Cloudwatch 将日志流式传输到 Amazon Elasticsearch Service

问题描述

我正在使用订阅将 CWL 流式传输到 Amazon Elasticsearch Service。索引是自动创建的,但我想更改分片的数量。我正在查看 Lambda 函数,但找不到任何指定分片数量的代码。

另外,如何使索引看起来像 cwl-{logGroup Title}-00001?

谁能给我一些建议?

标签: amazon-web-serviceselasticsearchamazon-cloudwatchlogs

解决方案


要获得带有 logGroup 标题的索引,您可以使用以下代码:

在 Lambda 函数的第 62 行,您将看到以下代码部分:

// index name format: cwl-YYYY.MM.DD
var indexName = [
'cwl-' + timestamp.getUTCFullYear(),              // cwl + time
('0' + (timestamp.getUTCMonth() + 1)).slice(-2),  // month
('0' + timestamp.getUTCDate()).slice(-2)          // day
].join('.');

将其替换为以下代码:

// index name format: cwl-log-group-YYYY.MM.DD
var indexName = [
'cwl-' + payload.logGroup.toLowerCase().split('/').join('-') + '-' + timestamp.getUTCFullYear(),              // cwl + log group + time
('0' + (timestamp.getUTCMonth() + 1)).slice(-2),  // month
('0' + timestamp.getUTCDate()).slice(-2)          // day
].join('.');

此更改将为每个日志组创建一个单独的索引。请先在您的测试环境中进行测试,然后再部署到生产环境中。

要更改分片数量,您可以在 AWS ES 端为此特定索引模式创建一个索引模板。


推荐阅读