【问题标题】:JDBC not working for logstash and mongoDB connectionJDBC 不适用于 logstash 和 mongoDB 连接
【发布时间】:2020-05-28 18:07:12
【问题描述】:

此配置给出的输出为 [无法连接到数据库并且找不到合适的驱动程序!],我使用的是 logstash 版本 7.5.1

【问题讨论】:

  • 试用最新版本的JDBC
  • 我在哪里可以找到它?

标签: mongodb elasticsearch logstash-configuration elk logstash-jdbc


【解决方案1】:

这是解决方案link 以下代码。更多详情请参考link

input {
    jdbc {
        jdbc_driver_library => "mongojdbc1.2.jar"
        jdbc_driver_class => "com.dbschema.MongoJdbcDriver"
        jdbc_connection_string => "jdbc:mongodb://DB_ADDRESS:27017/DB_NAME"
        jdbc_validate_connection => true
        jdbc_user => ""
        clean_run => false
        record_last_run => true
        last_run_metadata_path => "/path/.logstash_jdbc_last_run"
        schedule => "*/10 * * * * *"
        jdbc_default_timezone => "YOUR_TIMEZONE"
        statement =>
        "
                    //well, actually this is JavaScript code. And was written in pure blood :(
                    var lastValue = :sql_last_value; //the last saved  date  that was scheduled to run query for
                    var HALF_HOUR_OFFSET = 1800000;

                    var extractedDate = lastValue.substring(0,10); //parsing the date of the last saved date
                    var year = Number(extractedDate.substring(0,4));
                    var month = Number(extractedDate.substring(5,7));
                    var day = Number(extractedDate.substring(8,10));

                    var extractedTime = lastValue.substring(11,23); //parsing the time of the last saved date
                    var hour = Number(extractedTime.substring(0,2));
                    var minute = Number(extractedTime.substring(3,5));
                    var seconds = Number(extractedTime.substring(6,8));
                    var miliseconds = Number(extractedTime.substring(9,12));

                    var upperEpoch = new Date(year,month-1,day,hour,minute,seconds,miliseconds).getTime(); //dates start from 0, that's why the minus 1
                    var bottomEpoch = upperEpoch - HALF_HOUR_OFFSET;

                    db.DB_COLLECTION.find({ COLLECTION_FIELD: { $gte : bottomEpoch, $lte: upperEpoch} },{'_id': false}); //we omit the 'id' since it irrelevant and also cause deserialize exception
                "
    }
}

【讨论】:

  • 能分享一下mongojdbc1.2.jar文件的下载链接吗?
  • @SanTiaGoKarThiCk 你下载了吗?
  • 是的,我现在做了,我的 unity 安装文件夹中有一个 unityjdbc.jar,我可以使用那个 jar 文件吗
  • @SanTiaGoKarThiCk 使用最近下载的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-21
  • 2013-12-02
  • 1970-01-01
  • 2015-11-06
  • 1970-01-01
  • 2015-10-26
  • 2020-01-11
相关资源
最近更新 更多