【めも】fluentd 設定

ファイルに出力されたMySQLのslow query logを、Elasticsearchに格納しGrafanaで閲覧するために必要なfluentdの設定

    
  @type mysqlslowquery_ex
  read_from_head
  path /mysql/MyHome/logs/slow_query.log
  tag mysqlslowquery.myapplication
  pos_file /var/log/td-agent/mysql-slow.log.pos
  last_dbname_file /var/log/td-agent/mysql-slow.log.lastdb



  @type typecast
  types datetime:time



  @type record_transformer #このフィルタでデータ型を変更しておかないと、抽出されたunixtimeが整数型として扱われwarningとなる
  enable_ruby
  
    hostname ${hostname}
    datetime ${time.strftime('%Y-%m-%dT%H:%M:%S%z')} # %zでタイムゾーンを認識させないとGrafanaでJSTのさらに9時間先を示してしまう。
  



  @type mysql_explain # 現状は、slow queryのログファイルに複数のDBが存在するケースではexplainが取れない。lastdbがDBを取得するように改善予定
  host 127.0.0.1
  port 5605
  database tpcc
  username root
  password root
  sql_key sql
  added_key explain



  @type sql_fingerprint
  fingerprint_tool_path /usr/bin/pt-fingerprint



  @type elasticsearch
  type_name myapp-mysqlslowquery
  host 192.168.10.32
  port 8092
  time_key datetime
  time_key_format %Y-%m-%dT%H:%M:%S%z
  logstash_format true
  logstash_prefix mysqlslowquery
  include_tag_key true