ELK收集MySQL SlowLog(Filebeat .KO. Logstash )【实操系列】

本文档介绍了如何在腾讯云环境中收集MySQL的慢查询日志(SlowLog),并展示了通过Logstash和Filebeat两种方案的配置与实践。在Logstash方案中,由于默认配置内存消耗大,作者尝试了Filebeat,利用其内置的MySQL模块简化了日志收集。通过修改Filebeat配置,成功激活mysql模块,实现了高效且节省资源的日志收集。
摘要由CSDN通过智能技术生成

故事背景

1. 需求

收集腾讯云MySQL实例的慢查询,并展示

2. 问题拆解

  1. 调用腾讯云API接口拉取slowlog文件
  2. 使用LogstashFilebeat收集慢查询

3. 难点/处理方法

难点

每次拉取慢查询只能是全量拉取

本人编程能力比较差,仅仅提供粗糙的处理方式

处理方法

腾讯云的API并不会下载慢查询文件,只会打印文件大小,下载地址等信息

# 当前存在这三个文件
slcur:当前最新慢查询日志
sl2elk:最终会被elk采集的慢查询日志(可以认为是跟slcur数据保持一致)。
slold:始终是上一个版本的慢查询日志

# 调用API获取当前慢查询日志文件大小
if slcur_size > sl2elk_size: # 如果当前慢查询大小比sl2elk的大,则说明需要更新(此时并没有真正下载最新的慢查询日志)
   mv slcur slold # 将当前的慢查询移动到存放老版本的文件夹中
   wget slcur # wget重新获取最近的慢查询日志
   num=`cat slold | wc -l` # 从老版本慢查询日志中慢查询的条数
                     # 此时的slcur是比sl2elk完整的,所以要将差异的部分追缴到sl2elk中
   sed -n "$num,$p" slcur >> sl2elk # 追加差异部分日志到sl2elk中

可能有点2,希望得到大佬们的指导,谢谢。

ELK收集MySQL SlowLog

Elasticsearch、Kibana的安装部署不做赘述,重点放在Logstash和Filebeat

方案一:Logstash收集

input {
   
  file {
   
    type => "xxxx"
    path => "/PATH/slowlog_20200204.log"
    start_position => beginning
    codec => multiline {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值