打开数据库失败-京东云擎代码库部署失败
0 前言
由于mysql免费、稳定、性能好,是市面上大多数公司的数据库选择。 在实际生产环境中,我们需要及时了解数据库中的错误日志、慢日志等信息,以帮助我们排查和优化。
到服务器上去查看日志很不方便,尤其是分布式部署的时候,所以我们需要一个统一的监控平台来实时方便的查看这些日志数据。
那么今天就让我们一步步搭建这样一个平台吧
2. 下载
首先ELK的搭建我就不重复了。 不清楚的同学可以看看之前的博客:
ELK搭建(一):实现分布式微服务日志监控
因为我的ELK环境是7.13.0,所以需要下载对应版本的filebeat
3.filebeat介绍
filebeat是elastic官方提供的轻量级日志收集器。 从名字也可以知道,主要用于文件的数据收集。 基于Golang开发,可以安装在想要记录日志的服务器或主机上,定时读取相应的数据,发送到elasticsearch或logstash。 即使数据量很大,我们也可以先输出到kafka、redis等中间件。
根据官方文档,filebeat主要由两个主要组件组成:input和harvesters。
接下来,配置输出组件以输出获取的数据。
Filebeat支持多种服务的数据采集,包括但不限于Mysql、MongoDB、Nginx、Redis、ActiveMQ、PostgreSQL、RabbitMQ、Tomcat等。更多可查看官方文档
借助kibana提供的开箱即用的数据dashboard,可以快速搭建监控平台。
4.安装filebeat
下面的安装步骤也可以在kibana首页>添加数据>MySQL日志页面看到
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
7、在kibana首页>添加数据>MySQL日志,点击查看数据。 如果出现成功提示,则配置成功。
或者在dev-tool中查询filebeat-7.13.0索引。 如果有索引和数据,则配置成功
GET filebeat-7.13.0/_search
8.点击mysql日志dashboard,生成dashboard
直接跳转到Filebeat MySQL数据仪表盘,如果这里没有加载图形,查看filebeat-7.13.0索引中是否有数据
测试
1、在mysql中执行如下命令,因为阈值设置为3,所以设置sleep 5s会判断为慢查询
select sleep(5);
2.查看面板打开数据库失败,可以看到慢日志已经更新
至此,我们的mysql日志监控平台就搭建完成了。 当然,您也可以根据需要创建自定义图表。 如果你不知道如何创建它,你可以查看我以前的博客。
5.mysql开启慢日志
如果mysql没有开启慢日志,先开启:
1、登录mysql查看mysql是否开启了慢日志
show variables like '%slow_query_log%';
如图所示,未开启
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.再次登录查询,已开通