Docker Compose部署Falco与Falcosidekick后Slack无告警问题排查
问题核心原因
你配置的归属完全错误:
http_output是Falco原生的配置项,你写在falco.yaml里的这段配置是正确的,作用是让Falco把检测到的事件推送给Falcosidekick- 后续的
customfields、slack、mutualtlsfilespath等配置不属于Falco的配置项,是Falcosidekick的运行参数,你写在falco.yaml里Falco根本不会识别,也不会传给Falcosidekick,这是你收不到Slack告警的根本原因。
其他配套问题
你的Docker Compose配置里的Falcosidekick服务没有挂载任何自定义配置,也没有通过环境变量传入Slack相关参数,Falcosidekick启动后完全不知道Slack webhook的地址,自然无法推送告警。
修复步骤
- 清理
falco.yaml,删除你后续添加的customfields、slack、mutualtlsfilespath相关配置,保留http_output的配置即可。 - 新建Falcosidekick的配置文件,例如存放在
/home/ubuntu/falcosidekick.yaml,将你之前写错位置的配置全部写入该文件:
debug: false customfields: Akey: "AValue" Bkey: "BValue" Ckey: "CValue" mutualtlsfilespath: "/etc/certs" slack: webhookurl: "https://hooks.slack.com/services/XXX/XXXX/XXXXX" outputformat: "all" minimumpriority: "" messageformat: 'Alert : rule *{{ .Rule }}* triggered by user *{{ index .OutputFields "user.name" }}*'
- 修改
docker-compose.yml中的Falcosidekick服务配置,挂载配置文件:
version: "3.9" services: falco: # 原有falco配置保持不变 image: falcosecurity/falco:latest privileged: true volumes: - /var/run/docker.sock:/host/var/run/docker.sock - /dev:/host/dev - /proc:/host/proc:ro - /boot:/host/boot:ro - /lib/modules:/host/lib/modules:ro - /usr:/host/usr:ro - /etc:/host/etc:ro - /var/log/falco_events.log:/var/log/falco_events.log - /home/ubuntu/falco.yaml:/etc/falco/falco.yaml - /home/ubuntu/falco_rules.yaml:/etc/falco/falco_rules.yaml - /home/ubuntu/falco_rules.local.yaml:/etc/falco/rules.d/custom-rules.yaml falcosidekick: image: falcosecurity/falcosidekick ports: - 2801:2801 # 新增配置挂载 volumes: - /home/ubuntu/falcosidekick.yaml:/etc/falcosidekick/config.yaml
如果你不想单独维护配置文件,也可以直接通过环境变量传递参数,无需挂载配置文件:
falcosidekick: image: falcosecurity/falcosidekick ports: - 2801:2801 environment: - SLACK_WEBHOOKURL=https://hooks.slack.com/services/XXX/XXXX/XXXXX - SLACK_MESSAGEFORMAT=Alert : rule *{{ .Rule }}* triggered by user *{{ index .OutputFields "user.name" }}* - CUSTOM_FIELDS_Akey=AValue - CUSTOM_FIELDS_Bkey=BValue - CUSTOM_FIELDS_Ckey=CValue
- 重新部署服务后,手动触发测试事件验证:在主机执行
cat /etc/shadow触发默认的敏感文件读取规则,先查看Falco容器日志确认事件正常生成,再查看Falcosidekick容器日志确认事件已接收、Slack推送无报错。如果仍未收到告警,检查Slack webhook地址是否正确、webhook权限是否开启、服务器是否能正常访问Slack的接口地址。
内容的提问来源于stack exchange,提问作者Daniele
相关产品推荐
相关产品推荐

