当前位置: 首页 > news >正文

ELK架构监控MySQL慢日志

目录

一、架构概述

二、安装部署

三、Filebeat配置

四、Logstash配置


一、架构概述

    本文使用将使用filebeat收集mysql日志信息,发送到redis中缓存,由logstash从redis中取出,发送es中存储,再从kibana中展示。

二、安装部署

  ELK各中间件的安装部署参考章节:审计日志>ELK日志收集,此处不再赘述。

三、Filebeat配置

filebeat.inputs:
- type: logenabled: truepaths:- /usr/local/mysql-8.2.0/mysql_slow.logscan_frequency: 10smultiline.pattern: '^\s*# Time:'multiline.negate: truemultiline.match: after output.redis:enabled: truehosts: ["192.168.122.227:6379","192.168.122.237:6379","192.168.122.238:6379"]key: "uap-mysql-slow-log"datatype: listpassword: "Redis@123456" db: 0codec: [ json ]loadbalance: truelogging.level: info
logging.to_files: true
logging.files:path: /opt/module/filebeat-8.11.0name: filebeat.log

四、Logstash配置

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.# 从redis里面拿日志数据
input {redis {batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用。data_type => "list" #logstash redis插件工作方式key => "ipu-cbs-mysql-slow-log" #监听的键值host => "192.168.122.227" #redis地址port => 6379 #redis端口号password => "Redis@123456" #如果有安全认证,此项为密码db => 0 #redis数据库的编号threads => 1 #启用线程数量tags => ["uap-mysql-slow-log-159"]}redis {batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用。data_type => "list" #logstash redis插件工作方式key => "ipu-cbs-mysql-slow-log" #监听的键值host => "192.168.122.237" #redis地址port => 6379 #redis端口号password => "Redis@123456" #如果有安全认证,此项为密码db => 0 #redis数据库的编号threads => 1 #启用线程数量tags => ["uap-mysql-slow-log-159"]}redis {batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用。data_type => "list" #logstash redis插件工作方式key => "ipu-cbs-mysql-slow-log" #监听的键值host => "192.168.122.238" #redis地址port => 6379 #redis端口号password => "Redis@123456" #如果有安全认证,此项为密码db => 0 #redis数据库的编号threads => 1 #启用线程数量tags => ["uap-mysql-slow-log-159"]}}filter {if "uap-mysql-slow-log-159" in[tags] {mutate {gsub => ["message", "# ", "","message", "\n", " ","message", "\s*@\s*", "@"]}grok {match => { "message" => "Time: %{TIMESTAMP_ISO8601:log_time} User@Host: %{DATA:user_host} Id:\s+%{NUMBER:id:int} 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} use\s+%{DATA:database};\s+SET\s+timestamp=%{NUMBER:timestamp}; %{GREEDYDATA:sql}" }}if [sql] {grok {match => { "sql" => "\/\* %{GREEDYDATA:comment} \*\/ %{GREEDYDATA:slow_sql}" }}}if ![slow_sql] {mutate {add_field => { "slow_sql" => "%{sql}"}}}# 将logdate的值赋值给@timestampdate {match => [ "log_time", "ISO8601" ]target => "@timestamp"timezone =>"+08:00"}mutate {remove_field => ["timestamp","input","ecs","log","@version","agent","comment","event","log_time","sql"]}}
}output {if "uap-mysql-slow-log-159" in [tags] {if "tm_aseanbank_tst" in [database]{elasticsearch {hosts => ["https://192.168.122.118:9200","https://192.168.122.119:9200","https://192.168.122.120:9200"]index => "ipu-cbs-mysql-slow-log-test"user => "elastic"password => "elastic"ssl_certificate_verification => truetruststore => "/opt/module/logstash-8.11.0/config/certs/http.p12"truststore_password => "123456"}}else if "tm_aseanbank_dev" in [database] {elasticsearch {hosts => ["https://192.168.122.118:9200","https://192.168.122.119:9200","https://192.168.122.120:9200"]index => "ipu-cbs-mysql-slow-log-dev"user => "elastic"password => "elastic"ssl_certificate_verification => truetruststore => "/opt/module/logstash-8.11.0/config/certs/http.p12"truststore_password => "123456"}}}
}

注意事项:  上面用的ipu-cbs-mysql-slow-log-dev 和  ipu-cbs-mysql-slow-log-test 两个索引,如果es中没有配置索引缺失自动生成,那么需要手动在es中生成这两个索引,索引的字段没有要求,缺的字段它在存储数据时会自行添加。

http://www.lryc.cn/news/258073.html

相关文章:

  • Linux命令---关机
  • 点云从入门到精通技术详解100篇-基于拓扑约束的3D点云实例分割(续)
  • java版Spring Cloud+Spring Boot+Mybatis之隐私计算 FATE - 多分类神经网络算法测试
  • Java之时间类2(JDK8新增)
  • MySQL InnoDB Replication部署方案与实践
  • 进程的同步和异步、进程互斥
  • 搞定课件录制,新手必备指南!
  • DevOps搭建(九)-Jenkins实现基础CI、CD详细操作
  • 十指波课堂:让学习编程不再是难事
  • IDEA卡顿,进行性能优化设置(亲测有效)——情况二
  • 利用Python和OpenCV实现将图像识别为Excel表格的便捷方法
  • mysql:查看一个表的索引信息
  • 12月11日作业
  • HTTP协议在Linux上进行数据库访问代码示例
  • CS.DEEP | 基于 openGauss 实现的计算机论坛项目
  • 【ArcGIS Pro微课1000例】0053:基于SQL Server创建与启用地理数据库
  • 快速排序(2)
  • 持续集成和持续交付
  • C#、JavaScript、VBScript解析JSON数据源码
  • JVM面试连环炮:你准备好迎接挑战了吗?
  • Ansible通过kubernetes.core.k8s_info和kubernetes.core.k8s访问OCP
  • vscode汉化
  • 美易投资:美国圣诞树价格飙升,涨价的问题所在?
  • 国内外聊天AI大比拼,你知道几个?一键了解最火聊天AI应用!
  • C++STL的vector模拟实现
  • openssl 常用命令 pkcs12
  • 2017下半年软工(桥接模式)
  • Hive 浅析
  • C 语言中,结构体「.」与「->」的区别
  • 【Java Web学习笔记】5 - XML