rds-slowquery-log-demo

Stars
4
Committers
2

RDS

  • RDS
  • RDS
  • Elasticsearch + Fluentd + Kibana(EFK )

docker-compose



RDS

  • log_output : TABLE
  • slow_query_log : 1
  • long_query_time :
  • log_output : FILE

fluent.conf ()

<source>
  @type rds_slowlog
  tag rds-slowlog
  host ${RDS_ENDPOINT}
  username ${RDS_USERNAME}
  password ${RDS_PASSWORD}
</source>

(snip)

stream.conf ()

<source>
  @type rds_mysqlslowlog_stream
  tag rds-slowlog
  db_instance_identifier your-db
  marker_file /tmp/log_marker.txt
</source>

(snip)

docker-compose-stream.yml ()

elasticsearch:
  image: elasticsearch
  ports:
    - 9200:9200
    - 9300:9300

fluentd:
  build: .
  links:
    - elasticsearch
  volumes:
    - .:/home/fluent
  environment:
    - FLUENTD_CONF=stream.conf
    - AWS_ACCESS_KEY_ID=AKxxxxxxxxxxxxxxxxxxxxxxxx
    - AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

kibana:
  image: kibana
  ports:
    - 5601:5601
  links:
    - elasticsearch

docker-compose build
docker-compose up -d
docker-compose -f docker-compose-stream.yml build fluentd
docker-compose up -d

mapping template

curl -XPUT http://elasticsearch:9200/_template/mysqlslowquery_template -d '
{
  "template": "mysqlslowquery-*",
  "mappings": {
    "mysqlslowquery": {
      "properties": {
        "query_time_in_ns": { "type": "integer" },
        "lock_time_in_ns": { "type": "integer" },
        "rows_examined": { "type": "integer" },
        "rows_sent": { "type": "integer" },
        "sql_text": {
          "type": "string",
          "fields": {
            "raw": {"type": "string", "index": "not_analyzed"}
          }
        }
      }
    }
  }
}'
curl -XPUT http://elasticsearch:9200/_template/mysqlslowquery_template -d '
{
  "template": "mysqlslowquery-*",
  "mappings": {
    "mysqlslowquery": {
      "properties": {
        "query_time": { "type": "float" },
        "lock_time": { "type": "float" },
        "rows_examined": { "type": "integer" },
        "rows_sent": { "type": "integer" },
        "sql": {
          "type": "string",
          "fields": {
            "raw": {"type": "string", "index": "not_analyzed"}
          }
        }
      }
    }
  }
}'

mapping template

curl -XDELETE "elasticsearch:9200/mysqlslowquery-*"

() Kibana

Elasticsearch Kibana Kibana OK

% tree kibana
kibana
 dashiboard.json
 discover.json
 visualize.json

0 directories, 3 files

  • TABLE FILE
  • sql sql_text analyze (multi_field )
  • fluent-plugin-rewrite
  • query_time lock_time NN:NN:NN record_transformer

todo

  • FILE
  • docker-compose v2