EFK环境收集MySQL慢日志

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: EFK环境收集MySQL慢日志

本文通过EFK(Elasticsearch、Fluentd、Kibana)来收集MySQL慢日志,当前系统环境基于Centos7,MySQL基于wlnmp一键包安装。本文由吴昊博客全网首发。

注意文中软件版本,版本不同可能会影响最终结果,本文未在新版中进行测试。

1、安装Fluentd

方法一:使用官方推荐的安装方式

curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh

方法二:直接下载rpm包安装

wget https://s3.amazonaws.com/packages.treasuredata.com/3/redhat/7/x86_64/td-agent-3.8.1-0.el7.x86_64.rpm

yum install td-agent-3.8.1-0.el7.x86_64.rpm

2、修改fluentd启动用户

sed -i s#User=td-agent#User=root# /usr/lib/systemd/system/td-agent.service

sed -i s#Group=td-agent#Group=root# /usr/lib/systemd/system/td-agent.service

systemctl daemon-reload

3、安装fluent一些插件

安装mysql慢查询插件

td-agent-gem install fluent-plugin-mysqlslowquery

Fetching: myslog-0.1.1.gem (100%)

Successfully installed myslog-0.1.1

Fetching: fluent-plugin-mysqlslowquery-0.0.9.gem (100%)

Successfully installed fluent-plugin-mysqlslowquery-0.0.9

Parsing documentation for myslog-0.1.1

Installing ri documentation for myslog-0.1.1

Parsing documentation for fluent-plugin-mysqlslowquery-0.0.9

Installing ri documentation for fluent-plugin-mysqlslowquery-0.0.9

Done installing documentation for myslog, fluent-plugin-mysqlslowquery after 0 seconds

2 gems installed

安装elasticsearch插件

td-agent-gem install fluent-plugin-elasticsearch

Fetching: faraday-em_http-1.0.0.gem (100%)

Successfully installed faraday-em_http-1.0.0

Fetching: faraday-em_synchrony-1.0.0.gem (100%)

Successfully installed faraday-em_synchrony-1.0.0

Fetching: faraday-excon-1.1.0.gem (100%)

Successfully installed faraday-excon-1.1.0

Fetching: faraday-httpclient-1.0.1.gem (100%)

Successfully installed faraday-httpclient-1.0.1

Fetching: faraday-multipart-1.0.4.gem (100%)

Successfully installed faraday-multipart-1.0.4

Fetching: faraday-net_http-1.0.1.gem (100%)

Successfully installed faraday-net_http-1.0.1

Fetching: faraday-net_http_persistent-1.2.0.gem (100%)

Successfully installed faraday-net_http_persistent-1.2.0

Fetching: faraday-patron-1.0.0.gem (100%)

Successfully installed faraday-patron-1.0.0

Fetching: faraday-rack-1.0.0.gem (100%)

Successfully installed faraday-rack-1.0.0

Fetching: faraday-retry-1.0.3.gem (100%)

Successfully installed faraday-retry-1.0.3

Fetching: ruby2_keywords-0.0.5.gem (100%)

Successfully installed ruby2_keywords-0.0.5

Fetching: faraday-1.10.2.gem (100%)

Successfully installed faraday-1.10.2

Fetching: fluent-plugin-elasticsearch-5.2.4.gem (100%)

Successfully installed fluent-plugin-elasticsearch-5.2.4

Parsing documentation for faraday-em_http-1.0.0

Installing ri documentation for faraday-em_http-1.0.0

Parsing documentation for faraday-em_synchrony-1.0.0

Installing ri documentation for faraday-em_synchrony-1.0.0

Parsing documentation for faraday-excon-1.1.0

Installing ri documentation for faraday-excon-1.1.0

Parsing documentation for faraday-httpclient-1.0.1

Installing ri documentation for faraday-httpclient-1.0.1

Parsing documentation for faraday-multipart-1.0.4

Installing ri documentation for faraday-multipart-1.0.4

Parsing documentation for faraday-net_http-1.0.1

Installing ri documentation for faraday-net_http-1.0.1

Parsing documentation for faraday-net_http_persistent-1.2.0

Installing ri documentation for faraday-net_http_persistent-1.2.0

Parsing documentation for faraday-patron-1.0.0

Installing ri documentation for faraday-patron-1.0.0

Parsing documentation for faraday-rack-1.0.0

Installing ri documentation for faraday-rack-1.0.0

Parsing documentation for faraday-retry-1.0.3

Installing ri documentation for faraday-retry-1.0.3

Parsing documentation for ruby2_keywords-0.0.5

Installing ri documentation for ruby2_keywords-0.0.5

Parsing documentation for faraday-1.10.2

Installing ri documentation for faraday-1.10.2

Parsing documentation for fluent-plugin-elasticsearch-5.2.4

Installing ri documentation for fluent-plugin-elasticsearch-5.2.4

Done installing documentation for faraday-em_http, faraday-em_synchrony, faraday-excon, faraday-httpclient, faraday-multipart, faraday-net_http, faraday-net_http_persistent, faraday-patron, faraday-rack, faraday-retry, ruby2_keywords, faraday, fluent-plugin-elasticsearch after 1 seconds

13 gems installed

4、配置fluentd

如果你是按照本文方式安装的fluentd,那么默认配置文件在/etc/td-agent/td-agent.conf

cp /etc/td-agent/td-agent.conf /etc/td-agent/td-agent.conf.bak

vi /etc/td-agent/td-agent.conf

将配置文件中原有内容替换成以下配置,/data/mysql/mysql_slow_query.log为mysql慢日志文件路径,es的IP地址按照实际情况进行配置。如果你的es有配置认证,可以增加user fluent和password mysecret两个参数。

<source>

 @type mysql_slow_query

 path /data/mysql/mysql_slow_query.log

 path_key file_path

 tag mysqld.slowlog

 pos_file /var/log/td-agent/mysql-slow.log.pos

 <parse>

    @type none

 </parse>

</source>


<match mysqld.slowlog>

 @type elasticsearch

 host IP

 port 9200

 logstash_format true

 logstash_prefix mysql_slow.${tag}

</match>

5、安装jdk

rpm -ivh https://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm

yum install jdk1.8

6、安装Elasticsearch

cd /usr/local/src

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.rpm

yum install elasticsearch-6.2.3.rpm

vi /etc/elasticsearch/elasticsearch.yml

#设置监听端口为9200,network.hos按需配置

http.port: 9200

network.host: 0.0.0.0

启动服务

/etc/init.d/elasticsearch start

7、安装Kibana

cd /usr/local/src

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.3-x86_64.rpm

yum install kibana-6.2.3-x86_64.rpm

vi /etc/kibana/kibana.yml

#默认监听端口5601

server.port: 5601

#监听IP地址,这里改成0.0.0.0,即监听所有IP

server.host: "0.0.0.0"

#elasticsearch的地址,如elasticsearch与kibana安装在不同服务器上,需要手动指定地址,按需配置

elasticsearch.url: "http://IP:9200"

启动服务

/etc/init.d/kibana start

8、安装MySQL

我这里MySQL通过wlnmp一键包进行安装的,如果你在前面添加的wlnmp源,那么此处可以不执行

rpm -ivh https://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm

yum install wmysql57

配置/etc/my.conf启动慢日志slow_query_log=on,并重启MySQL服务/etc/init.d/mysql restart

9、启动Fluentd

systemctl daemon-reload

/etc/init.d/td-agent start

注:如果第一次启动报错,可以再试一次

10、造一条慢日志数据

注:MySQL默认密码为空,见官方文档https://www.wlnmp.com/install

mysql -uroot -p

mysql> select sleep(5);

11、访问kibana

你可能不会马上看到一下页面,大概有1~5分钟的延迟

此时MySQL慢日志的数据已经对接进来了。

注:最可能遇到的情况就是在kibana中刷不出来信息,检查配置文件是否配置正常,版本是否与本文一致,如果全部配置正常的情况下,1~5分钟内就会刷新出数据。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
目录
相关文章
|
12天前
|
SQL 运维 关系型数据库
深入探讨MySQL的二进制日志(binlog)选项
总结而言,对MySQL binlogs深度理解并妥善配置对数据库运维管理至关重要;它不仅关系到系统性能优化也是实现高可靠性架构设计必须考虑因素之一。通过精心规划与周密部署可以使得该机能充分发挥作用而避免潜在风险带来影响。
46 6
|
4月前
|
SQL 监控 关系型数据库
MySQL日志分析:binlog、redolog、undolog三大日志的深度探讨。
数据库管理其实和写小说一样,需要规划,需要修订,也需要有能力回滚。理解这些日志的作用与优化,就像把握写作工具的使用与运用,为我们的数据库保驾护航。
212 23
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
350 11
|
5月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
275 28
|
5月前
|
SQL 运维 关系型数据库
MySQL Binlog 日志查看方法及查看内容解析
本文介绍了 MySQL 的 Binlog(二进制日志)功能及其使用方法。Binlog 记录了数据库的所有数据变更操作,如 INSERT、UPDATE 和 DELETE,对数据恢复、主从复制和审计至关重要。文章详细说明了如何开启 Binlog 功能、查看当前日志文件及内容,并解析了常见的事件类型,包括 Format_desc、Query、Table_map、Write_rows、Update_rows 和 Delete_rows 等,帮助用户掌握数据库变化历史,提升维护和排障能力。
|
6月前
|
存储 SQL 关系型数据库
mysql的undo log、redo log、bin log、buffer pool
MySQL的undo log、redo log、bin log和buffer pool是确保数据库高效、安全和可靠运行的关键组件。理解这些组件的工作原理和作用,对于优化数据库性能和保障数据安全具有重要意义。通过适当的配置和优化,可以显著提升MySQL的运行效率和数据可靠性。
142 16
|
6月前
|
存储 SQL 关系型数据库
mysql的undo log、redo log、bin log、buffer pool
MySQL的undo log、redo log、bin log和buffer pool是确保数据库高效、安全和可靠运行的关键组件。理解这些组件的工作原理和作用,对于优化数据库性能和保障数据安全具有重要意义。通过适当的配置和优化,可以显著提升MySQL的运行效率和数据可靠性。
110 4
|
6月前
|
SQL 存储 关系型数据库
简单聊聊MySQL的三大日志(Redo Log、Binlog和Undo Log)各有什么区别
在MySQL数据库管理中,理解Redo Log(重做日志)、Binlog(二进制日志)和Undo Log(回滚日志)至关重要。Redo Log确保数据持久性和崩溃恢复;Binlog用于主从复制和数据恢复,记录逻辑操作;Undo Log支持事务的原子性和隔离性,实现回滚与MVCC。三者协同工作,保障事务ACID特性。文章还详细解析了日志写入流程及可能的异常情况,帮助深入理解数据库日志机制。
841 0
|
27天前
|
安全 关系型数据库 MySQL
MySQL安全最佳实践:保护你的数据库
本文深入探讨了MySQL数据库的安全防护体系,涵盖认证安全、访问控制、网络安全、数据加密、审计监控、备份恢复、操作系统安全、应急响应等多个方面。通过具体配置示例,为企业提供了一套全面的安全实践方案,帮助强化数据库安全,防止数据泄露和未授权访问,保障企业数据资产安全。
|
12天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
51 3

推荐镜像

更多