首页 > 数据库 >zabbix5.0版本 (用脚本自定义监控项+监控MySQL状态信息)

zabbix5.0版本 (用脚本自定义监控项+监控MySQL状态信息)

时间:2025-01-08 09:30:12浏览次数:10  
标签:脚本 自定义 zabbix5.0 zabbix sh 监控 MySQL

目录

1.用脚本自定义监控项

(1)编写脚本进行取值

(2)修改zabbix客户端配置文件

(3)zabbix创建模板及监控项

(4)关联至被监控主机

2.监控MySQl状态信息

(1)使用脚本定义监控项

(2)服务端创建MySQL监控模板

(3)添加触发器

(4)配置图形

(5)关联至被监控主机

(6)测试并查看数据

3.自定义监控项以及监控 MySQL 状态信息的优点


在做自定义监控项的时候,一个一个取值比较麻烦,取出一个数值,就要把该数值相关信息以一定格式写入/etc/zabbix/zabbix_agentd.d/下的配置文件里,当遇到需要取很多数值的时候,这样的操作会很繁琐,当有一种简单方法可以取很多数值的时候,这样叠加这些感觉效率又很低,所以我们可以采取脚本取数值的方式去取我们要监控的数值。

1.用脚本自定义监控项

我们先以Nginx为例,当Nginx取的值比较多时,可以用脚本方式使我们的条例清晰

(1)编写脚本进行取值
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/nginx.sh
#!/bin/sh
case $1 in
	active)
	curl -s 127.0.0.1:88/nginx_status|awk 'NR==1{print $NF}'
	;;
	accepts)
	curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $1}'
	;;
	handled)
	curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $2}'
	;;
	requests)
	curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $3}'
	;;
	*)
	echo "Usage: $0 [active|accepts|handled|requests]"
esac
[root@Web01 ~]# chmod +x /etc/zabbix/zabbix_agentd.d/nginx.sh    #增加执行权限
(2)修改zabbix客户端配置文件
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/nginx.conf
UserParameter=nginx.[*],sh /etc/zabbix/zabbix_agentd.d/nginx.sh $1
 
#用[*]实现可以自定义内容的效果,zabbix自带的监控端口就是这个原理,可以自己填端口
#经测试里面的脚本必须使用sh运行,用绝对路径+给可执行权限不行,不知道zabbix之前版本行不行,反正5.0版本不行
(3)zabbix创建模板及监控项

(4)关联至被监控主机

2.监控MySQl状态信息

此次监控MySQL尝试使用脚本自定义监控项,监控MySQL状态信息

通过命令查看MySQL状态信息是show global status,通过awk取值进行监控

[root@DB01 ~]# mysql -uroot -e 'show global status'
+------------------------------------------+-------------+
| Variable_name                            | Value       |
+------------------------------------------+-------------+
| Aborted_clients                          | 0           |
| Aborted_connects                         | 18926       |
| Access_denied_errors                     | 0           |
| Aria_pagecache_blocks_not_flushed        | 0           |
| Aria_pagecache_blocks_unused             | 15737       |
| Aria_pagecache_blocks_used               | 0           |
| Aria_pagecache_read_requests             | 0           |
......
Threads_connected          # 连接数
Com_select                 # 查询总量
Com_insert                 # 插入总量
Com_update                 # 更新总量
Com_delete                 # 删除总量
Bytes_received             # 流入总流量
Bytes_sent                 # 流出总流量
Slow_queries               # 慢查询总量
(1)使用脚本定义监控项
[root@DB01 ~]# cat /etc/zabbix/zabbix_agentd.d/mysql.sh
mysql -uroot -e 'show global status;'|grep -w $1|awk '{print $NF}'
[root@DB01 ~]# cat /etc/zabbix/zabbix_agentd.d/mysql.conf
UserParameter=mysql.[*],sh /etc/zabbix/zabbix_agentd.d/mysql.sh $1
 
#服务端测试
[root@Zabbix ~]# zabbix_get -s 172.16.1.51 -k mysql.[Threads_connected]
1
(2)服务端创建MySQL监控模板

其他自定义的值可以根据需求自行添加,此处省略......

再添加个zabbix自带的端口监控

最终完成添加

(3)添加触发器

(4)配置图形

(5)关联至被监控主机

(6)测试并查看数据

如果添加了上面我列举的那些监控项,可以通过运行下面的脚本生成出一些数据

[root@web02 ~]# cat mysql.sh
for i in `seq 100`
do
mysql -uroot -e "create database IF NOT EXISTS db;
use db;
DROP TABLE IF EXISTS test${i};
create table test${i}(id int);
insert into db.test${i} values (123456);
select * from db.test${i};
delete from test${i} where id=123456;"
done
3.自定义监控项以及监控 MySQL 状态信息的优点

(1)灵活性和可扩展性
自定义监控项:通过脚本自定义监控项,用户可以根据具体的业务需求和环境,灵活地定义监控内容。这意味着可以监控特定的数据库性能指标、应用程序状态或其他任何系统级别的参数。
扩展性:可以根据需求随时扩展监控项,添加新的指标而不受限于 Zabbix 默认监控项。
(2)实时监控
即时反馈:通过脚本监控 MySQL 状态信息,可以实时获取数据库的性能指标,如连接数、查询执行情况、慢查询等。这有助于及时发现潜在问题并进行处理。
告警机制:Zabbix 提供强大的告警功能,可以在监控项达到预设阈值时自动发送通知,帮助运维人员快速响应。
(3)全面的监控能力
多维度监控:可以监控 MySQL 的多个方面,如性能、可用性、错误日志等,确保数据库的健康状态。
结合其他监控内容:可以将 MySQL 监控与其他系统(如应用服务器、网络设备等)的监控结合,实现全面的系统监控。
(4)自动化和简化运维
减少人工干预:通过自动化监控脚本,可以减少人工监控的工作量,降低运维成本。
数据可视化:Zabbix 提供丰富的图表和仪表板功能,可以将 MySQL 的监控数据可视化,方便运维人员进行分析和决策。
(5)历史数据分析
趋势分析:Zabbix 能够存储监控数据,用户可以对历史数据进行分析,识别性能瓶颈、使用趋势等,为后续优化提供依据。
容量规划:通过分析历史监控数据,可以更好地进行容量规划,确保系统资源的合理使用。
(6)高效的资源利用
低开销:通过定制监控脚本,可以优化监控的频率及方式,减少对系统资源的消耗,确保监控过程不会影响数据库的性能。

标签:脚本,自定义,zabbix5.0,zabbix,sh,监控,MySQL
From: https://blog.csdn.net/2301_76966984/article/details/144956650

相关文章

  • 华为设备的监控和管理
    监控华为设备(如路由器、交换机、防火墙等)的性能和状态是网络运维的重要任务。以下是一些常见的监控方法和工具:1.使用SNMP(简单网络管理协议)概述:SNMP是网络设备监控的主要协议,用于获取设备状态、性能数据以及设置设备参数。配置步骤:启用SNMP:配置设备的SNMP功能,包括社区......
  • Python如何读取 同花顺自选股?同花顺自选股保存在哪里?自定义板块的股票又保存在哪里?
    背景问题:客户策略想直接读取到同花顺的自选股,省得每次手动导出股票池,Python能够做到吗?回答:当然可以了!最主要的是找到同花顺自选股保存在本地的文件,找到了文件,就能通过Python来读取股票池。步骤那同花顺自选股保存在哪里呢?1、找到安装目录首先打开同花顺的安装目录,不知......
  • Vue组件及其自定义事件
    组件组件(Component)是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树: 标题注册一个全局组件语法格式如下:Vue.component(tagN......
  • 【编码】如何实现一套自定义网络协议?
    前言下文介绍的自定义协议仅作为学习示例,纯粹是玩具项目,没有实际可用性。无需过度关注和讨论其合理性进行通信的双方是谁?常见的模型客户端-服务器,例如HTTP协议,浏览器<=>Web服务器。中转站模型,如MQTT协议,应用服务<=>中转站<=>硬件客户端对等模型,例如Thrift协议,应用服务<=>应......
  • 大学生HTML5期末作业 html+css网页制作 新闻 自定义新闻主题2个页面 Web前端网页制作
    大学生HTML5期末作业html+css网页制作新闻自定义新闻主题2个页面Web前端网页制作html5+css3+js网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode、Sublime、Webstorm、Text、Notepad++等任意html编辑软件进行运行及修改编辑等操作)。获取源......
  • 自定义加密算法
    常见的哈希算法如Caesar,Base64,MurmurHash等已经被安全研究人员盯上了,经常使用这些算法作为特征定位恶意软件,因此最好使用自定义算法或不常见算法。base58加密cmd.exe#include<winsock2.h>#include<string.h>#include<stdio.h>#include<stdlib.h>constchar*const......
  • BUG:SWM32开机绘制lvgl框架下的某个自定义控件死机
    一.BUG描述现象1.画了一个关于"模式"的自定义控件,结果开机绘制总是死机。现象2.用keil进行仿真调试全速运行同样死机,但是如果在异常处加断点,然后单步调试就正常。(注:仿真调试比直接运行的速度要慢)现象3.把这个异常对象的创建代码删除,再后面加四个打印追踪,还是死机;但是删除两个......
  • 开源AI视频监控系统,助力公租房廉租房管理,打击倒卖行为
    前言:通过思通数科借助AI视频监控技术提供的解决方案,可以帮助政府精准监管公租房,打击房产倒卖行为,确保公租房管理的公正和透明。客户案例与场景故事框架场景描述:在某城市的一个公租房小区,政府通过安保人员的人工监控方式,试图确保每一户住房都能按照规定入住。然而,随着时间的......
  • JSP居民睡眠质量监控与分析系统9d0fi--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着现代生活节奏的加快和工作压力的增大,越来越多的人开始关注自己的睡眠质量。然而,传统的睡眠监测方式存在一定的局限性,如需要......
  • 给element-plus table 表头添加自定义class
    <el-tableclass="margin-top-16":data="selectedTableData":header-cell-class-name="headerCellClassName"style="width:100%"height="400"><el-table-columnprop="name&q......