You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Splunk能否读取文件内部内容并基于关键词配置告警过滤规则?

Splunk过滤Docker触发的hosts文件修改告警实现方案

直接在你现有内置告警规则的搜索逻辑基础上追加过滤条件即可,按以下步骤操作:

前置检查:确认采集字段完整性

先确认你的端点采集配置(Splunk FIM、Sysmon、EDR上报日志均可)已覆盖两类必要字段,否则先补全采集配置:

  • 发起hosts文件修改操作的进程名、进程可执行文件路径字段
  • hosts文件变更时的内容字段:如果用Splunk自带FIM,在inputs.conf对应hosts监控项中加content = 1配置,重启Universal Forwarder即可自动采集文件变更前后的全量内容,配置示例:
# Linux环境hosts监控配置示例
[monitor:///etc/hosts]
disabled = 0
sourcetype = fim:hosts_change
content = 1
index = endpoints

# Windows环境hosts监控配置示例
[monitor://C:\Windows\System32\drivers\etc\hosts]
disabled = 0
sourcetype = fim:hosts_change
content = 1
index = endpoints

第一层过滤:进程维度排除Docker相关操作

在你原有告警搜索语句的最前端追加NOT匹配逻辑,先过滤所有明确由Docker组件发起的hosts修改:

# 将以下条件加在原有告警搜索逻辑的最前面
NOT (
  process_name IN ("dockerd", "docker-proxy", "containerd", "containerd-shim-runc-v2") 
  OR process_path IN ("*/docker/*", "*\\Docker\\*", "*/containerd/*")
)
  • 可根据自身环境Docker的实际安装路径调整路径匹配规则,覆盖你环境中所有Docker运行时组件的路径即可。

第二层过滤:文件内容维度排除Docker写入特征

为避免进程名伪造、第三方组件调用Docker运行时改hosts的漏过滤场景,追加内容维度的匹配规则——Docker修改hosts时会写入固定特征的条目,匹配到以下特征的事件直接排除:

# 接在上述进程过滤条件后追加
NOT (
  file_content="*# Added by Docker*" 
  OR file_content="*127.0.0.1*kubernetes*" 
  OR (file_content="*172.17.0.*" AND file_content="*.svc.cluster.local*")
)

注意:上述语句里的process_name、process_path、file_content是通用字段名,你需要替换成自身环境日志中对应的实际字段名,可以先对hosts修改事件跑全字段搜索确认字段命名。

规则有效性校验

配置完成后做两次验证:

  • 手动启动/停止一个Docker容器,触发Docker自动修改hosts的操作,确认对应事件被过滤、不触发告警
  • 手动用文本编辑器修改hosts文件添加一条测试条目,确认非Docker触发的修改事件能正常命中告警规则

内容的提问来源于stack exchange,提问作者BestestCohen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 05:18:21