使用 logstash 连接 MYSQL 时出错

Error while connecting MYSQL with logstash

我在启动 logstash 时遇到了这个错误。 我已将 MYSQL db 配置为 logstash 中的输入。

 Pipeline_id:main
  Plugin: <LogStash::Inputs::Jdbc jdbc_user=>"admin", jdbc_password=><password>, statement=>"SELECT * from table", jdbc_driver_library=>"/usr/s$
  Error: Permission denied - /.logstash_jdbc_last_run
  Exception: Errno::EACCES
  Stack: org/jruby/RubyIO.java:1237:in `sysopen'
org/jruby/RubyIO.java:3800:in `write'

last_run_metadata_path 选项 defaults 到“#{ENV['HOME']}/.logstash_jdbc_last_run”,看起来它的计算结果是 /.logstash_jdbc_last_run。您正在获取 EACCES,因为您没有对根目录的写入权限。

要修复它,请将 last_run_metadata_path 选项设置为您具有写入权限的目录中的文件。如果您的输入配置以

开头
input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"

你可以在那里添加一行

    last_run_metadata_path => "/tmp/.logstash_jdbc_last_run"

使用一些您知道可以写入并且其他人不会使用的路径。