监控 redis warn 级别日志信息

介绍 我们现有的 redis 监控包括 zabbix, cacti 以及定制的 redis-sentinel-notify 脚本. 在不进行 sentinel 切换的前提下, 很难发现 redis 是否出现了其它错误, 比如连接占满, 同步异常, 后台线程中断等. redis 的日志级别提供了更为详细的诊断的信息. 从 redis 源代码中搜索 redisLog 函数的...

使用 Percona Server auto manager 管理数据库

介绍 Percona Server auto manager 是基于 percona-server-5.6.39.83.1 的一个分支版本, 其增加了 memcached 记录和 sql 过滤的功能, 用来降低管理员操作数据库的风险. 不同于 inception 的深度修改, Percona Server auto manager 仅修改客户端的 client/mysql.cc 和 client/mysqldump.c,...

How does snoopy log every executed command

snoopy 介绍 snoopy 是一个轻量级的lib库, 用来记录系统中所有执行过的命令(以及参数). 我们在实际环境的使用过程中, 结合 snoopy 和 rsyslog 可以很方便的搜集所有主机的历史执行命令, 这种方式给安全审计和故障排错带来了很大的便利. 不同于以往的 shell + history 方式, snoopy 是以预加载 (preload) 的方式实现历史命令的记录, 整个会话环境的信息都可以记录下来, 而前者则仅仅记录执行的命令, 且容易绕过记录, 难以满足我们的需求....

使用 transfer 共享文件

简单说明 transfer 工具可以很方便的让大家以命令行的方式共享文件, 其参考了工具 transfer.sh, 不过去掉了很多不太常用的功能, 另外我们给 transfer 工具增加了以下特性: 1. http basic auth to verifid users; 2. transfer read configure file to revify user; 3....

在 MySQL 中模拟 PostgreSQL 的 sequence 功能

介绍 在 id 生成器介绍 一文中, 我们介绍了几种生成 id 的方式, 其中的 last_insert_id 小节中, 简单说明了中小业务可以使用 last_insert_id 的方式来生成 id, 在 InnoDB 表的情况下容易产生死锁(下文会介绍在一个事务中操作可以降低死锁概率), 将表改成 MyISAM 也可以提高性能, 不过不利于 xtrabackup 的在线备份; 在...

rqlite 使用及注意事项

介绍 rqlite 是一款轻量级且分布式的关系型数据库, 实际上它是在 SQLite 的基础上实现的关系型数据库, 加上 raft 协议实现了一致性分布式. 另外它还提供了 http 相关的接口. 不同于 etcd 和 consul 这两款键值数据库, rqlite 是真正的关系型数据库, 也支持事务等. 从这方面看, 在对数据有分布式一致性且支持事务功能的需求中, rqlite 非常适合, 而且很轻量,...

read-committed 隔离级别对 MySQL 复制的影响

read-committed 隔离级别对 MySQL 复制的影响 近期碰到了一个 mysql slave 正常接收 relay log, 但是不执行更新的情况, 更准确的说是不执行 row 格式的所有更新, DDL 和 statement 格式的都正常更新, 主从环境配置见下文. 环境配置 OS: CentOS release 6.7 (Final)...

mha_switch: 结合 proxysql 和 MHA 切换 MySQL 主从

mha_switch: 结合 proxysql 和 MHA 切换 MySQL 主从 在之前的文章proxysql 介绍及测试使用中, 详细介绍了 proxysql 的安装配置等, 不过经过时间的推移, proxysql 工具做了很多的改进, 自动检测及状态切换等功能带给我们很大的便利, 可以取代传统的 haproxy 代理, 不过由于 proxysql 的检测和状态切换机制不是实时进行, 只是间接性检测, 所以会带来了另外的困扰,...

动态代理 MySQL slave 端口

背景介绍 一直以来我们的数据库主从架构都以 vip 作为高可用的基石, 通过 vip + MHA 的方式完成 master 的高可用, 并未对 slave 进行相关的高可用设计. 随着时间的推移, 为了减少一些业务对 master 的繁重的操作, 线上的一小部分业务开始连接 slave 对外提供服务. 这些常见的业务包括以下类型: 1. op 相关的工程,...

自定义 influxdb 数据结构, 生成 grafana 趋势图

介绍 目前使用 grafana 来生成漂亮的监控图像变得越来越流行, 笔者认为 grafana 之所以流行的原因主要在于它的灵活性和扩展性. 管理员可以很方便的选择各种数据源作为监控数据的后端存储, 这些源包括 Graphite, influxDB, Prometheus, OpenTSDB 等, 我们可以根据需要将搜集到的数据存到指定的源中, grafana 再读取源数据, 最后按照管理员指定的各种规则以不同的图像显示出指定的数据. grafana 支持的图形方式则更为丰富graph, 各种图形属性及展示方式应有尽有. 当然更为方便的是我们可以根据数据源的信息做出更为精细的图像进而展示. 以管理员经常用到的监控工具为例, nagios 适合报警触发,...