mysql myawr 死锁_超详细的mysql-awr开源监控体系搭建,值得收藏

概述

今天主要分享一款开源的mysql工具--myawr。myawr以mysql instance 为单位,每隔一段时间进行采样,然后把数据保存到数据库,以便分析。目前myawr脚本收集的信息包括5个部分:

1)系统方面的:负载、cpu、io、网络、swap、磁盘空间

2)Mysql状态方面的:

具体到一些QPS、TPS、key Buffer 命中率、InnoDB Buffer命中率、Query Cache命中率、Table Cache状态量、Tmp Table状况、innodb status、Threads_connected、Opened_tables、Select_full_join、Innodb_log_waits量等等。

3)Mysql slow query方面的信息,可通过mysql instance id进行关联:

4)如果Mysql开启了performance schema:

收集events_waits_summary_global_by_event_name、file_summary_by_event_name等

5)Mysql peak 信息的收集,包括active session 信息,包括sql,当时的lock信息,当时的innodb status。

因为网上的都写的很简单,很多细节都没写到,所以整理了一下怎么去搭建,大概分成两部分。

一、部署前准备

1、开源地址

见:https://github.com/noodba/myawrmyawr is a tool for collecting and analyzing performance data for MySQL database (including os info ,mysql status info and Slow Query Log all of details).

The idea comes from Oracle awr. Myawr periodic collect data and save to the database as snapshots.

Myawr was designed as CS architecture.Myawr depends on (but not necessary) performance schema of MySQL database.

Myawr consists of three parts:

myawr.pl--------a perl script for collecting mysql performance data

myawrrpt.pl-----a perl script for analyzing mysql performance data

myawrsrpt.pl-----a perl script for analyzing mysql peak time data

2、环境规划

e5b1f903f13238e2add18c69fa34becb.png3、安装包准备

这里主要准备myawr的相关脚本、percona-toolkit还有perl-DBD-mysql安装包。

也可以私信我关键字:myawr,我这边再发给你。

二、监控端部署

1、安装mysql数据库

1.1、创建基础目录并修改文件夹的属组

mkdir -p /data/datafile

mkdir –p /data/log

chown -R mysql:mysql /data

6a098e13d503ba6e2907efaffbfda8dc.png1.2、卸载自带包

sudo yum remove -y mariadb*

edb493493aa6a8b3f3306231a2b0ef50.png1.3、安装rpm

rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm

449c69758a946fb8db0d92adb81e1440.png1.4、修改数据库my.cnf参数

# vi /etc/my.cnf

[mysqld]

datadir=/data/datafile

socket=/var/lib/mysql/mysql.sock

symbolic-links=0

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

lower_case_table_names=1

character_set_server=utf8

max_connections=2000

log-bin = /data/log/mysql-bin.log

server-id = 1

log-bin-index =/data/log/binlog.index

log_bin_trust_function_creators=1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO

1.5、启动服务

service mysqld restart

a0259f770813534321386c2b5a05a72d.png1.6、修改数据库密码

--查看数据库默认密码

# cat /var/log/mysqld.log|grep password

--更改密码

# mysql -u root -p

mysql> set global validate_password_policy=0;

mysql> SET PASSWORD = PASSWORD('fswl@1234');

98a2a74e973a68fa438e3050c6f4a641.png2、初始化数据

执行修改后的数据初始化脚本:myawr.sql

d36315244b1ff37f8c981d25187516e3.png3、安装perl

# rpm -qa |grep perl-DBD*

--如果没安装

# rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm

# rpm -ivh perl-DBD-MySQL-4.023-5.el7.x86_64.rpm

--或者

yum install -y perl-DBD-MySQL.x86_64

e39df9be0297d2c989eb1be3e4545e33.png4、添加被监控主机

INSERT INTO `myawr_host` ( id, host_name, ip_addr, PORT, db_role, version, uptime, running_thread_threshold, times_per_hour )

VALUES

( 11, 'ZL-FSL-PAS-TEST-DB', '172.26.151.70', 3306, 'master', '5.7', 1, 10000, 0 );

2a684d2c7976b66116ef22a8ce5923e5.png5、授权

grant all on myawr.* to 'myawr'@'localhost' identified by "xx";

grant all on myawr.* to 'myawr'@'%' identified by "xx";

3204bb3818858bee863ea8ef753244b2.png

到这里监控端的部分就配置好了,后面介绍一下被监控端的配置和测试脚本,感兴趣的朋友可以关注下~

c5a38bc3b5be0a55492fee2e7e8d2512.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值