Zabbix监控MySQL数据库实战

这篇具有很好参考价值的文章主要介绍了Zabbix监控MySQL数据库实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

zabbix监控mysql的方式

只是安装agent
启用模板监控
启用自定义脚本的模板监控
使用zabbix模版及结合shell脚本监控mysql

创建mysql的zabbix授权用户

mysql> grant all PRIVILEGES on *.* to zabbix@'localhost' identified by 'zabbix'; 

###创建一个有权限的访问用户lqb密码设置zabbix

Query OK, 0 rows affected (0.04 sec)
 
mysql> flush privileges;
 
Query OK, 0 rows affected (0.01 sec)
flush privileges;

Query OK, 0 rows affected (0.01 sec)

编写脚本获取mysql性能指标数据:
 
脚本权限:
 
-rwxr-xr-x. 1 root root 2695 Jun  6 13:39 chk_mysql.sh
脚本权限:

-rwxr-xr-x. 1 root root 2695 Jun  6 13:39 chk_mysql.sh

vim chk_mysql.sh
 
# 用户名
#MYSQL_USER='zabbix'
 
# 密码
#MYSQL_PWD='zabbix' #在脚本中输入密码mysql会提示安全告警信息#Warning: Using a password on the command line interface can be #insecure,需要将帐号密码等配置添加到mysql配置文件my.cnf中即可,脚本中#不用输入账号密码
 
# 主机地址/IP
MYSQL_HOST='127.0.0.1'
 
# 端口
MYSQL_PORT='3306'
 
# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
 
# 参数是否正确
if [ $# -ne "1" ];then
echo "arg error!"
fi
 
# 获取数据
case $1 in
Uptime)
result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`
echo $result
;;
Com_update)
result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
echo $result
;;
Slow_queries)
result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`
echo $result
;;
Com_select)
result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
echo $result
;;
Com_rollback)
result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`
echo $result
;;
Questions)
result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`
echo $result
;;
Com_insert)
result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
echo $result
;;
Com_delete)
result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
echo $result
;;
Com_commit)
result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`
echo $result
;;
Bytes_sent)
result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`
echo $result
;;
Bytes_received)
result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
echo $result
;;
Com_begin)
result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`
echo $result
;;
 
*)
echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac

以下几个参数对Myisam 和Innodb 存储引擎都计数:
1. Com_select 执行select 操作的次数,一次查询只累加1;
2. Com_insert 执行insert 操作的次数,对于批量插入的insert 操作,只累加一次;
3. Com_update 执行update 操作的次数;
4. Com_delete 执行delete 操作的次数;
以下几个参数是针对Innodb 存储引擎计数的:
1. Innodb_rows_read select 查询返回的行数;
2. Innodb_rows_inserted 执行Insert 操作插入的行数;
3. Innodb_rows_updated 执行update 操作更新的行数;
4. Innodb_rows_deleted 执行delete 操作删除的行数;
通过以上几个参数,可以很容易的了解当前数据库的应用是以插入更新为主还是以查询操作为主,以及各种类型的SQL 大致的执行比例是多少。对于更新操作的计数,是对执行次数的计数,不论提交还是回滚都会累加。对于事务型的应用,通过Com_commit 和Com_rollback 可以了解事务提交和回滚的情况,对于回滚操作非常频繁的数据库,可能应用编写存在问题。
另外还有几个参数可以了解数据库的基本信息:
1. Connections 试图连接Mysql 服务器的次数
2. Uptime 服务器工作时间
3. Slow_queries 慢查询的次数

在脚本中输入密码mysql会提示安全告警信息使zabbix获取不到正确数据,(Warning: Using a password on the command line interface can be insecure),需要将帐号密码等配置添加到mysql配置文件my.cnf中即可,脚本中不用输入账号密码,重启mysql配置生效

vim /etc/my.cnf
[client]
user=zabbix
password=zabbix
[mysqladmin]
host=localhost
user=zabbix
password=zabbix
[client]

user=zabbix

password=zabbix

[mysqladmin]

host=localhost

user=zabbix

password=zabbix

为zabbix_agent添加用户参数

vim /usr/local/etc/zabbix_agentd.conf
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],/opt/scripts/chk_mysql.sh $1
#UserParameter=mysql.ping,mysqladmin -P3306 -h127.0.0.1 ping | grep -c alive
UserParameter=mysql.ping,sudo netstat -ntpl |grep 3306|grep mysql|wc |awk '{print $1}'

修改/etc/sudoers( chmod +s /bin/netstat也可以,省去了修改/etc/sudoers的麻烦)
#注释掉此行Defaults    requiretty   
#在最后加入如下行:
zabbix ALL=(ALL)   NOPASSWD:  /bin/netstat
重启zabbix_agentd

<span style="color:#ff0000">killall zabbix_agentd
systemctl restart zabbix-agent</span>

在server端测试是否能获取到数据

$ zabbix_get -s10.10.50.50 -k"mysql.status[Com_rollback]"

mysql主从状态监控

写一个脚本实现主从监控:

这个脚本主要用于获取MYSQL主从同步信息;

我们先执行一个命令

mysql -u zabbix -e 'show slave status\G'

我们在输出的信息中选择

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

这两项来监控,我测试了一下,当操作的数据出现异常的时候,Slave_SQL_Running就会变成No,当执行slave stop的时候,两个都会变成No;

授权:

grant all PRIVILEGES on *.* to zabbix@'localhost' identified by 'zabbix';
 
flush privileges;

编写主从监控脚本: 

vim mysql_master.sh
#!/bin/bash
mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes

为agent添加用户参数:

vim /usr/local/etc/zabbix_agentd.conf
 
UserParameter=system.mysql,/etc/zabbix/scripts/mysql_master.sh

重启agent

systemctl restart zabbix-agent

连接模版:

<spanstyle="color:#33cc00">https://download.csdn.net/download/abel_dwh/10510113</span>文章来源地址https://www.toymoban.com/news/detail-650595.html

到了这里,关于Zabbix监控MySQL数据库实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Zabbix6 通过zabbix-agent2监控MySQL

         Zabbix6 自带mysql模版,无须再使用第三方,也不用自己写监控脚本,而且zabbix-agent2比zabbix-agent,功能更强大,应用也更简单。 1、登录要被监控的mysql, 创建监控用户 2、登录Zabbix Server WEB,【配置】--【模版】- 【MySQL by Zabbix agent 2】,修改此【宏】 3、【配置】-【主机】

    2024年02月11日
    浏览(44)
  • 【云原生】-Zabbix6监控MySQL最佳实践

    📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前从事DBA及程序编程 擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。

    2024年02月02日
    浏览(49)
  • zabbix监控mysql容器主从同步状态并告警钉钉/企业微信

    前言:被监控的主机已经安装和配置mysql主从同步,和zabbix-agent插件。 mysql创建主从同步:http://t.csdn.cn/P4MYq centos安装zabbix-agent2:http://t.csdn.cn/fx74i  mysql主从同步,主要监控这2个参数指标: Slave_IO_Running: Yes Slave_SQL_Running: Yes 进入zabbix目录, cd /etc/zabbix 创建目录: mkdir scrip

    2024年02月14日
    浏览(31)
  • grafana直连zabbix数据库

    grafana (注意grafana和zabbix插件版本一致性,不一样会有冲突) 下载地址 Index of /grafana/yum/rpm/Packages/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 1、安装 wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/Packages/grafana-7.3.5-1.x86_64.rpm --no-check-certificate yum -y localinstall grafana-7.3.5-1

    2024年02月12日
    浏览(32)
  • 从小白到大神之路之学习运维第64天--------Zabbix监控mysql、ftp服务以及自定义配置

    第三阶段基础 时  间:2023年7月19日 参加人:全班人员 内  容: Zabbix监控mysql、ftp服务以及自定义   目录 一、Zabbix监控mysql数据库 二、Zabbix监控ftp服务 三、Zabbix自定义监控项       整体zabbix搭建完成,server端huyang1监控自己以及监控huyang3,切基于lamp平台,服务均开启 服

    2024年02月16日
    浏览(45)
  • zabbix监控实战

    1 zabbix监控平台部署 更改的密码为HLThlt123 创建zabbix数据库 配置zabbix server 配置zabbix前端 启动服务 访问 更改成中文 修改字体文件 2 zabbix添加监控节点 在客户端 在server端 手动添加 自动添加 03 zabbix api 自动注册 停掉自动发现 删掉server3 自动注册 3 zabbix api 获取token vim zabbix.

    2024年02月09日
    浏览(20)
  • 分布式开源监控Zabbix实战

    Zabbix作为一个分布式开源监控软件,在传统的监控领域有着先天的优势,具备灵活的数据采集、自定义的告警策略、丰富的图表展示以及高可用性和扩展性。本文简要介绍Zabbix的特性、整体架构和工作流程,以及安装部署的过程,并结合实战进行监控配置。 1、Zabbix介绍 Zab

    2024年02月09日
    浏览(31)
  • 数据库监控与调优【七】—— MySQL数据库诊断命令

    TIPS 本文基于MySQL 8.0,理论支持MySQL 5.0及更高版本。 本文整理了常用的MySQL诊断命令,可以帮助我们了解数据库的运行情况。 作用: SHOW [FULL] PROCESSLIST用于查看当前正在运行的线程。如果执行此命令的用户拥有 PROCESS 权限,则可看到所有线程;否则只能看到自己的线程(即与

    2024年02月11日
    浏览(39)
  • 【30天精通Zabbix:从入门到实战的全方位监控之旅】第1天:初探Zabbix:开源监控系统的王者

    🌟 热烈欢迎 踏上这30天Zabbix学习之旅的每一位朋友!能在这里和大家相聚,我真的感到非常开心与期待!🎉 🎈 今天,我们将共同启程,去探寻在开源监控领域中独领风骚的王者——Zabbix。不论您是维护系统稳定的管理员、还是日夜兼程保障运行的运维工程师,又或是对监

    2024年03月19日
    浏览(39)
  • 【运维知识进阶篇】zabbix5.0稳定版详解1(安装+部署+添加服务器+拆分数据库)

    本篇文章介绍zabbix监控,监控是对我们操作系统进行不间断的监控,这是软件生命周期非常重要的一环,可以做到事前告警,事后根据监控内容排查问题(金丝雀,监控重要指标),有问题的时候,运维需要管理运维债务(在软件开发过程中积累的一些技术债务) 目录 监控

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包