我是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: logRun Code Online (Sandbox Code Playgroud)
配置中没有选项卡。由PSPad验证。
并取决于行尾我得到以下错误:
使用DOS:
加载配置文件错误:apache.yml上的YAML配置解析失败:yaml:第4行:发现未知的转义字符。正在退出。
使用UNIX:
加载配置文件错误:apache.yml上的YAML配置解析失败:yaml:第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
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用另一个反斜杠来转义反斜杠:
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
Run Code Online (Sandbox Code Playgroud)
正如Jordan指出的那样,这是由于反斜杠被解释为转义序列造成的。
有两种可能的解决方法:
1)引用和转义每个反斜杠:
- "e:\\Applications\\Apache Tomcat 8.0.9\\logs\\*.log"
Run Code Online (Sandbox Code Playgroud)
2)删除引号(但不是当配置参数需要字符串列表时这不起作用)
- e:\Applications\Apache Tomcat 8.0.9\logs\*.log
Run Code Online (Sandbox Code Playgroud)
如果配置参数需要列表格式[],例如certificate_authorities,那么您必须使用解决方法#1。
certificate_authorities: ["C:\\certs\\filebeat.crt"]
Run Code Online (Sandbox Code Playgroud)
另见https://github.com/elastic/beats/issues/1495
| 归档时间: |
|
| 查看次数: |
13725 次 |
| 最近记录: |