热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:使用zabbix自动发现监控MySQL

篇首语:本文由编程笔记#小编为大家整理,主要介绍了使用zabbix自动发现监控MySQL相关的知识,希望对你有一定的参考价值。介绍

篇首语:本文由编程笔记#小编为大家整理,主要介绍了使用 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 运行结果的一个封装脚本, 默认 5 分钟运行一次
| |-- 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 3300 --items hv
hv:
36968
#
perl mymonitor.pl --host 10.0.0.10 --port 3300 --items kx
kx:
1070879944
# php ss_get_mysql_stats.php
--host 10.0.0.10 --port 3300 --items hv
hv:
36968
# php ss_get_mysql_stats.php
--host 10.0.0.10 --port 3300 --items kx
kx:
1070911408
# zabbix_get
-s 10.0.0.10 -p 10050 -k "MySQL.Bytes-received[3300]"
472339244134

 


其它特性

较新的版本增加了 innodb 事务, 锁, 长语句运行检测:


item throttle
max_duration
if > 100s, then trigger an alarm
waiter_count
if > 10, then trigger an alarm
idle_blocker_duration
if > 200s, then trigger an alarm

如下测试:


# zabbix_get -s cz-test2 -p 10050 -k "MySQL.max_duration[3301]"
max_duration:longest transaction active seconds: max
time: 18, thread_id: 4838781, user: [email protected]10.0.21.5:59980


推荐阅读
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
author-avatar
402-928
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有