MySQLプラグインのインストール

td-agent-gemコマンドを利用して、mysql2とfluent-plugin-mysqlを導入します。

  • 実行例
    # td-agent-gem install mysql2
    Building native extensions.  This could take a while...
    Successfully installed mysql2-0.4.9
    Parsing documentation for mysql2-0.4.9
    Installing ri documentation for mysql2-0.4.9
    Done installing documentation for mysql2 after 0 seconds
    1 gem installed
    # td-agent-gem install fluent-plugin-mysql
    Fetching: mysql2-cs-bind-0.0.6.gem (100%)
    Successfully installed mysql2-cs-bind-0.0.6
    Fetching: ruby_dig-0.0.2.gem (100%)
    Successfully installed ruby_dig-0.0.2
    Fetching: strptime-0.1.9.gem (100%)
    Building native extensions.  This could take a while...
    Successfully installed strptime-0.1.9
    Fetching: serverengine-2.0.5.gem (100%)
    Successfully installed serverengine-2.0.5
    Fetching: msgpack-1.1.0.gem (100%)
    Building native extensions.  This could take a while...
    Successfully installed msgpack-1.1.0
    Fetching: fluentd-0.14.20.gem (100%)
    Successfully installed fluentd-0.14.20
    Fetching: fluent-plugin-mysql-0.2.1.gem (100%)
    Successfully installed fluent-plugin-mysql-0.2.1
    Parsing documentation for mysql2-cs-bind-0.0.6
    Installing ri documentation for mysql2-cs-bind-0.0.6
    Parsing documentation for ruby_dig-0.0.2
    Installing ri documentation for ruby_dig-0.0.2
    Parsing documentation for strptime-0.1.9
    Installing ri documentation for strptime-0.1.9
    Parsing documentation for serverengine-2.0.5
    Installing ri documentation for serverengine-2.0.5
    Parsing documentation for msgpack-1.1.0
    Installing ri documentation for msgpack-1.1.0
    Parsing documentation for fluentd-0.14.20
    Installing ri documentation for fluentd-0.14.20
    Parsing documentation for fluent-plugin-mysql-0.2.1
    Installing ri documentation for fluent-plugin-mysql-0.2.1
    Done installing documentation for mysql2-cs-bind, ruby_dig, strptime, serverengine, msgpack, fluentd, fluent-plugin-mysql after 6 seconds
    7 gems installed
    

プラグインの導入時に前提となっているライブラリ(libmysqlclient)などがありますので、導入時にOSに合わせてご確認ください。
http://www.rubydoc.info/gems/fluent-plugin-mysql/0.0.8#Prerequisites

実行時に以下のエラーが発生する場合は、MySQLのプラグインがインストールされていません。

config error file="conf/apppot-iot.conf" error="Unknown output plugin 'mysql'. Run 'gem search -rd fluent-plugin' to find plugins"

apppot-iot.confの編集

<match apppot.{Topic名}>
    @type mysql
    host ホスト名    port 3306
    username DBユーザー
    password パスワード

    database apppot_jp_co_ncdc_apppot_mini4wd_1_0_0
    table AccelGyro

    include_time_key yes
    utc

    format jsonpath
    sql INSERT INTO AccelGyro(objectId, accelX, accelY, serverCreateTime, scopeType, createTime, serverRecordStatus, groupIds, createUserId, time) VALUES (?, ?, ?, ?, '3', ?, '1', '{1}', '1', ?)
    key_names message.accel-gyro.time, message.accel-gyro.accel_x, message.accel-gyro.accel_y, time, message.accel-gyro.time, message.accel-gyro.time 

    flush_interval 3s
    num_threads 1
</match>