由于YAML配置问题,无法启动Filebeat

时间:2015-12-29 15:18:08

标签: yaml

我是filebeat的新手,由于.yml配置问题而陷入启动状态。我正在研究Win7专业版。

我配置了默认的简单配置:



filebeat:
 prospectors:
  -
   paths:
    - "e:\Applications\Apache Tomcat 8.0.9\logs\localhost_access_log.*.txt"
    - "e:\Applications\Apache Tomcat 8.0.9\logs\*.log"
   input_type: log




配置中没有选项卡。由PSPad验证。

依赖于行尾我遇到错误:

使用DOS:

  

加载配置文件错误:apache.yml上的YAML配置解析失败:   yaml:第4行:找到未知的逃脱角色。离开。

使用UNIX:

  

加载配置文件错误:apache.yml上的YAML配置解析失败:   yaml:第3行:找不到预期的':'。离开。

2 个答案:

答案 0 :(得分:3)

发生“未知转义字符”错误,因为\A被解释为引用标量中的转义字符。最简单的解决方案是删除引号,因为它们在这里不是必需的(它们通常不在YAML中):

filebeat:
 prospectors:
 - paths:
   - e:\Applications\Apache Tomcat 8.0.9\logs\localhost_access_log.*.txt
   - e:\Applications\Apache Tomcat 8.0.9\logs\*.log
   input_type: log

或者,您可以使用另一个反斜杠来转义反斜杠:

filebeat:
 prospectors:
 - paths:
   - "e:\\Applications\\Apache Tomcat 8.0.9\\logs\\localhost_access_log.*.txt"
   - "e:\\Applications\\Apache Tomcat 8.0.9\\logs\\*.log"
   input_type: log

答案 1 :(得分:2)

正如Jordan所指出的,这是由反斜杠被解释为转义序列引起的。

有两种可能的解决方法:

1)引用并转义每个反斜杠:

- "e:\\Applications\\Apache Tomcat 8.0.9\\logs\\*.log"

2)删除引号(但不是当配置参数需要字符串列表时,这不起作用)

- e:\Applications\Apache Tomcat 8.0.9\logs\*.log

如果配置参数需要列表格式[],例如certificate_authorities,那么您必须使用解决方法#1。

certificate_authorities: ["C:\\certs\\filebeat.crt"] 

另见https://github.com/elastic/beats/issues/1495