SIEM on Amazon OpenSearch Service 日志配置自定义实战:用 user.ini 修改索引轮转与命名
【免费下载链接】siem-on-amazon-opensearch-serviceA solution for collecting, correlating and visualizing multiple types of logs to help investigate security incidents.项目地址: https://gitcode.com/gh_mirrors/si/siem-on-amazon-opensearch-service
SIEM on Amazon OpenSearch Service 是一套开箱即用的安全日志分析方案,可自动把 CloudTrail、VPC Flow Logs、GuardDuty、WAF 等数十种 AWS 日志采集、归一化并写入 OpenSearch。但对很多运维同学来说,默认的索引命名与轮转策略往往并不符合业务习惯。本文将带你通过修改 es-loader 的user.ini配置文件,快速自定义索引轮转周期与索引命名规则,全程无需改动任何代码。
user.ini 是什么?为什么它能覆盖默认配置
es-loader 是 SIEM on Amazon OpenSearch Service 方案中负责日志 ETL 的核心 Lambda 函数,它通过configparser读取配置文件来决定每个日志类型(logtype)如何解析、归一化并写入哪个索引。其配置读取顺序如下(见 utils.py):
- 内置默认配置
aws.ini - Lambda 挂载层中的
/opt/user.ini(部署时自动注入) - 本地开发目录下的
user.ini
后读取的配置会覆盖先前的同名参数,因此你只需要复制官方提供的 user.ini.sample 为user.ini,在[DEFAULT]段或某个日志类型的专属段中写入自定义值,就能覆盖默认设置。
索引轮转的 5 种模式与默认值
打开 aws.ini,可以看到index_rotation支持以下取值:
| 取值 | 索引命名示例 | 适用场景 |
|---|---|---|
auto | log-aws-cloudtrail-000001 | 交给索引状态管理(ISM)自动滚动,适合长期归档 |
yearly | log-aws-cloudtrail-2026 | 日志量极小、按年归档 |
monthly | log-aws-cloudtrail-2026-08 | 默认值,兼顾查询效率与索引数量 |
weekly | log-aws-cloudtrail-2026-w33 | 中高日志量,周为单位轮转 |
daily | log-aws-cloudtrail-2026-08-17 | 日志量巨大,便于按天清理 |
索引名的拼接逻辑定义在 siem/init.py:先取index_name,追加index_suffix,再根据index_rotation追加时间后缀。例如默认log-aws-cloudtrail+monthly最终得到log-aws-cloudtrail-2026-08。
最快配置方法:三步修改索引轮转
要调整某个日志类型的轮转周期,只需在user.ini中定位到对应日志类型的 section 并覆盖参数。以 CloudTrail 为例:
[cloudtrail] index_rotation = daily index_suffix = prod index_tz = +08:00三步即可生效:
- 将 user.ini.sample 复制为
user.ini; - 在
[cloudtrail]段添加上面的三行配置; - 重新部署 es-loader Lambda(CloudFormation 更新会自动打包并上传)。
部署后索引将变为log-aws-cloudtrail-prod-2026-08-17这样的命名,index_suffix让你能区分生产与测试环境,而index_tz可把轮转基准时区调整为东八区,让"每天"按你的本地时间切分。
三个关键参数:suffix、time 与 tz 的配合
除了轮转周期,还有三个参数共同决定最终索引名:
index_suffix:直接附加在索引名后的字符串,例如prod、test,适合多环境隔离;index_time:决定用哪个时间戳作为轮转基准。@timestamp表示日志产生时间(批量导入推荐),event_ingested表示 es-loader 接收时间(流式模式推荐);index_tz:轮转日期的时区,格式必须是+08:00这种偏移写法,不能写Asia/Shanghai。
三者组合示例:
[guardduty] index_rotation = weekly index_time = @timestamp index_tz = +08:00最终生成如log-aws-guardduty-2026-w33的索引,按北京时间每周一滚动。
只想覆盖全局?使用 [DEFAULT] 段
如果所有日志类型都想统一改成按月轮转且添加统一后缀,不必逐段修改,在[DEFAULT]段声明即可让所有 section 继承:
[DEFAULT] index_rotation = monthly index_suffix = siem注意:[DEFAULT]的值会被各日志类型段中的同名配置覆盖,优先级是"具体段 > DEFAULT"。
常见问题:auto 模式与索引别名
如果你把index_rotation设为auto,es-loader 不会再拼接日期后缀,而是由索引状态管理(ISM)自动创建log-aws-xxxx-000001格式的滚动索引,并维护一个同名的写入别名。该逻辑位于 index.py 的check_and_create_aliases_if_needed,它会自动为 auto 模式的日志类型创建别名与首个索引。
另外,当某些索引处于关闭(closed)、UltraWarm 或冷存储状态时,utils.py 中的get_writable_indexname会自动为索引名追加_02、_03等序号,避免向只读索引写入数据。
验证配置是否生效
修改后可以通过两种方式验证:
- 查看 OpenSearch 控制台:进入 Indices 页面,确认新索引名是否符合预期格式;
- 查看 es-loader 日志:CloudWatch Logs 中 es-loader 的日志会打印
indexname相关信息,index.py 会记录实际写入的索引名。
小结
通过user.ini覆盖配置,你可以零代码地控制 SIEM on Amazon OpenSearch Service 的索引轮转与命名:用index_rotation选择 daily/weekly/monthly/yearly/auto 五种策略,用index_suffix区分环境,用index_tz对齐本地时区。整个方案的配置入口清晰,官方也提供了详尽的 configure_siem.md 说明文档可供参考。掌握这几个参数,你的日志索引管理就能真正贴合业务需求,查询更快、归档更省、运维更轻松。
【免费下载链接】siem-on-amazon-opensearch-serviceA solution for collecting, correlating and visualizing multiple types of logs to help investigate security incidents.项目地址: https://gitcode.com/gh_mirrors/si/siem-on-amazon-opensearch-service
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考