运维工作偏多一些,但是sql性能要开发人员注意 MySql性能监控 慢查询-默认1s 10s太慢了 被慢查询记录到日志 全表扫描,没建索引,因此被记录到日志 有索引,不会被记录到日志...linux下的MySQL命令 数据库测试 调整客户端的链接数量 此数值,通过改变线程请求数,成功率最大的情况 根据异常设置恰当的值 my.ini设置mysql服务端的链接数值 查询缓存 开启缓存设置大小
[TOC] 0x01 简介 描述:主要进行监控SQL语句的执行效率以及安全性的检查,方便对MySQL服务器性能的优化提升; 0x02 监控记录 1.实时查看SQL语句 描述:MySQL默认不能实时查看执行的...SQL语句要手动开启这个功能,因为这会消耗一定的资源。...所以一般在生产环境中记录指定的数据后就关闭该功能; 实际操作: /** 1.查看Logs记录功能十分是否开启 **/ mysql> SHOW VARIABLES LIKE "general_log%"...> SET GLOBAL general_log = 'ON'; mysql> SET GLOBAL general_log_file = '/var/log/mysql/general_log.log....实时查看 */ $ tail -f /var/lib/mysql/general_sql.log 补充事项: 1.您可以采用一些数据库监控软件进行实现SQL语句的监控,比如:BareTail;
对数据库性能进行监控 这一块就比较多了, 比如QPS 和TPS的监控, 并发线程的监控 (不是数据库的连接数)、 阻塞和死锁监控 等等 对主从复制的监控 主从链路状态 、 主从延迟 、 主从数据一致...对服务器资源的监控 磁盘空间、内存 、SWAP分区、网络I/O 、CPU等等 接下来,展开探讨一下 ---- 数据库可用性监控 如何确认数据库是否可以通过网络连接?...MySQL本地的SQL文件能连接,并不意味着可以通过网络连接,中间有好多东西隔着呢 通常有几种方式,选一种 ---- 如何确认数据库是否可读写 ---- 如何监控数据库的连接数 max_connections...> ---- 数据库性能 记录性能监控中所采集到的数据库的状态 下面我们列举下最常见的监控指标 如何计算QPS和TPS QPS 并不是仅仅只select 的,而是数据库处理所有SQL请求的。...> ---- 并发数量监控 Threads_running 数据库系统的性能会随着并发处理请求数量的增加而下降; 并发的数量通常会远小于同一时间连接到数据库的线程数量。
如何确认数据库是否可以通过网络连接 MySQL本地的SQL 并不意味着可以连接到数据库服务器,防火墙,TCP/IP mysqldamin -umonitor_user -p -h ping telnet...建立监控表并对表中数据进行更新。...-----------+ | 5.7.26 | +-----------+ 1 row in set Time: 0.016s 如何监控数据库的连接数 可以连接到MYSQL的线程数是有限制的。...设置报警值 数据库性能 记录性能监控过程中所采集到的数据库的状态 如何计算QPS和TPS QPS 每秒钟数据查询的数量 TPS 每秒钟处理事务的数量,TPS是QPS的一个子集 如何监控数据库的并发请求数量...Innoddb阻塞和死锁 组从复制 主从复制链路状态 主从复制的延迟 定期的确认主从复制的数据是否一致 服务器资源的监控 磁盘空间:服务器磁盘空间大并不意味着Mysql数据库服务能使用的空间就足够大
前言大部分生产系统从一开始就要考虑它的 高可用 和 监控 ,数据库更是如此,这里我分享一下Mysql的监控方法----概要----环境在 Centos 6.7 下面 运行着 mysql 5.6.25 (...@mysql-server packages]# uname -r 2.6.32-573.1.1.el6.x86_64[root@mysql-server packages]# mysql -V mysql...的repo下载下列插件[root@mysql-server packages]# ll *zabbix*-rw-r--r--. 1 root root 30599 Jun 19 17:39 percona-zabbix-templates...-1.1.5-1.noarch.rpm[root@mysql-server packages]# 这个包里主要包含:一个 xml 模板 : 用来构建mysql监控模板一个 php 脚本 : 用来收集mysql...状态信息一个 shell 脚本 : 用来调用上面的脚本一个mysql 监控插件配置文件 : 用来自定义用户插件[root@mysql-server packages]# rpm -qlp percona-zabbix-templates
PMM 是一款免费的开源监控工具,可以用来监控 MySQL、MongoDB 和 PostgreSQL 等数据库。...1 架构图 首先来看下 PMM 监控 MySQL 的整体架构图: 如上图,MySQL 和 Linux 操作系统的监控数据均由 PMM Client 获取,并传给 PMM Server,最终通过 Grafana...执行完成后,会有如下显示: 7 配置 MySQL 监控 在 MySQL 中创建 pmm 用于取监控数据的用户: CREATE USER 'pmm_user'@'localhost' IDENTIFIED...按下图选择对应的 dashboard 和 Service Name,可以看到 MySQL 的监控数据: 按下图选择对应的 dashboard 和 Service Name,可以看到 MySQL 的慢查询...: 按下图选择对应的 dashboard 和 Node Names,可以看到操作系统的监控数据: 到这里,通过 PMM 监控 MySQL 的内容就讲完了。
朋友们,你们是否好奇目前 MySQL 主流的监控方案是什么?“悦专栏”趁这次写监控专题的机会,在文末增加了 MySQL 监控方案的投票,欢迎各位朋友参与。...1 架构图 如上图,通过 Zabbix Agent 获取 MySQL 的监控数据(需要结合一些脚本和命令,在本节的后面会提到具体配置方法)。...将获得的监控数据传到 Zabbix Server 中,最终通过 Zabbix Web 展示出来。...删除临时文件(该文件为临时存放监控数据的文件,测试时,该文件的属组为 root,如果不删除,会导致 zabbix 用户无权限取到监控数据): rm /tmp/localhost-mysql_cacti_stats.txt...15 查看监控数据 Monitoring-->Graphs,Host 选择这次新增的主机名,Graph 选择一个监控项,看是否有数据: 到这里,使用 Zabbix 监控 MySQL 的内容就讲完了。
zabbix利用自带的模板监控mysql数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 ...mysql数据库原理上很简单,就是你需要在zabbix客户端新建一个用户,这个用户的账号密码存放到 隐藏的文件中,(也是考虑安全性嘛~),服务端通过读取这个配置文件的用户密码去登陆数据库,然后把采集的结果反馈给客户端...1.在agent端新建数据库用户和密码 以管理员的身份登陆数据库 ? 测试是否创建成功: ?...5.在服务器的web段link模板,这样基本上就是监控成功了。 ? 6.查看监控到的数据图 ? 顿时发现,忙活了半天监控的还这么少~心理不平衡啊。...通过朋友介绍,说是有percona插件监控倒是不错的方法呢。如果大家感兴趣的话~可以参考我的另一篇文章,写的就是如果第三方插件监控mysql健康状态!
一、问题背景 今天在线上发现一个问题,挺有意思的,这里简单记录下。 问题的背景是查看一个Grafana监控的时候,发现监控没有数据了: ?...从图中可以看到4月1日之后,监控就没有输出数据了。 于是决定排查一下这个问题。...排查思路如下: 1、监控数据源配置是否准确; 2、监控数据是否采集完整; 3、监控数据所在数据库是否可以访问; 经过查看,监控数据从4月开始就缺失了,由于监控数据采集程序的日志不够全面,所以花了很长时间才定位到根本原因...:监控数据写入数据库的时候,报错了。...再次删除id=4294967295的数据,插入id=4294967296的数据: mysql >insert into mongo_statistics.mongodb_cluster_changelog
任务:应帅气的领导要求,需要监控生产环境mysql和mongo数据库服务。不仅要connect successful还要进行数据交互进一步确认数据库服务正常。...查询脚本db_test.py: 需要注意的是: . 1、由于Python3.6,pymongo模块中的MongoClient函数连接mongo数据库时,超时参数connecttimeOutMS并不会生效...(亲测),并且如果仅仅用MongoClient连接mongo数据库而不对数据库内的数据进行交互,那么无论MongoClient返回的是正确的连接对象还是发生了错误,Python3.6均不会报错。...所以,必须要对数据库数据进行交互,才能确定数据库服务是否正常 . 2、由于mongo超时时间大概在30多秒左右,因此引入Python提供的超时函数timeout_decorator.timeout(),...的配置信息 def get_message_mysqldb(): print("读取mysql数据库详细信息文件中,请稍后
值较高,且存在性能问题,则说明存在着较严重的表级锁争用情况。...分析: 针对如果InnoDB_row_lock_waits和InnoDB_row_lock_time_avg的值比较高,说明可能存在锁争用的情况,针对 Innodb 类型的表,可以通过设置InnoDB...Monitors来进一步观察发生锁争用的表、数据行等,并分析锁争用的原因,如下: 注:可通过语句SHOW CREATE TABLE table_name;查看表table_name使用的引擎(查询输出结果中找到...打开监视器以后,默认情况下每 15 秒会向日志中记录监控的内容,如果长时间打开会导致.err 文件变得非常的巨大,所以我们在确认问题原因之后,要记得删除监控表(DROP TABLE innodb_monitor...2.输出结果为基于一段时间的数据采样,得出的每秒平均值,这里的时间取自系统启动到当前时间的时间间隔或者上次输出到当前时间的时间间隔 3.找到TRANSACTIONS部分的内容,可以查看事务死锁争用的相关情况
俗话说,没有监控的系统就是在裸奔,好的监控就是运维人员的第三只手,第三只眼。本文将使用prometheus及Grafana搭建一套监控系统来监控主机及数据库(MySQL、Redis)。 1....MySQL 3.2.1 下载 下载监控MySQL的mysqld_exporter,依旧从官网下载 ?...3.2.2 监控账号及修改文件配置 在MySQL里配置MySQL监控账号 /** 创建账号 */ mysql> CREATE USER 'mysql_monitor'@'localhost' identified...5.2 配置数据源 本次使用的均为prometheus数据源,因此配置一个prometheus的数据源 如果之前在grafana上没有配置过数据源 登录后会提示创建 ?...import即可 5.4 配置完成后即可查看各监控情况 现在可以看一下炫酷的结果了。 主机监控如下 ? MySQL ? Redis ? 其他如果需要其他监控项也可以自定义添加 ?
1.在mysql数据库中创建zabbix用户 用来获取数据 GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@'%' IDENTIFIED...监控信息 vim /usr/local/etc/zabbix_agentd.conf UserParameter=mysql.version,mysql -V UserParameter=mysql.status...[*],/usr/local/etc/chk_mysql.sh $1 UserParameter=mysql.ping,netstat -ntpl |grep 3306 |grep mysql |wc...# Revision: 1.0 MYSQL_SOCK="/var/lib/mysql/mysql.sock" MYSQL_USER='zabbix' export MYSQL_PWD=yourpass...chown zabbix:zabbix chk_mysql.sh 4.赋予zabbix用户执行netstat的权限 chmod +s /bin/netstat 5.重启zabbix_agentd service
MySQL主从同步的指标说明 这里涉及4个指标 slave_sql_runing:slave下SQL线程状态,作用是slave侧执行从主库抓过来的binlog slave_io_runing:slave...mysql> show slave status; Empty set (0.01 sec) 还是空的 云监控中如何配置主从同步监控 我们理解了主从同步的4个指标及其意义,接下来我们进入云监控一探究竟,...) 备机监控,就是在有从实例的地方执行show slave status;的结果,哪些是有从实例的地方呢?...如下图 [image.png] 没错,就是 灾备实例和自己跟随的主实例之间的延迟监控 问题总结 如何配置云监控的主机灾备和备机灾备呢?和控制台有什么关系呢?...[image.png] Tips:如果DTS迁移的时候,CDB实例作为目标实例,配置主机监控也是有意义的,描述的是 目标实例找源实例追binlog的=情况,不过腾讯云数据库有别的告警方式,大部分用户可能不会单独配置
# 1.查找并拷贝Zabbix监控Mysql模板文件 [root@summer mysql]# find / -name user*_mysql.conf /usr/share/doc/zabbix-agent...-5.0.3/userparameter_mysql.conf [root@summer mysql]# cp /usr/share/doc/zabbix-agent-5.0.3/userparameter_mysql.conf.../userparameter_mysql.conf [root@summer mysql]# chmod a+x -R /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf.../mysql.sock [mysqladmin] host=localhost user=root password=hadoop socket=/home/summer/mysql/mysql.sock...,一定要写对数据库文件位置。
配置密码 ss_get_mysql_stats.php.cnf安装依赖包 php php-mysql给 zabbix 赋权从 zabbix-server 进行连接测试添加模板----命令汇总mysql.../var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh.../get_mysql_stats_wrapper.shsudo -u zabbix -H /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh.../home/zabbix/vim .my.cnfzabbix_get -s mysql-server -p 10050 -k "MySQL.running-slave"zabbix_get -s mysql-server...-p 10050 -k "MySQL.Threads-connected"zabbix_get -s mysql-server -p 10050 -k "MySQL.max-connections"-
='3306' # 数据连接 MYSQL_CONN="/usr/local/mysql/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST...版本 UserParameter=mysql.version,mysql -V # 获取mysql性能指标,这个是上面定义好的脚本 UserParameter=mysql.status[*],/etc/...-P3306 -h127.0.0.1 ping | grep -c alive 常见错误解决思路如果发现监控没有数据,请排查如下问题 zabbix客户端是否重启 脚本是否有执行权限 数据库是否有权限...编译mysql的绝对路径(如上是按照我自己的mysql编译路径) 环境变量是否有问题 请看zabbix item列,鼠标移至红色叉上,有错误提示。...如果数据库密码保存在脚本中,会导致监控没有数据会不断的报错为Warning: Using a password on the command line interface can be insecure
/mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd} -e "$cmd1"| grep ':' | grep -v 'Variable_name.../mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd} -e "$cmd5"| grep ':' | grep -A1 'log_error..._$(date +%Y_%m_%d).log /home/mysql/mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd} -e "$.../mysql/mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd} -e "$cmd4" | grep -Po '(?...:.*)') Slave_SQL_Running_S=$(/home/mysql/mysql/bin/mysql -h${hostip} -P${port} -u${user} -p${passwd}
测试脚本装完包后,再次执行测试脚本,就正常返回一个数字了[root@mysql-server scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh...gg0[root@mysql-server scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gt38409这个数据从哪里来的呢..., 执行脚本的过程中生成了这个文件 /tmp/localhost-mysql_cacti_stats.txt[root@mysql-server scripts]# cat /tmp/localhost-mysql_cacti_stats.txtgg...scripts]# [root@mysql-server scripts]# 这个脚本并不长,总共只有43行,是对 ss_get_mysql_stats.php 的一层包装,罗辑非常简单,看看就知道了.../lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh[root@mysql-server scripts]# cat /var/lib/zabbix
packages]# 拷贝配置拷贝 userparameter_percona_mysql.conf 到配置目录[root@mysql-server packages]# cp /var/lib/zabbix.../percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/[root@mysql-server packages...]# 配置密码在相应目录下创建密码配置文件 ss_get_mysql_stats.php.cnf[root@mysql-server scripts]# cat /var/lib/zabbix/percona.../scripts/ss_get_mysql_stats.php.cnfmysql_user = 'root';$mysql_pass = 'xxxxxxx';[root@mysql-server scripts]#