第一节 Yearning

想了解 Yearning 工具安装和使用详情,可参考官网文档:https://guide.yearning.io/

1.1 Yearning 简介

Yearning 开源的 MySQL SQL 语句审核平台,提供数据库字典查询,查询审计,SQL 审核等多种功能。

建议使用 Yearning2.0。

1.2 Yearning 功能

Yearning 工具包含的主要功能如下:

SQL 查询

查询导出 查询自动补全

SQL 审核

流程化工单 SQL 语句检测 SQL 语句执行 SQL 回滚 历史审核记录

推送

站内信工单通知 E-mail 工单推送 钉钉 webhook 机器人工单推送

其他

todoList LDAP 登陆

用户权限及管理

拼图式细粒度权限划分

第二节 canal

想了解更多 cannal 工具详情,可参考官网文档:https://github.com/alibaba/canal

2.1 canal 简介

canal 译意为水道/管道,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。

早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍 生出了大量的数据库增量订阅和消费业务。

基于日志增量订阅和消费的业务包括以下内容:

数据库镜像 数据库实时备份 索引构建和实时维护(拆分异构索引、倒排索引等) 业务 cache 刷新 带业务逻辑的增量数据处理

当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x

第三节 DataX

想了解更多 DataX 工具详情,可参考官网文档:https://github.com/alibaba/DataX

3.1 DataX 简介

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、 SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

第四节 percona-toolkit

想了解更多 percona-toolkit 工具详情,可参考官网文档:htt ps://www.percona.com/doc/percona-toolkit/3.0/index.html

4.1 percona-toolkit 介绍

MySQL 数据库是轻量级、开源数据库的佼佼者,因此有很多功能强大第三方的衍生产品,如 perconatoolkit,XtraBackup 等。percona-toolkit 是一组高级命令行工具的集合,可以查看当前服务的摘要信 息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等。

percona-toolkit 工具是 MySQL 一个重要分支产品 percona 的,它是一组命令的集合。

第五节 MySQLMTOP

想了解更多 MySQLMTOP 工具详情,可参考官网文档:http://www.lepus.cc/

5.1 MySQLMTOP 简介

MySQLMTOP 是一个由 Python+PHP 开发的开源 MySQL 企业监控系统。该系统由 Python 实现多进程数 据采集和告警,PHP 实现 Web 展示和管理,优点如下:

MySQL 服务器无需安装任何 Agent,只需在监控 WEB 界面配置相关数据库信息 启动监控进程后,即可对上百台 MySQL 数据库的状态、连接数、QTS、TPS、数据库流量、复制、 性能慢查询等进行实时监控。

可以在数据库偏离设定的正常运行阀值(如连接异常,复制异常,复制延迟) 时发送告警邮件通知到 DBA 进行处理。

可以对历史数据归档,通过图表展示数据库近期状态,以便 DBA 和开发人员能对遇到的问题进行分 析和诊断。

MySQL运维和第三方工具 - 图1

第六节 ELK

6.1 为什么用 ELK

在简单应用中,直接在日志文件中 grep 就可以获得自己想要的信息。但在规模较大分布式系统中,此 方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中 化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点 上的日志统一收集,管理,访问。

一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分 情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块。构建一套集中式日志系统,可以 提高定位问题的效率。

一个完整的集中式日志系统,需要包含以下几个主要特点:

收集-能够采集多种来源的日志数据

传输-能够稳定的把日志数据传输到中央系统

存储-如何存储日志数据

分析-可以支持 UI 分析

警告-能够提供错误报告,监控机制

ELK 提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场 合的应用。目前主流的一种日志系统。

6.2 ELK 实现架构

ELK 最早是 Elasticsearch(简称 ES)、Logstash、Kibana 三款开源软件的简称,三款软件后来被同一 公司收购,并加入了 Xpark、Beats 等组件,改名为 Elastic Stack,成为现在最流行的开源日志解决方 案,虽然有了新名字但大家依然喜欢叫 ELK,现在所说的 ELK 就指的是基于这些开源软件构建的日志系 统。

MySQL运维和第三方工具 - 图2

上述架构中,各技术作用如下

MySQL 服务器安装 Filebeat 作为 agent 收集 slowLog

Filebeat 读取 MySQL 慢日志文件做简单过滤传给 Kafka 集群

Logstash 读取 Kafka 集群数据并按字段拆分后转成 JSON 格式存入 ES 集群

Kibana 读取 ES 集群数据展示到 web 页面上

第七节 Prometheus

7.1 Prometheus 简介

Prometheus 于 2012 年由 SoundCloud 创建,目前已经已发展为最热门的分布式监控系统。 Prometheus 完全开源的,被很多云厂商(架构)内置,在这些厂商(架构)中,可以简单部署 Prometheus,用来监控整个云基础架构设施。比如 DigitalOcean 或 Docker 都使用普罗米修斯作为基础 监控。

Prometheus 是一个时间序列数据库,它涵盖了可以绑定的整个生态系统工具集及其功能。

Prometheus 主要用于对基础设施的监控,包括服务器、数据库、VPS,几乎所有东西都可以通过 Prometheus 进行监控。

Prometheus 主要优点如下:

提供多维度数据模型和灵活的查询方式。通过将监控指标关联多个 tag,来将监控数据进行任意维 度的组合,并且提供简单的 PromQL,还提供查询接口,可以很方便地结合等 GUI 组件展示数据。

在不依赖外部存储的情况下,支持服务器节点的本地存储。通过 Prometheus 自带的时序数据库, 可以完成每秒千万级的数据存储。

定义了开发指标数据标准,以基于 HTTP 的 pull 方式采集时序数据。只有实现了 Prometheus 监控数 据格式的监控数据才可以被 Prometheus 采集、汇总。

支持通过静态文件配置和动态发现机制发现监控对象,自动完成数据采集。Prometheus 目前已经 支持 Kubernetes、etcd、consul 等多种服务发现机制,可以减少运维人员的手动配置环节。

2 易于维护,可以通过二进制文件直接启动,并且提供容器化部署镜像。 支持数据的分区采集和联邦部署,支持大规模集群监控。

结语

对于运维工具,了解下即可,需要的时候再去学习,应更专注于真正需要学习的内容!