使用 zabbix 自动发现监控 MySQL
介绍
使用 zabbix 的 low-level 自动发现功能完成单主机多端口的监控, 详见low_level_discovery, 整体上监控类似 percona 的 zabbix 监控插件, 不过使用 mymonitor.pl 替换了脚本 ss_get_mysql_stats.php, 而且配置有点不同.
具体代码及配置详见: zabbix_mysql
1. 结构说明:
zabbix_mysql/
|-- README.md
|-- bin
| |-- get_mysql_stats_wrapper.sh # 对 mymonitor.pl 运行结果的一个封装脚本, 默认 分钟运行一次
| |-- mymonitor.pl # 等同 ss_get_mysql_stats.php 脚本
| `-- mysql_port.pl # 自动发现 MySQL 端口的脚本, 返回 json 格式的输出
|-- install.sh # 安装脚本
`-- templates
|-- userparameter_discovery_mysql.conf # zabbix_agent 配置参数
`-- zabbix_mysql_multiport.xml # zabbix_server 端模板
mymonitor.pl 脚本依赖以下模块:
perl-DBI
perl-DBD-mysql
监控需要的权限包括: PROCESS, SUPER, REPLICATION SLAVE, 在 mysql_port.pl 脚本中通过 netstat 命令获取运行 MySQL 的端口, 脚本以 zabbix 用户(或普通用户)启动, 为避免权限问题, 脚本 install.sh 默认执行 chmod +s /bin/netstat 命令.
mymonitor.pl 脚本默认以 monitor/monitor 用户及口令的方式连接 MySQL 获取状态, 可以在脚本的初始处修改默认密码, 或者在运行时指定--user和--password相关参数信息, 也可以在 /home/mysql/.my.cnf 指定用户信息, 详细可参见 perldoc mymonitor.pl
get_mysql_stats_wrapper.sh 脚本默认读取 mymonitor.pl 生成的文件以响应 zabbix 的请求, 默认5分钟一次; 同时因为需要频繁(默认1分钟)检测 slave 运行状态, 需要提供 MySQL 登录信息, 以便 slave 的检测.
2. 安装说明
在 agent 端操作:
# git clone https://github.com/chenzhe07/zabbix_mysql.git /usr/local/zabbix_mysql
# bash /usr/local/zabbix_mysql/install.sh 192.168.1.2
192.168.1.2 为内网 ip 地址, 这里考虑到可能存在多个内网ip, 所以没有自动获取, 需要用户手动添加.
在 server 端操作:
import templates/zabbix_mysql_multiport.xml using Zabbix UI(Configuration -> Templates -> Import),
and Create/edit hosts by assigning them “MySQL” group and linking the template “MySQL_zabbix” (Templates tab).
导入模板, 并将模板加到待监控的机器里.
3. 测试
# perl mymonitor.pl --host 10.0.0.10 --port --items hv
hv:
# perl mymonitor.pl --host 10.0.0.10 --port --items kx
kx: # php ss_get_mysql_stats.php --host 10.0.0.10 --port --items hv
hv:
# php ss_get_mysql_stats.php --host 10.0.0.10 --port --items kx
kx: # zabbix_get -s 10.0.0.10 -p -k "MySQL.Bytes-received[3300]"
其它特性
较新的版本增加了 innodb 事务, 锁, 长语句运行检测:
item throttle
max_duration if > 100s, then trigger an alarm
waiter_count if > , then trigger an alarm
idle_blocker_duration if > 200s, then trigger an alarm
如下测试:
# zabbix_get -s cz-test2 -p -k "MySQL.max_duration[3301]"
max_duration:longest transaction active seconds: max time: , thread_id: , user: root@10.0.21.5:
使用 zabbix 自动发现监控 MySQL的更多相关文章
- zabbix自动发现监控mysql
一. 数据库给只读权限 1.1 grant usage on *.* to 'zabbix'@'127.0.0.1' identified by 'zabbix'; flush privileges; ...
- zabbix自动发现监控url
1.在监控客户机上 web_site_code_status.sh: #!/bin/bash UrlFile="/opt/scripts/WEB.txt" IFS=$'\n' we ...
- Zabbix自动发现监控Tomcat进程
1.编辑自动发现脚本 自动发现脚本只支持JSON格式 #!/usr/bin/env python # -*- coding:utf-8 -*- import commands import psuti ...
- zabbix自动发现监控远程端口
zabbix监控远程服务器端口,simple checks是zabbix用来监控无agent的主机 脚本和模板地址: https://github.com/mikeluwen/tcpmonitor
- zabbix 自动发现 监控 硬盘读写 disk io
直接 上配置: 1.配置文件 cat userparameter_harddisk.conf #discovery hard diskUserParameter=custom.vfs.discover ...
- zabbix自动发现功能实现批量web url监控
需求: 现在有大量url需要监控,形式如http://www.baidu.com ,要求url状态不为200即报警. 需求详细分析: 大量的url,且url经常变化,现在监控用的是zabbix,如果手 ...
- zabbix使用自动发现监控esxi的磁盘存储storage
zabbix使用自动发现监控esxi的磁盘存储storage 在任意一台可以访问vcenter的zabbix-agent服务器上添加exsi的磁盘监控模板即可 创建模板过程: custom.esxi. ...
- 转 zabbix 自动发现和 zabbix自定义用户key与参数User parameters
########31 https://www.cnblogs.com/yjt1993/p/10883345.html 1.概念 在配置Iterms的过程中,有时候需要对类似的Iterms进行添加,这些 ...
- zabbix/自动发现规则
对于zabbix 我们并不陌生 他是开源的监控系统,现在的一部分企业都在用zabbix,今天给大家分享的是企业级监控zabbix的自动发现规则,有了它我们自定义健康的时候根据宏值可以让他自动发现对 ...
随机推荐
- 跟着刚哥梳理java知识点——HelloWorld和常见问题(一)
1.按照国际惯例,写一段输出HelloWorld的java语句: public class HelloWorld { //这是main方法,程序的主入口 public static void main ...
- iTunes制作iPhone手机铃声方法(mac版2017年4月更新)
iTunes制作iPhone手机铃声方法(mac版2017年4月更新) 跟之前百度出来的不同,我自己使用后写的. 1.首先下载好你需要制作铃声的mp3文件,这里我放在桌面. 2 ...
- 【割点】【割边】tarjan
洛谷割点模板题--传送门 割边:在连通图中,删除了连通图的某条边后,图不再连通.这样的边被称为割边,也叫做桥.割点:在连通图中,删除了连通图的某个点以及与这个点相连的边后,图不再连通.这样的点被称为割 ...
- 时间同步方法及几个可用的NTP服务器地址
大家都知道计算机电脑的时间是由一块电池供电保持的,而且准确度比较差经常出现走时不准的时候.通过互联网络上发布的一些公用网络时间服务器NTP server,就可以实现自动.定期的同步本机标准时间. 依靠 ...
- spring学习总结一----控制反转与依赖注入
spring作为java EE中使用最为广泛的框架,它的设计体现了很多设计模式中经典的原则和思想,所以,该框架的各种实现方法非常值得我们去研究,下面先对spring中最为重要的思想之一----控制反转 ...
- Vim安装YouCompletMe插件。
1.Centos7.0自带含有支持python2.x的vim.(:version 后看python+则支持,python-则不支持)若不支持,卸载vim后源码编译安装. yum install pyt ...
- css3---线性渐变
.example1 { width: 150px; height: 80px; background: -moz-linear-gradient( top,#ccc,#000); background ...
- mysql查询今天、昨天、7天、近30天、本月、上一月 数据
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- 浅谈JavaScript时间与正则表达式
时间函数:var box = new Date() 函数 Demo: alert(Date.parse('4/12/2007')); //返回的是一个毫秒数11763 ...
- SDN学习之RYU源码安装
近些天开始接触SDN,即软件定义网络的学习,由于是初学者,想通过写博客来分享自己对sdn学习中所使用的ryu以及mininet仿真软件. Mininet源码安装: 尽管网上对mininet的安装教程很 ...