介绍

使用 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的更多相关文章

  1. zabbix自动发现监控mysql

    一. 数据库给只读权限 1.1 grant usage on *.* to 'zabbix'@'127.0.0.1' identified by 'zabbix'; flush privileges; ...

  2. zabbix自动发现监控url

    1.在监控客户机上 web_site_code_status.sh: #!/bin/bash UrlFile="/opt/scripts/WEB.txt" IFS=$'\n' we ...

  3. Zabbix自动发现监控Tomcat进程

    1.编辑自动发现脚本 自动发现脚本只支持JSON格式 #!/usr/bin/env python # -*- coding:utf-8 -*- import commands import psuti ...

  4. zabbix自动发现监控远程端口

    zabbix监控远程服务器端口,simple checks是zabbix用来监控无agent的主机 脚本和模板地址: https://github.com/mikeluwen/tcpmonitor

  5. zabbix 自动发现 监控 硬盘读写 disk io

    直接 上配置: 1.配置文件 cat userparameter_harddisk.conf #discovery hard diskUserParameter=custom.vfs.discover ...

  6. zabbix自动发现功能实现批量web url监控

    需求: 现在有大量url需要监控,形式如http://www.baidu.com ,要求url状态不为200即报警. 需求详细分析: 大量的url,且url经常变化,现在监控用的是zabbix,如果手 ...

  7. zabbix使用自动发现监控esxi的磁盘存储storage

    zabbix使用自动发现监控esxi的磁盘存储storage 在任意一台可以访问vcenter的zabbix-agent服务器上添加exsi的磁盘监控模板即可 创建模板过程: custom.esxi. ...

  8. 转 zabbix 自动发现和 zabbix自定义用户key与参数User parameters

    ########31 https://www.cnblogs.com/yjt1993/p/10883345.html 1.概念 在配置Iterms的过程中,有时候需要对类似的Iterms进行添加,这些 ...

  9. zabbix/自动发现规则

      对于zabbix 我们并不陌生 他是开源的监控系统,现在的一部分企业都在用zabbix,今天给大家分享的是企业级监控zabbix的自动发现规则,有了它我们自定义健康的时候根据宏值可以让他自动发现对 ...

随机推荐

  1. android通过代码获取华为手机的EMUI系统版本号

    因为app中用到华为推送,但是华为推送在不同版本上是存在不同问题的,需要单独来处理. 那么最基本的问题是要获取EMUI系统的版本号. 上网翻了很多博客帖子,基本上是在获取root权限下去读取/syst ...

  2. 自动生成数学题型一 (框架Struts2) 题型如(a+b=c)

    1. 加减乘除 1.1 随机生成制定范围的整数 /** * 随机产生一个被限定范围的整数 * * @param num1 * 定义起始范围 num1 * @param num2 * 定义终止范围 nu ...

  3. Sql server DATEADD日期函数的使用

    DATEADD日期函数 DATEADD() 函数在日期中添加或减去指定的时间间隔. 日:在当前日期上加两天 , ,'2014-12-30') 月:在当前日期上加两个月 , , 年:在当前日期上加两年 ...

  4. 获取camera截屏图片

    Camera camera; SpriteRenderer sprRender; Texture2D t2d = New Texture2D(1300, 760, TextureFormat.RGB2 ...

  5. inform表单验证,正则表达式,用户名,身份证,密码,验证码

    最近利用空闲时间写了部分表单验证,包括用户名,身份证,密码,验证码,仅为自己巩固最近所学的知识 表单的样式使用的是table布局,因为觉得DIV布局定位比较麻烦,table有三列,分别为基本信息,输入 ...

  6. Unity 多屏(分屏)显示,Muti_Display

    Unity 多屏(分屏)显示,Muti_Display  最近项目有个需求,主要用于在展厅的展示游戏. 比如,在一个很大的展厅,很大的显示屏挂在墙上,我们不可能通过操作墙上那块显示器上的按钮来控制游戏 ...

  7. mysql,oracle,sqlserver使用jdbc连接数据库总结

    jdbc连接数据是javaweb开发的一个重点,今天特此来总结一下,加深记忆. jdbc连接数据库一共分为三步: 1:加载驱动 需要去下载各自的驱动jar包,可以去网上搜索一下. 模板:加载驱动程序: ...

  8. Java:构造器,构造代码块,静态代码块的执行顺序

    1.构造器:与类同名且没有返回值,用来初始化类属性: 构造器又分为无参构造器和有参构造器 1.1:无参构造器 public class Contruction{ ...属性... public Con ...

  9. 使用Angular 4、Bootstrap 4、TypeScript和ASP.NET Core开发的Apworks框架案例应用:Task List

    最近我为我自己的应用开发框架Apworks设计了一套案例应用程序,并以Apache 2.0开源,开源地址是:https://github.com/daxnet/apworks-examples,目的是 ...

  10. 关于WordPress搬家方法步骤的整理

    最近准备更换自己的博客服务器,所以需要将原来服务器上的所有东西都搬到新的服务器.为了数据的安全,在网上找了很多的资料.现在整理一下整个搬家过程的操作步骤.下面进入正题: 1.测试环境这次我使用的示例服 ...