使用ELK收集分析MySQL慢查詢日誌

2022-06-24 10:06:08 字數 2807 閱讀 8991

參考文件:

mysql開啟慢查詢不詳述

mysql5.7慢查詢日誌格式如下

/usr/local/mysql/bin/mysqld, version: 5.7.22-log (mysql community server (gpl)). started with:

tcp port: 3306 unix socket: /tmp/mysql3306.sock

time id command argument

# time: 2019-02-23t01:01:52.922426+08:00

# user@host: root[root] @ [172.16.90.53] id: 25913

# query_time: 1.393973 lock_time: 0.000076 rows_sent: 0 rows_examined: 0

use hope-framework;

set timestamp=1550854912;

insert into t_device_into_near_shop_tmp_data ( device_mac,

people_in,

people_out,

people_near,

request_message,

start_time,

start_timestamp,

create_time,

create_timestamp ) values ( 'ha0a00734',

0,0,

0,'',

'2019-02-23 01:01:51.512',

1550854911512,

'2019-02-23 01:01:51.512',

1550854911512 );

mysql主機安裝filebeat修改配置檔案/etc/filebeat/filebeat.yml

filebeat.inputs:

- type: log

enabled: true

paths:

- /opt/log/mysql/slow3306.log

#- c:\programdata\elasticsearch\logs\*

exclude_lines: ['^\# time|^/usr/local/mysql/bin/mysqld|^tcp port|^time'] #排除行

multiline.negate: true #多行合併

multiline.match: after

multiline.pattern: '^\# user|^\# time'

tags: ["mysql-slow-log"] #打乙個tags

filebeat.config.modules:

path: $/modules.d/*.yml

reload.enabled: false

setup.template.settings:

index.number_of_shards: 3

setup.kibana:

output.logstash: #輸出至logstash

hosts: ["192.168.1.4:5044"]

processors:

- add_host_metadata: ~

- add_cloud_metadata: ~

- drop_fields: #刪除無用的字段

fields: ["beat", "input", "source", "offset", "prospector"]

ps:刪除的無用欄位為以下幾個字段

修改logstash輸出測試/etc/logstash/conf.d/filebeat-logstash.conf 

input

}output

}

}

執行logstash 

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/filebeat-logstash.conf

多行輸出如下

增加filter過濾

input

}filter

grok \[[^\]]+\]\s+@\s+(?:(?\s*) )?\[(?:%)?\]\s+id:\s+%\n#\s+query_time:\s+%\s+lock_time:\s+%\s+rows_sent:\s+%\s+rows_examined:\s+%\n\s*(?:use %;\s*\n)?set\s+timestamp=%;\n\s*(?(?\w+)\b.*;)\s*(?:\n#\s+time)?.*$" ]

}date

mutate }}

output"

}stdout}}

執行再次輸出測試

輸出至elasticsearch即可使用kibana查詢

在kibana新增

Linux日誌收集分析工具 ELK

一般我們需要進行日誌分析場景 直接在日誌檔案中 grep awk 就可以獲得自己想要的資訊。但在規模較大的場景中,此方法效率低下,面臨問題包括日誌量太大如何歸檔 文字搜尋太慢怎麼辦 如何多維度查詢。需要集中化的日誌管理,所有伺服器上的日誌收集彙總。常見解決思路是建立集中 式日誌收集系統,將所有節點上...

初識日誌收集分析框架之ELK 一

事情是醬紫的,公司每年都會有年終技術嘉年華盛典,以往都是在年會上看別人站上領獎台,而今也感受了一把程式設計馬拉松的衝冠之路,路途並非坦途,但結果彌足珍貴,雖錯失冠軍寶座,決賽的 億級流量日誌架構挑戰 讓人獲益匪淺。打住打住打住,下面進入正題 基於對賽事題目的分析和最終輸出結果,考慮到比賽時間的有限,...

ELK之日誌查詢 收集與分析系統

專案由來 1 開發人員不能登入線上伺服器檢視詳細日誌,經過運維周轉費時費力 2 日誌資料分散在多個系統,難以查詢與整合 3 日誌資料量巨大,查詢速度太慢,無法滿足需求 4 無法全域性掌控專案執行狀況 5 日誌資料查詢不夠實時 6 資料分析人員不會寫 無法分析統計資料 7 框架裡包含的元件 logst...