精华内容
下载资源
问答
  • MySQL运维和第三方工具
    2021-07-28 00:10:48

    第一节 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 和开发人员能对遇到的问题进行分 析和诊断。

    image.png

    第六节 ELK

    6.1 为什么用 ELK

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

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

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

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

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

    存储-如何存储日志数据

    分析-可以支持 UI 分析

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

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

    6.2 ELK 实现架构

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

    image.png

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

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

    结语

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

    更多相关内容
  • 导语:今天与大家一起探讨如何基于Python构建一个可扩展的运维自动化平台,也希望能与大家一起交流,共同成长。此次分享将通过介绍OMServer、OManager具备的功能、架构设计、模块定制、安全审计、C/S结构的实现等几...

    导语:

    今天与大家一起探讨如何基于Python构建一个可扩展的运维自动化平台,也希望能与大家一起交流,共同成长。

    此次分享将通过介绍OMServer、OManager具备的功能、架构设计、模块定制、安全审计、C/S结构的实现等几个方面的内容来展开。

    为什么选择Python?

    • 默认安装且跨平台

    • 可读性好且开发效率高

    • 丰富的第三方库(开发框架、各类API、科学计算、GUI等)

    • 社区活跃&众多开发者。

    0BaCAPSnJs8Python在腾讯的现状,根据去年内部提交组件语言统计,除去2、3、4前端技术,Python在高级编程语言中排第3位。

    应用在系统运维、业务逻辑、运营平台、测试工具、数据挖掘等领域,腾讯大名鼎鼎的“蓝鲸”运维PAAS平台就是基于Python语言来构建的。

    一、    平台介绍

    OMServer 一个集中式的Linux集群管理(基础)平台,具备业务集群管理、实时安全审计、功能模块定制、数据加密传输、支持主流Python组件、使用简单且体验好等特点。

    1、平台截图

    0BaCAik3vea

    0BaCAhPa9ia

    2、平台采用到的第三方库

    Django : 一个开放源代码的Web应用框架,由Python写成,采用了MVC的软件设计模式;

    rpyc : 一个 Python 实现的RPC和分布式计算的工具。支持同步和异步操作、回调等;

    saltstack 、ansible 、func : 基本Python开发的自动化配置管理与流程控制组件;

    Mysql : 是一个非常流行的关系型数据库管理系统。

    二、    平台架构设计

    1、OMServer架构图

    0BaCAfy7l6e

    2、架构说明

    OMServer平台为三层架构,分别为WEB交互层、分布式计算层、集群管理服务层。

    第一层:即为WEB交互层,典型的B/S架构,以供管理员操作的交互平台,也是OMServer的核心,基于Django开发;

    第二层:分布式计算层,提供与主控端的连接通道,采用的是rpyc传输协议。

    协议操作流程:

    前端模块参数->加密传输->任务执行->返回结果集->解密输出。

    第三层:集群管理服务层,整合Python主流的远程操作组件(支持Saltstack、Anaible、Func),对被控端(业务服务器集群)进行管理,其中主控端可以根据不同IDC环境,采用多地多点的管理方式,可提升冗余度及执行效率。

    主控端操作模块以不同Python文件加以区分,便于维护,可灵活定制操作逻辑及横向扩展等特点。

    3、平台架构优势

    管理端多机支持,可按不同IDC划分;

    安全性高,加密传输、定义私有通讯规范(TCP);

    支持多种管理客户端接入(WEB、桌面、移动);

    调用Python组件的高级特性(Playbook、State);

    功能扩展性能力强,模块定制化。

    4、架构操作流程

    0BaCARxtxHU

    上图将三个层次的交互流程进行串连,可以清晰了解OMServer架构的操作流程,结束了传统式直连APP Server的操作,更加规范我们的操作事件,一定程度可以避误一些潜在的误操作。

    5、整合远程操作Python组件

    0BaCAQdeNf6

    分两步:

    1. 提前配置主控端与被控端的信任关系,一般为证书或SSH 认证;

    2. 通过OMServer主控端封装好的任务模块与API接口,实现定制化的任务下发及执行。

    三、    平台模块定制

    1、任务模块定制的思路

    1)任务模块:即为一个“操作事件”为颗粒的任务,如重载配置、部署缓存服务、停止Nginx服务等原子操作;

    2)添加模块的步骤

    ① 定义任务模块“输入参数”,采用HTML Form元素,可以为输入、下拉、单复选框等元素;

    0BaCATXGUim

    ② 编写后台模块代码,其中执行部分由Saltstack或Ansible的Client_API来实现;

    0BaCAWNBets

    ③ 任务模块核心代码,只需要5行代码就可以实现一个SHELL脚本下发、执行的功能。

    0BaCAUrZ08O

    3)运行模块的步骤: 选择任务模块 & 操作对象 -> 指定输入参数 -> 运行 -> 返回执行结果。

    2、当我们的平台已经具备可定制、扩展操作的能力,运维的核心工作就聚焦以下几点:

    • 平台功能改进、升级,需要具备DevOps能力;

    • 根据业务运营需求,做任务功能模块的编写的工作;

    • 日常工作梳理(标准、流程化建设),更好将原子操作串成流程;

    • 系统、业务的调优,服务业务。

    四、安全审计的实现

    1、安全审计技术架构

    0BaCAZ6U16u

    安全审计功能模块分两部分,一部分为操作事件前台展示,另部分为部署在服务器侧的采集Agent,通过CGI接口上报至数据库存储,可对上报的数据作关键字监控,发现异常可以触发告警。

    2、Agent上报实现原理

    ① 实现原理非常简单,通过修改Linux系统环境配置文件/etc/profile,定义history事件相关环境变量,捕捉所有Linux登录用户会话中的操作事件及指令,实时通过OMAudit_agent.py中的HTTP GET CGI向数据库写操作事件流水。

    0BaCAYa9PMG

    ② 管理前台页面通过定时刷新,获取最新的操作事件。

    0BaCAafm0B6

    五、C/S结构的实现

    1、OManager桌面版截图

    0BaCAeapxMO

    2、OManager桌面版架构

    0BaCAbhIhaS

    3、后续优化

    • 整合ansible或saltstack高级功能,如ansible playbook;

    • 将多个任务模块打包成模板对列,实现原子操作与运维变更流程的结合;

    • 引用任务调度Celery,支持更大并发;

    • 任务对列支持暂停、中止、重运行功能,实现操作可控;

    • 提供与CMDB访问对接,通用性更强。


    文章来源:马哥教育 

    官方微信:马哥linux运维 

    Linux运维学习交流群:537045784

    展开全文
  • 推荐几个MySQL 数据库的运维工具

    千次阅读 2020-08-03 15:57:12
    其中 1.x 基于 Python 实现,并且已经不再提供官方的维护,因此强烈建议使用 2.x 版本,2.0 基于 golang 实现。 了解更多Yearning工具的安装和使用,详情可参考官网文档:https://guide.yearning.io 2. Canal canal ...

    1. Yearning

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

    在目前 Yearning 有两个版本,1.x 和 2.x。其中 1.x 基于 Python 实现,并且已经不再提供官方的维护,因此强烈建议使用 2.x 版本,2.0 基于 golang 实现。

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

    2. Canal

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

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

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

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

    canal的工作原理类似mysql主从同步原理:

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

    3. DataX

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

    设计理念

    为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间 传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX, 便能跟已有的数据源做到无缝数据同步。

    在这里插入图片描述

    架构设计

    DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为 Reader/Writer 插件,纳入到整个同步框架中。

    在这里插入图片描述

    • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
    • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
    • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流 控,并发,数据转换等核心技术问题。

    经过几年的积累,DataX目前已经有了比较全面的插件体系,主流的 RDBMS数据库、NOSQL、大数据计算系统都已经接入。

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

    4. Percona-toolkit

    Percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信 息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等。

    工具包的下载地址 : https://www.percona.com/downloads/percona-toolkit/LATEST/

    安装过程很简单,先解压:

    tar -zxvf percona-toolkit-3.0.3_x86_64.tar.gz
    

    由于是二进制的包,解压完可以直接进到percona-toolkit-3.0.3/bin目录下使用。

    bin 下提供的命令工具有很多,最常用就如:

    • 慢查询日志分析:pt-query-digest
    • 分析慢查询得到没有使用的索引信息:pt-index-usage
    • 检查主从复制一致性:pt-table-checksum

    除了上述命令外,还有很多,例如pt-ioprofile可以命令方便定位IO问题;pt-slave-restart可以监 控主从错误,尝试重启MySQL主从。想了解更多percona-toolkit工具详情,可参考官网文档:htt ps://www.percona.com/doc/percona-toolkit/3.0/index.html

    展开全文
  • #jun_linux 常用开发环境工具
  • 基于python3 django 开发的集资产管理系统+监控系统+顺序多主机自愈系统为一体的运维管理故障自愈系统。 可以用作资产管理,也可以用于定时任务,自愈执行定义好的动作异步远程调用执行。监控可以对接zabbix nagios ...
  • MySQL 运维和第三方工具

    千次阅读 多人点赞 2022-04-06 22:02:36
    Yearning是基于python实现的Web版人机交互界面。 Yearning 2.0 版本开始无需Inception,已自己实现了SQL审核及回滚功能。 Yearning1.0 python版本已不再进行官方维护。 Yearning2.0 golang版本为后续维护项目。 如仍...

    Yearning

    Yearning简介

    Yearning 开源的MySQL SQL语句审核平台,提供数据库字典查询,查询审计,SQL审核等多种功能。
    Yearning 1.x 版本需Inception提供SQL审核及回滚功能。

    Inception是集审核,执行,回滚于一体的自动化运维系统,它是根据MySQL代码修改过来的,
    工作模式和MySQL相同。Yearning是基于python实现的Web版人机交互界面。
    

    Yearning 2.0 版本开始无需Inception,已自己实现了SQL审核及回滚功能。
    Yearning1.0 python版本已不再进行官方维护。
    Yearning2.0 golang版本为后续维护项目。

    如仍使用python版本Yearning须知:

    • Yearning python版本不会闭源,仍可基于AGPL3.0许可进行二次开发。
    • 由于inception已闭源失去后续支持,python版本将失去对审核规则及审核逻辑的维护。(此问
      题即使Yearning项目也无法解决。go版本已实现相关审核逻辑,由Yearning自己维护,保证后续维护的可控性。)
    • 已知python版本含有多个提权漏洞(用户 -> 管理员) golang版本通过token内嵌角色信息的方式避免了此类问题。

    强烈建议使用Yearning2.0。

    Yearning功能

    • Yearning 工具包含的主要功能如下:
      • SQL查询
        • 查询导出
        • 查询自动补全
      • SQL审核
        • 流程化工单
        • SQL语句检测
        • SQL语句执行
        • SQL回滚
        • 历史审核记录
      • 推送
        • 站内信工单通知
        • E-mail工单推送
        • 钉钉webhook机器人工单推送
      • 其他
        • todoList
        • LDAP登陆
      • 用户权限及管理
        • 拼图式细粒度权限划分
    • 功能界面
      • dashboard
        dashboard主要展示Yearning各项数据包括用户数/数据源数/工单数/查询数以及其他图表。个人信息栏内用户可以修改密码/邮箱/真实姓名,同时可以查看该用户权限以及申请权限
        在这里插入图片描述
      • 我的工单
        展示用户提交的工单信息。对于执行失败/驳回的工单点击详细信息后可以重新修改sql并提交;对于执行成功的工单可以查看回滚语句并且快速提交SQL。
        在这里插入图片描述
      • DDL审核
        DDL相关SQL提交审核,查看表结构/索引,SQL语法高亮/自动补全
        在这里插入图片描述
      • DML审核
        DML相关SQL提交审核,SQL语法高亮/自动补全。所有的SQL只有在检测后错误等级为0时提交按钮才会激活。
        在这里插入图片描述
      • 查询审核
        查询/导出数据 SQL语法高亮/自动补全,快速DML语句提交。
        在这里插入图片描述
      • 工单审核
        DDL/DML管理员审核并执行。
      • 数据库管理
        添加/编辑/删除 数据源。所有添加的数据源应在添加之前点击测试连接按钮进行连接性测试,保证连接性。数据源分为查询数据源/非查询数据源。查询数据源仅会出现在细粒度权限的查询数据源范围内。非查询数据源同理。
        在这里插入图片描述
      • 用户权限管理
        用户权限修改。
        在这里插入图片描述
      • 审核规则管理
        设置SQL检测规则。数值型规则0值都为不受限制,保存后即时生效。
        在这里插入图片描述

    想了解更多Yearning工具安装和使用详情,可参考官网文档

    canal

    canal简介

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

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

    • 数据库镜像
    • 数据库实时备份
    • 索引构建和实时维护(拆分异构索引、倒排索引等)
    • 业务 cache 刷新
    • 带业务逻辑的增量数据处理
      当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x

    canal工作原理

    MySQL主备复制原理
    在这里插入图片描述

    • MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 show binlog events 进行查看)
    • MySQL slave 将 master 的 binary log events 拷贝到它的中继日志(relay log)
    • MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据

    canal的工作原理类似mysql主从同步原理:
    在这里插入图片描述

    • canal模拟MySQL slave的交互协议,伪装自己为MySQL slave,向MySQL master发送dump协议
    • MySQL master收到dump协议请求,开始推送binary log 给canal
    • canal解析binary log对象(原始为byte流)

    想了解更多cannal工具详情,可参考官网文档

    DataX

    DataX简介

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

    • 设计理念
      为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。
    • 当前使用现状
      DataX在阿里巴巴集团内被广泛使用,承担了所有大数据的离线同步业务,并已持续稳定运行了多年。当年每天完成同步8w多道作业,每日传输数据量超过300TB。

    DataX框架设计

    DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。
    在这里插入图片描述

    • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
    • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
    • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

    DataX插件体系

    DataX Framework提供了简单的接口与插件交互,提供简单的插件接入机制,只需要任意加上一种插件,就能无缝对接其他数据源。经过几年积累,DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入。DataX目前支持数据如下:
    在这里插入图片描述

    DataX核心架构

    DataX 3.0 开源版本支持单机多线程模式完成同步作业运行,按一个DataX作业生命周期的时序图,从整体架构设计非常简要说明DataX各个模块相互关系。
    在这里插入图片描述

    • DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。
    • DataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。
    • 切分多个Task之后,DataX Job会调用Scheduler模块,根据配置的并发数据量,将拆分成的Task重新组合,组装成TaskGroup(任务组)。每一个TaskGroup负责以一定的并发运行完毕分配好的所有Task,默认单个任务组的并发数量为5。
    • 每一个Task都由TaskGroup负责启动,Task启动后,会固定启动Reader—>Channel—>Writer的线程来完成任务同步工作。
    • DataX作业运行起来之后, Job监控并等待多个TaskGroup模块任务完成,等待所有TaskGroup任务完成后Job成功退出。否则,异常退出,进程退出值非0

    想了解更多DataX工具详情,可参考官网文档

    percona-toolkit

    percona-toolkit介绍

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

    percona-toolkit工具是 MySQL一个重要分支产品percona的,它是一组命令的集合。下面给大家介绍几个生产中常用的命令。
    在这里插入图片描述

    percona-toolkit安装

    工具包的下载地址
    安装过程很简单,先解压:

    tar -zxvf percona-toolkit-3.0.3_x86_64.tar.gz
    

    由于是二进制的包,解压完可以直接进到percona-toolkit-3.0.3/bin目录下使用。

    pt-query-digest

    pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过showprocesslist或者mysqldumpslow命令来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。

    大家都知道数据库大多数的性能问题是 slow sql 语句造成的,需要及时做相关的优化处理。使用示例如
    下:

    1. 直接分析慢查询文件:

      pt-query-digest slow_OAK.log > slow_report.log
      
    2. 分析最近24小时内的查询:

      pt-query-digest --since=24h slow_OAK.log > slow_report.log
      
    3. 分析只含有select语句的慢查询

      pt-query-digest --filter '$event->{fingerprint} =~ m/^select/i' slow_OAK.log> slow_report.log
      

    查看SQL报告,总结慢语句有哪些,并可以看对应时间的消耗。分析结果如下所示:
    在这里插入图片描述
    可以看到报告中,列举出了一些sql语句响应时间占比情况,以及SQL语句的执行时间情况。方便我们可以很直观的观察哪些语句有问题。

    pt-index-usage

    pt-index-usage命令能够连接到MySQL数据库服务器,读取慢查询日志,并使用EXPLAIN询问MySQL如何执行每个查询。分析完成时,它打印出一个关于查询没有使用的索引的报告。

    对于我们已有的生产环境,随着系统运行的时间越长,DML操作越来越慢,这可能和我们最初设计的索引是有关的(变慢的情况很多),项目一旦上线,很少会有人去关注索引的使用情况。某些索引是从create开始就没使用过,这无形中就给MySQL增加了维护负担,任何对该表的DML操作,都要维护这些没有被使用的索引。我们可以使用pt-index-usage工具找出哪些索引一直没有被使用,然后进行删除。

    pt-index-usage语法格式如下:

    pt-index-usage [OPTION...] [FILE...]
    

    打印报告:

    pt-index-usage /path/to/slow_OAK.log --host localhost
    

    也可以将报告写入到一个数据库表中,存入后方便我们的查看。如果在生产服务器上使用此功能,则应该小心,它可能会增加负载。

    pt-index-usage slow.log --no-report --save-results-database percona
    

    pt-online-schema-change

    pt-online-schema-change命令可以在线整理表结构,收集碎片,给大表添加字段和索引。避免出现锁表导致阻塞读写的操作。针对 MySQL 5.7 版本,就可以不需要使用这个命令,直接在线 online DDL 就可以了。

    pt-online-schema-change --user=root --password=root --host=localhost -- alter="ADD COLUMN city_bak VARCHAR(256)" D=learn,t=city --execute
    

    pt-table-checksum

    pt-table-checksum命令可以检查主从复制一致性。pt table checksum通过在主机上执行校验和查询来执行在线复制一致性检查。如果发现任何差异,或者出现任何警告或错误,则工具的“退出状态”为非0

    该命令将连接到本地主机上的复制主机,对每个表进行校验和,并报告每个检测到的复制副本的结果:
    比较learn库的差异情况,在主库上面执行:
    在这里插入图片描述
    上述结果显示diff都为0,证明主从的learn库没有差异情况。

    比较learn库哪些表有差异(需要添加replicate-check-only),在主库上面执行
    在这里插入图片描述
    上述结果显示learn库下面position_detail表主从数据不一致。

    除了上述命令外,还有很多,例如pt-ioprofile可以命令方便定位IO问题;pt-slave-restart可以监
    控主从错误,尝试重启MySQL主从。想了解更多percona-toolkit工具详情,可参考官网文档

    MySQLMTOP

    MySQLMTOP简介

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

    • MySQL服务器无需安装任何Agent,只需在监控WEB界面配置相关数据库信息
    • 启动监控进程后,即可对上百台MySQL数据库的状态、连接数、QTS、TPS、数据库流量、复制、性能慢查询等进行实时监控。
    • 可以在数据库偏离设定的正常运行阀值(如连接异常,复制异常,复制延迟) 时发送告警邮件通知到DBA进行处理。
    • 可以对历史数据归档,通过图表展示数据库近期状态,以便DBA和开发人员能对遇到的问题进行分析和诊断。
      在这里插入图片描述

    MySQLMTOP 发展历史

    • 2014年01月,开源MySQLMTOP企业MySQL监控系统正式上线并开源
    • 2014年06月,MySQLMTOP进行重构,加入了Oracle、Mongodb、Redis的支持,正式更名为Lepus
    • 2014年08月,Lepus 成功取得商业软件著作权
    • 2015年01月,开源MySQLMTOP被评为2014优秀开源软件
    • 2015年01月,Lepus正式开源,并建立官方网站向大家免费提供服务
    • 2015年06月,Lepus网站软件下载总数量统计超过10000+,并广泛应用于各大互联网企业生产数据库的监控
    • 2017年01月,Lepus代码托管至github,网站软件下载总数量统计超过30000+

    MySQLMTOP功能

    MySQLMTOP主要功能如下:

    • 实时 MySQL 状态监控和警报
      MySQLMTOP 持续监视 MySQL 的基本状态和性能信息,包括数据库连接状态,启动时间,数据库版本,总连接数,活动进程,QPS,TPS,进出MySQL数据库的流量信息。在数据库状态异常或偏离正常基准水平时发出报警邮件通知。
      在这里插入图片描述
    • 实时 MySQL复制监控
      MySQLMTOP自动发现 MySQL 复制拓扑结构,自动监视数据库的延时和binlog信息,可以了解所有 MySQL 主服务器和从服务器的性能、可用性和运行状况。并在问题(如从服务器延迟)导致停机前向管理员提供改正建议。
    • 远程监控云中的 MySQL
      适合于云和虚拟机的设计,能远程监视MySQL服务器不需要任何远程代理器。
    • 直观管理所有 MySQL
      MySQLMTOP提供一个基于 Web 的界面,可令全面深入地了解数据库性能、可用性、关键活动等;直观地查看一台服务器、自定义的应用组或所有服务器。一组丰富的实时图形和历史图形将帮助您深入了解详细的服务器统计信息。
      在这里插入图片描述
    • 可视化MySQL慢查询分析
      监视实时查询性能,查看执行统计信息,筛选和定位导致性能下降的 SQL 代码。结合使用
      Information Schema 可直接从 MySQL 服务器收集数据,无需额外的软件或配置。
    • 性能监控
      监视影响 MySQL 性能的主要指标。如Key_buffer_read_hits、Key_buffer_write_hits、
      Thread_cache_hits、Key_blocks_used_rate、Created_tmp_disk_tables_rate等信息,根据相关性能指标可以对服务器核心参数进行调整优化。

    想了解更多MySQLMTOP工具详情,可参考官网文档

    展开全文
  • Python自动化运维快速入门

    千次阅读 2021-02-04 11:46:32
    目 录第一篇 Python与基础运维第1章 自动化运维Python 31.1 自动化运维概述 31.1.1 自动化运维势在必行 31.1.2 什么是成熟的自动化运维平台 41.1.3 为什么选择Python进行运维 41.2 初识Python 81.3 Python环境搭建...
  • 常用运维工具

    千次阅读 2022-03-26 17:35:24
    一:ansible, saltstack 1.ansible:基于python开发,分布式,无客户端,轻量级,配置语言采用YAML,加密方式:open SSH,支持二次开发 2.saltstack:基于python开发,采用C/S架构,相对于puppet更轻量级,采用配置...
  • ansible是新出现的自动化运维工具基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。  ansible是基于 paramiko 开发的,并且基于...
  • 项目介绍 本项目通过KVM虚拟化搭建Linux系统集群,...基于MySQL用作的关系型数据存取, 基于Redis的任务锁机制和消息队列, 基于MongoDB的事件日志 记录, 最终实现邮件通知功能、敏感数据加密功能、日志事件记录功
  • 1.2项目背景 系统名称:合同管理系统 开发语言:JAVA 开发工具:MyEclipse WEB服务器:Tomcat+Apache结合。Tomcat解析JSP/Servlet,Apache解析静态HTML文件; 数据库:SQL Server2005 开发环境:Windows 10 开发...
  • MySQL运维经验

    2021-01-28 20:01:52
    原标题:MySQL运维经验 1. 概要每台机器都使用多实例的模型。 每个机器放多个实例,每个实例放多个DB。多实例之间没有进行资源隔离,这么做是让每个实例都能发挥最大性能。目前大部分核心业务已切换成MyRocks引擎,...
  • 嘉宾简介 刘天斯 ...从事互联网运维工作已13年,目前就职于腾讯-互动娱乐部,负责游戏大数据的运营,曾就职于天涯社区,担任首席架构师/系统管理员。...擅长大规模集群的运维工作,尤其在自动化运维
  • Python自动化运维---学习笔记

    千次阅读 2020-11-22 11:43:30
    Python自动化运维 python简介 入门容易精通难,python适合作为第二编程语言(对于运维:Shell,对于开发:Java,对于全栈:nodejs(javascript)) python官网:https://www.python.org/ Python is a programming language that...
  • MySQL自动化运维工具

    2019-05-07 19:07:32
    数据字典DDM:查看DB表结构和字段的,应用开发人员...数据DDL表结构评审和管理:提交给DBA进行审核,一般是ddl语句,一个集审核、执行、备份及生成回滚语句于一身的MySQL自动化运维工具。DBA自己开发的一个工具,...
  • 目前在facebook主要是利用Python开发内部DB运维平台,所以Python技能方面要求比较高。 采用他们自已的osc工具执行Online DDL(也是本次DTCC大会上lulu的分享主题),它最早用PHP开发,虽早已开源,但实在不好用,...
  • 现阶段,掌握一门开发语言已经成为高级运维工程师的必备计能,不会开发,你就不能充分理解你们系统的业务流程,你就不能帮助调试、优化开发人开发的程序, 开发人员有的时候很少关注性能的问题,这些问题就得运维...
  • python运维书籍

    2020-11-20 21:45:47
    具体如下:运维开发方向:主要是 python 运维开发; 自动化运维方向:主要是在原来的自动化运维领域进行深入研究; 云计算方向:主要是针对现在比较流行的容器技术:docker、kubernetes 以及虚拟化技术等; 架构师...
  • SaltStack自动化运维工具

    千次阅读 2021-09-29 21:12:28
    Jinja模板 Jinja是一种基于python的模板引擎,在SLS文件里可以直接使用jinja模板来做一些操作,通过jinja模板可以为不同服务器定义各自的变量;两种分隔符:{% ... %} 和 {{ ... }},前者用于执行诸如for循环或赋值...
  • MySQL使用工具Inception实现自动化运维发布时间:2020-05-27 17:11:14来源:51CTO阅读:180作者:三月下面一起来了解下MySQL使用工具Inception实现自动化运维,相信大家看完肯定会受益匪浅,文字在精不在多,希望...
  • python自动化运维技术与最佳实践课程视频教程围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息、服务监控、数据报表、系统安全等基础模块,而且深入讲解了自动化操作、系统管理、配置管理、集群管理及...
  • 主流服务器集中管理工具:Ansible、Saltstack 持续集成工具:Jenkins、Gitlab Python开发进阶 可以再深入学习下Python开发,掌握面向对象编程。 最好也掌学习一个Web框架开发网站,例如Django、Flask,主要是开发...
  • ansible自动化运维工具

    2019-03-28 14:19:35
    ansible是新出现的自动化运维工具基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于模块工作的,本身...
  • 运维管理工具

    2022-05-14 14:57:05
    运维服务工具
  • python运维开发

    2020-11-28 15:07:38
    ----小结 其实现在基于python运维工具和软件也越来越多,例如saltstack、ansible等。 作为运维人员... saltstack基于python语言实现,结合轻量级消息队列zeromq,与python每三方模块(pyzmq,pycrypto,pyjinja2,...
  • 运维工种对于自动化的强烈需求已经显漏无疑——作为一个古老的技术工种,在几台、几十台服务器时尚可人肉维护,面对云计算时代动辄上百上千的服务器,单凭人肉维护显然束手无策。想像一下诸如谷歌、阿里云的上万台...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,772
精华内容 5,108
关键字:

基于python的mysql运维工具

mysql 订阅