LoginSignup
6
9

More than 5 years have passed since last update.

logstashでOracleのデータを取得する

Last updated at Posted at 2016-02-16

logstashでOracleのデータを取得する

logstash-input-jdbcのドキュメントには、MySQLの例でOracleの例がないので、その備忘録です。
大事な注意点を3つ書きます。

試した環境
- logstash 2.2.1
- Oracle12c
- Windows7Pro 64bit
- JDK8

設定ファイル

完成品サンプル。

input {
  jdbc {
    jdbc_driver_library => "ojdbc7.jar"
    jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@オラクルのホスト:1521/SID"
    jdbc_user => "接続ユーザ"
    jdbc_password => "パスワード"
    schedule => "*/15 * * * *"
    statement => "select * from hogehoge"
    last_run_metadata_path => "./barbar.dat"
    type => "piyopiyo"
  }
}

注意点1 JDBCドライバの配置場所

jdbc_driver_libraryとして、ojdbc7.jarと書いていますが、この場合は、logstash/bin においてあることが前提です。

注意点2 JDBCドライバクラス名

JDBCドライバのクラス名として oracle.jdbc.driver.OracleDriverと書くとエラーになります。
Javaで慣れ親しんだ人ほど注意が必要。

こんなエラーに出くわします。

Error: oracle.jdbc.driver.OracleDriver not loaded. Are you sure you've included
the correct jdbc driver in :jdbc_driver_library?

20160216.png

configtestで確認しろよ、と出てきますが、configtestは何の問題もなく正常終了するので注意。

正しくはJava::oracle.jdbc.driver.OracleDriverと。

Java::oracle.jdbc.driver.OracleDriver

こう書くこと。 javaが小文字でもダメらしい。

参考) [Logstash and Oracle – JDBC input settings] http://dbtricks.com/?p=308 

<引用>
Running the query with the ‘–configtest’ flag did not help much but eventually, it turned out to be a simple typo. The oracle driver was not loaded only because the call was
” java::oracle.jdbc.driver.OracleDriver ” instead of ” Java::oracle.jdbc.driver.OracleDriver “.
(this one was really annoying but I hope this will save you time I spent on it ).
</引用>

注意点3 statementはセミコロンなしで!

終端にセミコロンをつけると、エラーになるよ。ORA-00933: SQLコマンドが正しく終了されていません。

20160216_1.png

気をつけよう。

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9