zabbix低自动发现--监控mysql多实例(二十九)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: zabbix低级自动发现监控mysql多实例1.低级自动发现概念低级自动发现本身就是一个key,在这个自动发现规则中包含有很多个监控原型,这些的监控原型都是依靠于自动发现规则根据各种过滤器最后匹配到的结果进行监控低级自动发现经常适用于在同一台机器上有很多重复的监控项,人工操作非常繁重,这时候就可以配置一个低级自动发现,将自动发现做成模板,让对应的主机进行链接,经过一段时间的扫描后会自动的加入到监控中

zabbix低级自动发现监控mysql多实例

1.低级自动发现概念

低级自动发现本身就是一个key,在这个自动发现规则中包含有很多个监控原型,这些的监控原型都是依靠于自动发现规则根据各种过滤器最后匹配到的结果进行监控

低级自动发现经常适用于在同一台机器上有很多重复的监控项,人工操作非常繁重,这时候就可以配置一个低级自动发现,将自动发现做成模板,让对应的主机进行链接,经过一段时间的扫描后会自动的加入到监控中

低级自动发现的一个重中之重就是以json格式去取值

低级自动发现的原理就是依靠生成的json文件,定义监控原型,再配合其他监控项,自动把监控项加入到zabbix监控中

低级自动发现配置思路:

1.编写一个脚本将结果以json的格式输出

2.添加一个自定义监控项,用于低级自动发现使用

3.创建一个自动发现规则,需要填写我们刚刚创建的自定义监控项,最后在创建监控项原型,监控原型中的变量就是我们取的json格式中的变量值

低级自动发现本身也就是一个监控项key,监控原型就是依靠这个key做得监控低级低级自动发现监控mysql多实例的步骤

1.部署mysql多实例

2.编写取端口并输出成json格式的脚本

3.编写低级自动发现模板,配置自动发现策略

4.由于默认的mysql监控模板已经做出了很多监控项,且都是有用的,因此我们要修改默认的mysql agent配置项,增加端口传 参,这样就可以配合自动发现自动加监控项了

5.在自动发现模板添加监控原型,将获取到的端口传入默认模板,这里写监控原型的时候要写默认模板的key值

6.链接监控模板,查看监控数据

2.部署mysql多实例

2.1.安装单实例

1.安装mysql
[root@192_168_81_170 ~]# rpm -ivh http://repo.mysql.com/yum/mysql-5.6-community/el/7/x86_64/mysql-community-release-el7-5.noarch.rpm
[root@192_168_81_170 ~]# yum install mysql-community-server
2.启动mysql
[root@192_168_81_170 ~]# systemctl start mysqld
[root@192_168_81_170 ~]# systemctl enable mysqld
3.修改root口令
[root@192_168_81_170 ~]# mysqladmin -u root password 123456

2.2.部署多实例

注意:mysql多实例部署好之后,想要登陆mysql,必须加上-h,否则会提示密码不对

多实例改密码:[root@192_168_81_170 scripts]# mysqladmin -u root -P 3307 -h 127.0.0.1 password 123

多实例登陆:[root@192_168_81_170 scripts]# mysql -u root -P 3307 -p123 -h 127.0.0.1

无密码登陆:[root@192_168_81_170 scripts]# mysql -u root -P 3307 -h 127.0.0.1

2.2.1.mysql3307

创建数据存储路径
[root@192_168_81_170 ~]# mkdir /data/mysql{3307,3308}
1.部署mysql3307实例
[root@192_168_81_170 ~]# vim /etc/mysql3307.conf
[mysqld]
datadir=/data/mysql3307/
socket=/data/mysql3307/mysql.sock
port=3307
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/data/mysql3307/mysqld.log
pid-file=/data/mysql3307/mysqld.pid
2.初始化数据库
[root@192_168_81_170 ~]# mysql_install_db --user=mysql --defaults-file=/etc/mysql3307.conf
3.启动数据库
[root@192_168_81_170 ~]#  mysqld_safe --defaults-file=/etc/mysql3307.conf &

2.2.2.mysql3308

1.部署mysql3308实例
[root@192_168_81_170 ~]# vim /etc/mysql3308.conf 
[mysqld]
datadir=/data/mysql3308/
socket=/data/mysql3308/mysql.sock
port=3308
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/data/mysql3308/mysqld.log
pid-file=/data/mysql3308/mysqld.pid
2.初始化数据库
[root@192_168_81_170 ~]# mysql_install_db --user=mysql --defaults-file=/etc/mysql3308.conf
3.启动数据库
[root@192_168_81_170 ~]#  mysqld_safe --defaults-file=/etc/mysql3308.conf &

2.2.3.多实例已完成

[root@192_168_81_170 ~]# netstat -lnpt | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      82569/mysqld        
tcp6       0      0 :::3307                 :::*                    LISTEN      88447/mysqld        
tcp6       0      0 :::3308                 :::*                    LISTEN      88660/mysqld     

3.编写自动探测myql实例的脚本

此步骤主要用于自动检测有多少个mysql实例,并将输出制作成json格式

[root@192_168_81_170 scripts]# vim mysql_discovery.sh 
#!/bin/bash
mysql_port=(`netstat -lntp|awk -F "[ :]+" '/mysqld/{print$4}'|sort|uniq`)  #定义数组,获取tomcat端口号
mysql_count=`netstat -lntp|awk -F "[ :]+" '/mysqld/{print$4}'|sort|uniq | wc -l` #定义端口数量
printf "{\n"                                    #打印json格式
printf  '\t'"\"data\":["
j=0
for i in ${!mysql_port[@]}             #遍历数组获取索引值
do
   let j++
   printf '\n\t\t{'
   printf "\"{#MYSQL_PORT}\":\"${mysql_port[$i]}\"}"        #取到tomcat的端口号
   if [ $j -lt $mysql_count ];then                   #本次的i值与tomcat端口数量做比较,如果小则输出,否则不输出
              printf ','
   fi
done
printf  "\n\t]\n"
printf "}\n"
[root@192_168_81_170 scripts]# chmod a+x mysql_discovery.sh 

4.配置zabbix-agent

我们需要修改三个配置

1.增加自动发现的配置文件

2.修改自带mysql模板的mysql.status监控项key

3.修改自带mysql模板的mysql.ping监控项key

4.1.增加端口自动发现配置文件

1.配置zabbix-agent
[root@192_168_81_170 scripts]# vim /etc/zabbix/zabbix_agentd.d/mysql_discovery.conf
UserParameter=mysql_discovery[*],/etc/zabbix/scripts/mysql_discovery.sh
2.重启
[root@192_168_81_170 scripts]# systemctl restart zabbix-agent.service
3.测试
[root@zabbix-server ~]# zabbix_get -s 192.168.81.170 -k mysql_discovery
{
  "data":[
    {"{#MYSQL_PORT}":"3306"},
    {"{#MYSQL_PORT}":"3307"},
    {"{#MYSQL_PORT}":"3308"}
  ]
}

4.2.修改自带的mysql status配置

此部操作是为了结合mysql自带模板,根据我们自带发现探测到的端口传入默认模板中

[root@192_168_81_170 scripts]# !vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -uroot -P$2 -h127.0.0.1 -N | awk '{print $$2}'
[root@192_168_81_170 scripts]# systemctl restart zabbix-agent

测试取值

[root@zabbix-server ~]# zabbix_get -s 192.168.81.170 -k mysql.status[Uptime,3307]
7026

4.3.修改自带的mysql.ping配置

此操作是为了结合自带模板中的探测mysql是否存活的监控项,根据自动发现的端口进行传参

[root@192_168_81_170 scripts]# !vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 
UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -P$1 -h127.0.0.1 ping | grep -c alive
[root@192_168_81_170 scripts]# systemctl restart zabbix-agent
测试取值
[root@zabbix-server ~]# zabbix_get -s 192.168.81.170 -k mysql.ping[3307]
1

5.创建自动发现模板

5.1.创建模板

配置—模板—创建模板

名称:Template MySQL Auto Discovery

5.2.创建应用集

配置—模板—刚刚建好的模板—应用集—创建应用集

名称:MySQL Discovery

5.3.创建自动发现规则

配置—模板—刚刚建好的模板—自动发现规则—创建自动发现规则

名称:mysql.discovery

键值:mysql_discovery

5.4.修改自带的mysql agent配置文件

此部操作是为了结合mysql自带模板,根据我们自带发现探测到的端口传入默认模板中

[root@192_168_81_170 scripts]# !vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -uroot -P$2 -h127.0.0.1 -N | awk '{print $$2}'

测试取值

[root@zabbix-server ~]# zabbix_get -s 192.168.81.170 -k mysql.status[Uptime,3307]
7026

5.5.添加监控原型

配置—模板—找到刚刚建好的模板—自动发现规则—低级自动发现

5.5.1.增加mysql存活监控原型

名称:mysql当前状态 on {#MYSQL_PORT}

键值:mysql.ping[#MYSQL_PORT]

更新间隔:1m

应用集:MySQL Discovery

5.5.2.增加mysql当前存活时长监控原型

名称:mysql当前存活时长 on {#MYSQL_PORT}

键值:mysql.status[Uptime,{#MYSQL_PORT}]

信息类型:数字

单位:uptime

更新间隔:1m

应用集:MySQL Discovery

5.5.3.增加mysql每秒数据更新条数监控原型

名称:mysql每秒数据更新条数 on {#MYSQL_PORT}

键值:mysql.status[Com_update,{#MYSQL_PORT}]信息类型:浮点数

单位:qps

更新间隔:1m

应用集:MySQL Discovery

5.5.4.增加mysql慢日志条数监控原型名称:mysql慢日志条数 on {#MYSQL_PORT}

键值:mysql.status[Slow_queries,{#MYSQL_PORT}]

信息类型:数字

更新间隔:1m

应用集:MySQL Discovery

5.5.5.增加mysql每秒数据查询条数监控原型

名称:mysql每秒数据查询条数 on {#MYSQL_PORT}

键值:mysql.status[Com_select,{#MYSQL_PORT}]信息类型:浮点数

单位:qps

更新间隔:1m

应用集:MySQL Discovery

5.5.6.增加mysql每秒数据回滚条数监控原型

名称:mysql每秒数据回滚条数 on {#MYSQL_PORT}

键值:mysql.status[Com_rollback,{#MYSQL_PORT}]

信息类型:浮点数

单位:qps

更新间隔:1m

应用集:MySQL Discovery

5.5.7.增加mysql每秒查询监控原型

名称:mysql每秒查询 on {#MYSQL_PORT}

键值:mysql.status[Questions,{#MYSQL_PORT}]

信息类型:浮点数

单位:qps

更新间隔:1m

应用集:MySQL Discovery

5.5.8.增加mysql每秒数据插入条数监控原型

名称:mysql每秒数据插入条数 on {#MYSQL_PORT}

键值:mysql.status[Com_insert,{#MYSQL_PORT}]

信息类型:浮点数

单位:qps

更新间隔:1m

应用集:MySQL Discovery

5.5.9.增加mysql每秒数据删除条数监控原型

名称:mysql每秒数据删除条数 on {#MYSQL_PORT}

键值:mysql.status[Com_delete,{#MYSQL_PORT}]信息类型:浮点数

单位:qps

更新间隔:1m

应用集:MySQL Discovery

5.5.10.增加mysql每秒数据提交条数监控原型

名称:mysql每秒数据提交条数 on {#MYSQL_PORT}

键值:mysql.status[Com_commit,{#MYSQL_PORT}]

信息类型:浮点数

单位:qps

更新间隔:1m

应用集:MySQL Discovery

5.5.11.增加mysql每秒发送的字节数监控原型

名称:mysql每秒接收的字节数 on {#MYSQL_PORT}

键值:mysql.status[Bytes_sent,{#MYSQL_PORT}]

信息类型:浮点数

单位:Bps

更新间隔:1m

应用集:MySQL Discovery


5.5.12.增加mysql每秒接收的字节数监控原型

名称:mysql每秒接收的字节数 on {#MYSQL_PORT}

键值:mysql.status[Bytes_received,{#MYSQL_PORT}]

信息类型:浮点数

单位:Bps

更新间隔:1m

应用集:MySQL Discovery

5.5.13.增加mysql运算数监控原型

名称:mysql每秒运算数 on {#MYSQL_PORT}

键值:mysql.status[Com_begin,{#MYSQL_PORT}]

信息类型:浮点数

单位:Bps

更新间隔:1m

应用集:MySQL Discovery

5.6.增加mysql状态触发器

名称:mysql is down on {#MYSQL_PORT}表达式:{Template MySQL Auto Discovery:mysql.ping[{#MYSQL_PORT}].last()}=0

生成表达式的时候可以选择监控原型找到原型后在设置表达式

5.7.增加图形

5.7.1.增加mysql bandwidth图形

名称:MySQL bandwidth on {#MYSQL_PORT}

监控项:点添加原型,找到接收、和发送的监控项

5.7.2.增加mysql operations图形

名称:MySQL operations on {#MYSQL_PORT}

监控项:增删改查、提交、回滚、运算的监控项

5.8.模板制作完成

6.主机链接模板

6.1.链接模板

主机—模板—添加模板—选择mysql自动发现模板

6.2.成功自动添加监控

监控项全部启用

6.3.查看最新数据

数据已更新

6.4.查看图形

全部生效

7.扩展自动发现过滤器

7.1.增加表达式

管理—一般—右上角下拉选择正则表达式—新的表达式

名称:mysql筛掉3306端口

字符串包含:^3306$

7.2.应用表达式

找到自动发现规则—过滤器

{#MYSQL_PORT} 匹配 @mysql筛掉3306端口

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
监控 数据库 Docker
Zabbix监控神通数据库教程
**摘要:** 本文介绍了如何使用Docker安装和配置神舟通用数据库,并利用Zabbix进行监控。首先,通过Docker安装数据库镜像,启动容器并映射端口。接着,使用默认凭证连接数据库并验证安装。然后,将数据库的Python模块和库文件复制到主机,并安装Python3.5及相应模块,创建外部检查脚本以实现Zabbix的监控功能。示例展示了查询数据库版本的监控指标配置。最后,提到了监控结果的界面展示,并邀请读者探索更多Zabbix监控技巧。
11 0
Zabbix监控神通数据库教程
|
12天前
|
SQL 关系型数据库 MySQL
MySQL分组查询实例
MySQL分组查询实例
13 0
|
15天前
|
缓存 分布式计算 关系型数据库
数据管理DMS操作报错合集之当进行RDS实例的可用区迁移时,提示“缓存清理”是什么意思
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
|
20天前
|
关系型数据库 MySQL 数据库
MySQL数据库——多表查询(4)-实例练习、多表查询总结
MySQL数据库——多表查询(4)-实例练习、多表查询总结
18 1
|
22天前
|
SQL 关系型数据库 数据库
17. Python 数据库操作之MySQL和SQLite实例
17. Python 数据库操作之MySQL和SQLite实例
66 2
|
1月前
|
监控 关系型数据库 MySQL
实时计算 Flink版产品使用合集之监控 MySQL 数据写入到 StarRocks 中,在初始化成功后,但无法监控到插入的数据是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据类型详解及实例应用
MySQL数据类型详解及实例应用
|
1月前
|
Prometheus 监控 Cloud Native
使用mysqld_exporter监控所有MySQL实例
使用mysqld_exporter监控所有MySQL实例
66 2
|
13小时前
|
关系型数据库 MySQL 数据库
Django与MySQL:配置数据库的详细步骤
Django与MySQL:配置数据库的详细步骤
|
1天前
|
存储 监控 关系型数据库
关系型数据库mysql的BLACKHOLE
【6月更文挑战第18天】
19 4

推荐镜像

更多