mysql 5.7スロークエリーログ+logstash+elasticsearch+kibanan/head=スロークエリーweb表示
3900 ワード
逆説的なパターンですね.上のスクリーンショットから分かるように、遅いクエリーログはelasticsearchに入っていますが、search fieldには表示されていません.
構成について話しましょう.
logstash構成For mysql 5.7
….
elasticsearch
eh. 他にも何も配置されていないようですが、*elasticsearch、直接実行すればいいのですが、パラメータを調整する必要がある場合があります.私はelasticsearchの頭部に直接書きました.
効果の表示
test-mysql-slow-logはすでにいくつかあります.ところで、elasticsearchにログを打った後、eにpatternを設定するのを忘れました.
上の図の中の赤い枠のように、私たちは「test-mysql-slow-log-*」を設定すればいいのですが、ログが入ってきたら、下に緑の点ができる状態が見えます.ログが入っていないか、私たちの「インデックス」が間違っていても、緑の色は表示されません.
作成をクリックすると、Discoverページに新しいインデックスが表示されます.
現在、query timeという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をインタフェースにどのように表示するかという問題が残っています.