当前位置: 主页 > 数据库

打开数据库失败-京东云擎代码库部署失败

发布时间:2023-02-09 10:08   浏览次数:次   作者:佚名

0 前言

由于mysql免费、稳定、性能好,是市面上大多数公司的数据库选择。 在实际生产环境中,我们需要及时了解数据库中的错误日志、慢日志等信息,以帮助我们排查和优化。

到服务器上去查看日志很不方便,尤其是分布式部署的时候,所以我们需要一个统一的监控平台来实时方便的查看这些日志数据。

那么今天就让我们一步步搭建这样一个平台吧

2. 下载

首先ELK的搭建我就不重复了。 不清楚的同学可以看看之前的博客:

ELK搭建(一):实现分布式微服务日志监控

因为我的ELK环境是7.13.0,所以需要下载对应版本的filebeat

​​​​

3.filebeat介绍

filebeat是elastic官方提供的轻量级日志收集器。 从名字也可以知道,主要用于文件的数据收集。 基于Golang开发,可以安装在想要记录日志的服务器或主机上,定时读取相应的数据,发送到elasticsearch或logstash。 即使数据量很大,我们也可以先输出到kafka、redis等中间件。

根据官方文档,filebeat主要由两个主要组件组成:input和harvesters。

接下来,配置输出组件以输出获取的数据。

ELK搭建(四):监控mysql慢查询、错误日志日志_mysql

Filebeat支持多种服务的数据采集,包括但不限于Mysql、MongoDB、Nginx、Redis、ActiveMQ、PostgreSQL、RabbitMQ、Tomcat等。更多可查看官方文档

借助kibana提供的开箱即用的数据dashboard,可以快速搭建监控平台。

4.安装filebeat

下面的安装步骤也可以在kibana首页>添加数据>MySQL日志页面看到

ELK搭建(四):监控mysql慢查询、错误日志日志_kibana_02

1、解压压缩包(这里以mac版为例,请根据实际操作下载系统和版本对应的filebeat)

tar -zxvf filebeat-7.13.0-darwin-x86_64.tar.gz

2.修改filebeat.yml配置文件

setup.template.settings:
index.number_of_shards: 1
# 因为es是单节点,所以将副本分片设置为0.否则会报黄
index.number_of_replicas: 0
output.elasticsearch:
hosts: ["192.168.244.11:9200"]
username: "elastic"
password: "elastic"
setup.kibana:
host: "192.168.244.11:5601"

3.启用mysql模块

./filebeat modules enable mysql

4.修改mysql模块配置文件

vim modules.d/mysql.yml

修改内容,这里直接使用默认配置,即收集错误日志和慢日志

- module: mysql
# Error logs
error:
enabled: true
# 日志路径,如果不配置,filebeat将按照操作系统选择日志路径.
var.paths: ["/opt/homebrew/var/mysql/MacBook-Pro.local.err*"]

# Slow logs
slowlog:
enabled: true
# 日志路径,如果不配置,filebeat将按照操作系统选择日志路径.
var.paths: ["/opt/homebrew/var/mysql/MacBook-Pro-slow.log*"]

如果不知道错误日志和慢日志的位置,可以使用下面两条命令查询

show variables like 'log_error';
show variables like '%slow_query_log%';

5.加载kibana仪表板

./filebeat setup

6、运行filebeat,注意不要打断上面的命令再执行,直接新开一个窗口执行,否则可能会生成panel失败

./filebeat -e

ELK搭建(四):监控mysql慢查询、错误日志日志_数据_03

7、在kibana首页>添加数据>MySQL日志,点击查看数据。 如果出现成功提示,则配置成功。

ELK搭建(四):监控mysql慢查询、错误日志日志_elk_04

ELK搭建(四):监控mysql慢查询、错误日志日志_mysql_05

或者在dev-tool中查询filebeat-7.13.0索引。 如果有索引和数据,则配置成功

GET filebeat-7.13.0/_search

ELK搭建(四):监控mysql慢查询、错误日志日志_elk_06

8.点击mysql日志dashboard,生成dashboard

ELK搭建(四):监控mysql慢查询、错误日志日志_elk_07

直接跳转到Filebeat MySQL数据仪表盘,如果这里没有加载图形,查看filebeat-7.13.0索引中是否有数据

ELK搭建(四):监控mysql慢查询、错误日志日志_filebeat_08

测试

1、在mysql中执行如下命令,因为阈值设置为3,所以设置sleep 5s会判断为慢查询

select sleep(5);

ELK搭建(四):监控mysql慢查询、错误日志日志_kibana_09

2.查看面板打开数据库失败,可以看到慢日志已经更新

ELK搭建(四):监控mysql慢查询、错误日志日志_filebeat_10

至此,我们的mysql日志监控平台就搭建完成了。 当然,您也可以根据需要创建自定义图表。 如果你不知道如何创建它,你可以查看我以前的博客。

5.mysql开启慢日志

如果mysql没有开启慢日志,先开启:

1、登录mysql查看mysql是否开启了慢日志

show variables like '%slow_query_log%';

如图所示,未开启

ELK搭建(四):监控mysql慢查询、错误日志日志_elk_11

2.打开慢查询日志打开数据库失败,修改配置文件my.cnf

sudo vim /etc/my.cnf

添加内容

[mysqld]
# 开启慢日志
slow_query_log=1
# 日志位置
slow_query_log_file=/opt/homebrew/var/mysql/MacBook-Pro-slow.log
# 设置阈值
long_query_time=3
# 输出形式
log_output=FILE

3.重启mysql

sudo mysql.server restart

4.再次登录查询,已开通

ELK搭建(四):监控mysql慢查询、错误日志日志_数据_12