Fortinet FortiGate日志无法写入Elasticsearch及配置排查与管道修改求助
Fortinet FortiGate日志写入Elasticsearch问题排查(Fortinet端设置核对)
1. Syslog服务器基础配置
- 确认已将Elastic Agent所在服务器添加为syslog目标:
- 填写正确的Agent服务器IP/主机名
- 端口匹配Agent配置(默认UDP 514,若用TCP需同步开启FortiGate的TCP syslog支持)
- 明确设置syslog格式为RFC 3164(部分型号在「日志设置>高级选项」中配置,避免使用Fortinet自定义格式)
2. 日志范围与级别设置
- 启用需要同步的日志类型(流量、威胁、系统、事件等),不要遗漏目标类别
- 日志级别设置与Elastic集成预期一致(如信息、警告、错误),避免过滤掉必要日志
3. 日志格式验证
- 检查发送的syslog报文是否包含完整RFC3164头部:优先级、时间戳、主机名、进程标识等字段
- 在Agent服务器用
tcpdump udp port 514或nc -ul 514监听,确认能接收到完整的日志报文
4. 网络连通性确认
- 在FortiGate执行
execute ping <Agent服务器IP>,验证网络可达 - 检查FortiGate防火墙策略,允许自身到Agent服务器syslog端口的流量
- 确认Agent服务器的防火墙/安全组已开放对应端口的入站规则
logs-fortinet.firewall-1.7.2摄入管道RFC3164支持配置
1. 使用syslog_pri过滤器解析RFC3164优先级
通过syslog_pri过滤器提取RFC3164头部的优先级字段,拆分出设施(facility)和严重级别(severity):
{ "processors": [ { "syslog_pri": { "field": "message", "target_field": "syslog", "ignore_missing": true } } ] }
执行后会在文档中生成syslog.facility和syslog.severity字段。
2. 结合kv过滤器解析日志内容
如果FortiGate日志为键值对格式,用kv过滤器提取业务字段:
{ "processors": [ { "kv": { "field": "message", "field_split": " ", "value_split": "=", "target_field": "fortinet", "ignore_missing": true, "trim_value": "\"" } } ] }
根据实际日志格式调整field_split(字段分隔符)和value_split(键值分隔符),FortiGate日志常用空格和等号组合。
3. 完整摄入管道示例
同时解析RFC3164头部和业务字段的完整配置:
{ "description": "Fortinet FortiGate RFC3164日志解析管道", "processors": [ { "syslog_pri": { "field": "message", "target_field": "syslog", "ignore_missing": true } }, { "kv": { "field": "message", "field_split": " ", "value_split": "=", "target_field": "fortinet", "ignore_missing": true, "trim_value": "\"" } }, { "remove": { "field": "message" } } ] }
最后一步移除原始message字段为可选操作,若需保留可删除该处理器。
内容的提问来源于stack exchange,提问作者NiveditaK
相关产品推荐
相关产品推荐

