即使是不成熟的尝试,也胜于胎死腹中的策略。

Logstash5.2用PGSQL jdbc报错FATAL: role "myuname" does not exist

Logstash | 作者 wyntergreg | 发布于2017年02月10日 | 阅读数:3825

从官网下载了5.2的tar包直接解压的,logstash.yml配了http.host和http.port,startup.options里配了JAVACMD、LS_HOME,其他配置都没配。
从PG官网下的最新jdbc driver,数据库是PG9.5.5,input/output如下:
 
input {
  jdbc {
    jdbc_driver_library => "jdbc-drivers/postgresql-9.4.1212.jar"
    jdbc_driver_class => "org.postgresql.Driver"
    jdbc_connection_string => "jdbc:postgresql://192.168.5.16:5432/AUDIT"
    jdbc_user => "postgres"
    schedule => "* * * * *"
    statement => "SELECT id, username, depname, srcpath, dstpath FROM tfilemonex WHERE id > :sql_last_value"
    use_column_value => true
    tracking_column => id
  }
}
output {
  elasticsearch { hosts => ["192.168.9.77:9200"] }
  stdout { codec => rubydebug }
}
 
然后bin/logstash -f **.conf以后启动不了,直接报错:
[ERROR][logstash.agent           ] Pipeline aborted due to error {:exception=>#<Sequel::DatabaseConnectionError: Java::OrgPostgresqlUtil::PSQLException: FATAL: role "greg" does not exist>, :backtrace=>["org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(org/postgresql/core/v3/QueryExecutorImpl.java:2455)",
 
后边好长的错误信息应该没关系了,greg是我当前系统用户,但是我已经在input里配了jdbc_user了呀,为什么连接的时候用的是系统用户?
官网没找到相关的配置文档,在哪里可以修改吗?
已邀请:

wyntergreg

赞同来自:

解决了,github上找到的解决方案,没人回答我也不链issue了,官网文档真是坑

wyntergreg

赞同来自:

https://github.com/logstash-pl ... s/107
issue在此,虽然没人看,但还是说一下吧
官网文档是要求配jdbc_user的,但是PG的JDBC需要在url里写user
没错,但是你不写jdbc_user这个参数,logstash会报错的。
结果就是url里和jdbc_user参数都要写user
this is the bullshit

要回复问题请先登录注册