启动LogStash连接SQL Server时遇配置错误求助
Logstash连接SQL Server配置错误修复方案
错误原因
你的配置文件中存在不可见的特殊字符(如零宽空格),这些字符混杂在大括号{、}周围,导致Logstash配置解析器无法正确识别语法结构,进而抛出配置错误。
修复步骤
- 使用纯文本编辑器(如Notepad++、VS Code,关闭自动格式化和特殊字符插入功能)重新创建配置文件,或清空现有文件后手动输入以下干净的配置内容:
input { jdbc { # jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mssql-jdbc-7.3.1.jre8-preview.jar" jdbc_driver_library => "C:\DevSoft\sqljdbc_11.2\enu\mssql-jdbc-11.2.0.jre11.jar" jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver" jdbc_connection_string => "jdbc:sqlserver://elastic-dev-01.database.windows.net:1433;database=logstashsample;user=**;password=**;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;" jdbc_user => "sa" jdbc_password => "***" schedule => "* * * * *" # 每分钟执行一次,遵循标准crontab格式 statement => "select * from Products" clean_run => true } } output { elasticsearch { hosts => "localhost:9200" index => "products_index" } stdout { codec => rubydebug } }
- 同步修正几个语法细节:
- 原
schedule => "* "不符合crontab规范,改为"* * * * *"实现每分钟执行 clean_run=>true需在=>前后添加空格,符合Logstash配置语法要求
- 原
- 保存文件后重新执行启动命令:
logstash.bat -f c:\DevSoft\logstash-8.3.3\bin\logstash-sample.conf
验证要点
- 确保配置文件中所有大括号
{}为纯ASCII字符,无隐形特殊字符 - 所有配置项的
=>前后必须保留空格 - crontab格式的
schedule参数需严格遵循「分 时 日 月 周」的规范
内容的提问来源于stack exchange,提问作者Abhijeet
相关产品推荐
相关产品推荐

