• Stars
    star
    144
  • Rank 255,590 (Top 6 %)
  • Language
    PHP
  • Created over 5 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Slowquery图形化显示MySQL慢日志工具

slowquery

Slowquery图形化显示MySQL慢日志工具 https://www.oschina.net/p/slowquery

视频演示:https://www.douyin.com/video/7301328824501914890

背景:由于天兔Lepus慢查询工具是运行在PHP CI框架里,而不是作为一个独立的web页面接口,所以想直接接入自动化运维平台里,移植代码比较困难,固考虑重构。

参考了开源工具Anemometer图形展示思路,并且把小米Soar工具集成进去,开发在页面上点击慢SQL,就会自动反馈优化建议,从而降低DBA人肉成本,同时也支持自动发送邮件报警功能。

agent客户端慢日志采集分析是结合Percona pt-query-digest工具来实现。

需要安装的步骤如下:

1、percona-toolkit工具的安装

2、php web mysql环境的搭建

# yum install httpd mysql php php-mysqlnd -y

3、安装Slowquery并配置

4、导入慢查询日志

5、访问界面,查看慢查询

6、配置邮件报警

image image

点击+号,点下面的SQL,会调用Soar反馈优化建议:

image image

工具搭建配置

1、移动到web目录

mv  slowquery  /var/www/html/

2、进入到slowquery/slowquery_table_schema目录下

导入dbinfo_table_schema.sql和slowquery_table_schema.sql表结构文件到你的运维管理机MySQL里。

(注:dbinfo表是保存生产MySQL主库的配置信息。)

例:

mysql -uroot -p123456 sql_db < ./dbinfo_table_schema.sql

mysql -uroot -p123456 sql_db < ./slowquery_table_schema.sql 

录入你要监控的MySQL主库配置信息

例:

mysql> INSERT INTO sql_db.dbinfo VALUES (1,'192.168.148.101','test','admin','123456',3306);

3、修改配置文件config.php,将里面的配置改成你的运维管理机MySQL的地址(用户权限最好是管理员)

4、修改配置文件soar_con.php,将里面的配置改成你的运维管理机MySQL的地址(用户权限最好是管理员)

5、进入到slowquery/client_agent_script目录下,把slowquery_analysis.sh脚本拷贝到生产MySQL主库上做慢日志分析推送,并修改里面的配置信息

定时任务(10分钟一次)

*/10 * * * * /bin/bash /usr/local/bin/slowquery_analysis.sh > /dev/null 2>&1

6、别的就没啥配置的了,直接打开浏览器访问slowquery.php就OK了。

http://yourIP/slowquery/slowquery.php

加一个超链接,可方便地接入你们的自动化运维平台里。

7、慢查询邮件推送报警配置。进入到slowquery/alarm_mail/目录里,修改sendmail.php配置信息

定时任务(每隔3小时慢查询报警推送一次)

0 */3 * * * cd /var/www/html/slowquery/alarm_mail;/usr/bin/php  /var/www/html/slowquery/alarm_mail/sendmail.php > /dev/null 2>&1

image


2023年9月13日更新: 用自研的sql_helper替换掉soar,无需部署,直接拉取docker pull slowquery即可。

服务端

拉取镜像

shell> docker pull docker.io/hcymysql/slowquery:2023-09-13

启动

shell> docker run -itd -e "TERM=xterm-256color" --privileged --name slowquery -p 80:80 -p 3306:3306 <IMAGE ID> /usr/sbin/init

进入docker里,启动httpd服务

shell> docker exec -it slowquery /bin/bash
shell> systemctl start httpd.service 

录入你要监控的MySQL主库配置信息

mysql> INSERT INTO slowquery.dbinfo VALUES (1,'192.168.148.101','test','admin','123456',3306);

客户端部署

进入到slowquery/client_agent_script目录下,把slowquery_analysis.sh脚本拷贝到生产MySQL主库上做慢日志分析推送,并修改里面的配置信息

定时任务(10分钟一次)

*/10 * * * * /bin/bash /usr/local/bin/slowquery_analysis.sh > /dev/null 2>&1

打开浏览器,输入http://yourIP/slowquery/slowquery.php

慢查询邮件推送报警配置

进入到slowquery/alarm_mail/目录里,修改sendmail.php配置信息

定时任务(每隔3小时慢查询报警推送一次)

0 */3 * * * cd /var/www/html/slowquery/alarm_mail;/usr/bin/php /var/www/html/slowquery/alarm_mail/sendmail.php

More Repositories

1

mysql_monitor

MySQL Monitor面向研发人员图形可视化监控工具
PHP
155
star
2

MHA-Re-Edition

MySQL (MHA)重构版
Python
67
star
3

reverse_sql

Binlog数据恢复,生成反向SQL语句
Python
65
star
4

sqlops

SQL自动审核-自助上线平台
PHP
60
star
5

mysqlstat

MySQL命令行监控工具 - mysqlstat
Python
60
star
6

mysql_install

MySQL 8.0 MGR自动安装配置脚本
Shell
55
star
7

sql_helper

输入SQL自动判断条件字段是否增加索引
Python
43
star
8

mysql_sniffer

mysql_sniffer 是一个基于 MySQL 协议的抓包工具,实时抓取 MySQL 服务端的请求,并格式化输出,输出内容包括访问时间、来源 IP、执行的SQL语句。以便检测升级到MySQL 8.0的SQL语法兼容性。
Python
37
star
9

pt-archiver

Percona pt-archiver重构版--大表数据归档工具
PHP
35
star
10

mongo_monitor

MongoDB ReplSet Monitor面向研发人员图形可视化监控工具
Perl
34
star
11

pt-kill

Percona PT-kill重构版(PHP)
PHP
30
star
12

pt-slave-repair

自动修复MySQL主从同步数据
Python
29
star
13

mongo_slowquery

MongoDB Slowquery平台可视化慢日志工具
PHP
23
star
14

redis_monitor

Perl
20
star
15

mgr_failover_vip

MySQL 8.0 MGR(组复制)高可用VIP故障转移脚本
PHP
18
star
16

os_monitor

傻瓜式免安装-Centos操作系统资源 图形可视化监控工具
Perl
16
star
17

binlog_parse_sql

将 binlog 解析为 SQL 并将其存入数据库
Python
14
star
18

imprison_rg

囚禁慢SQL
PHP
9
star
19

redis_find_bigkey

自定义阀值查找Redis Big Key(占用内存较多的Value)的工具
Python
6
star
20

PMongo-HotBackup

Percona MongoDB3.4 HotBackup PHP Script
PHP
4
star
21

batch_sshkey

SSH主机批量互信认证
Shell
4
star
22

ansible-simple

ansible简易版
Python
3
star
23

mysql_book

MySQL运维进阶指南
3
star
24

mysql_repl

轻便型的MySQL binlog replication tool
Python
3
star
25

orzdba_remote

Perl
3
star
26

data_mask_function

身份证号、住址、手机号、邮箱、姓名、银行卡号 - 脱敏函数
3
star
27

os

centos6 系统初始化脚本
Perl
2
star
28

hcymysql

Config files for my GitHub profile.
2
star
29

binlog_analysis

Binlog分析利器-binlog_analysis.py
Python
2
star
30

mysql_to_clickhouse_sync

MySQL to ClickHouse data synchronization
Python
2
star
31

mariadb_install

mariadb自动安装脚本
Shell
2
star
32

summarize_binlogs

MySQL Binlog分析统计概述
Shell
1
star
33

mongo_install

MongoDB 副本集安装配置脚本
Shell
1
star
34

ps8039

Percona Server 8.0.39 For Centos7
1
star
35

find_key

在不知道表名和字段名的情况下,查找出哪些字段里包含“关键字”的数据。
Python
1
star
36

update_10w

循环分批次批量更改数据10万行记录
Python
1
star
37

mysql_TenDB-Cluster

TenDB Cluster分部署数据库部署使用
1
star