mysql 5.7スロークエリーログ+logstash+elasticsearch+kibanan/head=スロークエリーweb表示

3900 ワード

逆説的なパターンですね.上のスクリーンショットから分かるように、遅いクエリーログはelasticsearchに入っていますが、search fieldには表示されていません.
構成について話しましょう.
logstash構成For mysql 5.7
#input {
#  stdin {
#    type => "mysql-slow"
#    codec => multiline {
#      pattern => "^# User@Host:"
#      negate => true
#      what => previous
#    }
#  }
#}

input {
  #stdin {
  file {
    type => "mysql-slow"
    path => "/opt/mysql/log/slow_query_log.log"
    start_position => "beginning"
    codec => multiline {
      pattern => "^# User@Host:"
      negate => true
      what => previous
    }
  }
}

filter {
  # drop sleep events
  grok {
    match => { "message" => "SELECT SLEEP" }
    add_tag => [ "sleep_drop" ]
    tag_on_failure => [] # prevent default _grokparsefailure tag on real records
  }
  if "sleep_drop" in [tags] {
    drop {}
  }
  grok {
match => { "message" => "(?m)^#\s+User@Host:\s+%{USER:user}\[[^\]]+\]\s+@\s+(?:(?\S*) )?\[(?:%{IPV4:clientip})?\]\s+Id:\s+%{NUMBER:row_id:int}
#\s+Query_time:\s+%{NUMBER:query_time:float}\s+Lock_time:\s+%{NUMBER:lock_time:float}\s+Rows_sent:\s+%{NUMBER:rows_sent:int}\s+Rows_examined:\s+%{NUMBER:rows_examined:int}
\s*(?:use %{DATA:database};\s*
)?SET\s+timestamp=%{NUMBER:timestamp};
\s*(?(?\w+)\b.*;)\s*(?:
#\s+Time)?.*$"
} } date { match => [ "timestamp", "UNIX" ] remove_field => [ "timestamp" ] } } output { elasticsearch { hosts => ["192.168.3.228:9200"] index=>"mysql-slow-log-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }

….
elasticsearch
eh. 他にも何も配置されていないようですが、*elasticsearch、直接実行すればいいのですが、パラメータを調整する必要がある場合があります.私はelasticsearchの頭部に直接書きました.
export PATH=/usr/local/jdk1.8.0_111/bin/:$PATH
export JAVA_HOME=/usr/local/jdk1.8.0_111/

ulimit -n 65536
ulimit -u 10240

効果の表示
test-mysql-slow-logはすでにいくつかあります.ところで、elasticsearchにログを打った後、eにpatternを設定するのを忘れました.
上の図の中の赤い枠のように、私たちは「test-mysql-slow-log-*」を設定すればいいのですが、ログが入ってきたら、下に緑の点ができる状態が見えます.ログが入っていないか、私たちの「インデックス」が間違っていても、緑の色は表示されません.
作成をクリックすると、Discoverページに新しいインデックスが表示されます.
現在、query timeというfieldをインタフェースにどのように表示するかという問題が残っています.