运维工作偏多一些,但是sql性能要开发人员注意 MySql性能监控 慢查询-默认1s 10s太慢了 被慢查询记录到日志 全表扫描,没建索引,因此被记录到日志 有索引,不会被记录到日志...linux下的MySQL命令 数据库测试 调整客户端的链接数量 此数值,通过改变线程请求数,成功率最大的情况 根据异常设置恰当的值 my.ini设置mysql服务端的链接数值 查询缓存 开启缓存设置大小
[TOC] 0x01 简介 描述:主要进行监控SQL语句的执行效率以及安全性的检查,方便对MySQL服务器性能的优化提升; 0x02 监控记录 1.实时查看SQL语句 描述:MySQL默认不能实时查看执行的...所以一般在生产环境中记录指定的数据后就关闭该功能; 实际操作: /** 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...'; /** 永久开启需要配置my.cnf文件 **/ general_log = 1 general_log_file = /var/log/mysql/general_sql.log /** 3....实时查看 */ $ tail -f /var/lib/mysql/general_sql.log 补充事项: 1.您可以采用一些数据库监控软件进行实现SQL语句的监控,比如:BareTail;
---- 监控指标 先大体说下几个点哈 对数据库服务可用性进行监控 有一点需要注意的是,不能仅仅监控端口或者进程是否正常,要连接进去,执行一些SQL操作。...对数据库性能进行监控 这一块就比较多了, 比如QPS 和TPS的监控, 并发线程的监控 (不是数据库的连接数)、 阻塞和死锁监控 等等 对主从复制的监控 主从链路状态 、 主从延迟 、 主从数据一致...对服务器资源的监控 磁盘空间、内存 、SWAP分区、网络I/O 、CPU等等 接下来,展开探讨一下 ---- 数据库可用性监控 如何确认数据库是否可以通过网络连接?...MySQL本地的SQL文件能连接,并不意味着可以通过网络连接,中间有好多东西隔着呢 通常有几种方式,选一种 ---- 如何确认数据库是否可读写 ---- 如何监控数据库的连接数 max_connections...> ---- 数据库性能 记录性能监控中所采集到的数据库的状态 下面我们列举下最常见的监控指标 如何计算QPS和TPS QPS 并不是仅仅只select 的,而是数据库处理所有SQL请求的。
如何确认数据库是否可以通过网络连接 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...-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..._2.0.9-sver1.1.5.xml[root@mysql-server packages]#
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 和 Node Names,可以看到操作系统的监控数据: 到这里,通过 PMM 监控 MySQL 的内容就讲完了。
作者简介 马听,多年 DBA 实战经验,对 MySQL、 Redis、ClickHouse 等数据库有一定了解,专栏《一线数据库工程师带你深入理解 MySQL》、《Redis 运维实战》作者。 ...1 架构图 如上图,通过 Zabbix Agent 获取 MySQL 的监控数据(需要结合一些脚本和命令,在本节的后面会提到具体配置方法)。...将获得的监控数据传到 Zabbix Server 中,最终通过 Zabbix Web 展示出来。...删除临时文件(该文件为临时存放监控数据的文件,测试时,该文件的属组为 root,如果不删除,会导致 zabbix 用户无权限取到监控数据): rm /tmp/localhost-mysql_cacti_stats.txt...15 查看监控数据 Monitoring-->Graphs,Host 选择这次新增的主机名,Graph 选择一个监控项,看是否有数据: 到这里,使用 Zabbix 监控 MySQL 的内容就讲完了。
InnoDB_row_lock_waits和InnoDB_row_lock_time_avg的值比较高,说明可能存在锁争用的情况,针对 Innodb 类型的表,可以通过设置InnoDB Monitors来进一步观察发生锁争用的表、数据行等...打开监视器以后,默认情况下每 15 秒会向日志中记录监控的内容,如果长时间打开会导致.err 文件变得非常的巨大,所以我们在确认问题原因之后,要记得删除监控表(DROP TABLE innodb_monitor...2.输出结果为基于一段时间的数据采样,得出的每秒平均值,这里的时间取自系统启动到当前时间的时间间隔或者上次输出到当前时间的时间间隔 3.找到TRANSACTIONS部分的内容,可以查看事务死锁争用的相关情况
任务:应帅气的领导要求,需要监控生产环境mysql和mongo数据库服务。不仅要connect successful还要进行数据交互进一步确认数据库服务正常。...思路: mysql和mongo 数据库ip、端口、用户名、密码、认证库(mongo)分别写在mysqldb_message.txt和mongodb_message.txt两个文件中。...的配置信息 def get_message_mysqldb(): print("读取mysql数据库详细信息文件中,请稍后...数据库 def mysqldb_connect_and_test(ip, user, passwd, port): print("连接mysql数据库{0}中,请稍后....".format...email", "(测试)邮件内容:python检测到mysql数据库异常,服务器为{0}".format(host), "") else: print(
俗话说,没有监控的系统就是在裸奔,好的监控就是运维人员的第三只手,第三只眼。本文将使用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...) result=`mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -S $MYSQL_SOCK extended-status |grep -w
# 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...fi # 获取数据 case $1 in Uptime) result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` echo $result...-P3306 -h127.0.0.1 ping | grep -c alive 常见错误解决思路如果发现监控没有数据,请排查如下问题 zabbix客户端是否重启 脚本是否有执行权限 数据库是否有权限...如果数据库密码保存在脚本中,会导致监控没有数据会不断的报错为Warning: Using a password on the command line interface can be insecure....需要将帐号密码等配置添加到/etc/my.conf中去: host=localhost user=数据库用户 password='数据库密码'
/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}
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]#
测试脚本装完包后,再次执行测试脚本,就正常返回一个数字了[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
mysql_exporter:用于收集MySQL性能信息 安装 > wget https://github.com/prometheus/mysqld_exporter/releases/download...linux-amd64 /usr/local/mysqld_exporter > chown -R prometheus:prometheus /usr/local/mysqld_exporter 登录mysql...' # 静态添加node static_configs: # 指定监控端 - targets: ['127.0.0.1:9104'] 重启prometheus服务 >...systemctl reload prometheus.service 查看监控端 访问:https://rumenz.com:9090/targets Granfana 导入Mysql 监控 选择...Import,Load框输入7362 效果展示 相关文章系统监控Prometheus安装和基本配置 系统CUP,内存,硬盘监控之node_exporter安装配置
尝试运行一下状态收集脚本[root@mysql-server scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg...--host localhost --items gg[root@mysql-server scripts]# 安装依赖包这里提示我们系统里没有安装 php ,我们给它装上,同时我们也装上 php-mysql...,它提供了php 连接 mysql 需要的DBI[root@mysql-server scripts]# yum install php php-mysql Loaded plugins: fastestmirror...-5.3.3-46.el6_6.x86_64--> Processing Dependency: libmysqlclient.so.16()(64bit) for package: php-mysql...[root@mysql-server scripts]#
/localhost-mysql_cacti_stats.txt': Operation not permitted0[root@mysql-server scripts]# 前一条报错的原因是 zabbix...用户在查询 Slave_IO_Running|Slave_SQL_Running 时,没有访问数据库的权限后一条报错的原因是对于之前使用root生成的 /tmp/localhost-mysql_cacti_stats.txt...[root@mysql-server scripts]# sudo -u zabbix -H /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh...gg 0[root@mysql-server scripts]#再处理数据库访问权限问题安装zabbix-agent时自动创建了zabbix用户,这样的用户没有登录权限,并且把 /var/lib/zabbix...~]# chown -R zabbix.zabbix /home/zabbix/[root@mysql-server ~]# su - zabbix [zabbix@mysql-server ~]$