• 1.linux-node2节点安装数据库

[root@linux-node2 ~]# yum install -y mariadb-server
[root@linux-node2 ~]# systemctl start mariadb
[root@linux-node2 ~]# netstat -tulnp |grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      41299/mysqld

  • 2.Zabbix添加数据库主机监控

被动模式对Hostname没要求,但主动模式必须与主机Hostname一致。
"Configuration"-->"Host"(填入主机信息)-->"Templates"(链接MySQL模板)
如图:

创建成功后,可以查看到MySQL相应的监控信息,数据库的增改删查,如图:

命令行进行查看获取的信息:
[root@linux-node1 ~]# zabbix_get -s linux-node2 -k mysql.status[Com_begin]
0
[root@linux-node1 ~]# zabbix_get -s linux-node2 -k mysql.status[Slow_queries]
0
数据库模板监控配置主要来自linux-node2节点:/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 的配置
[root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf # For all the following commands HOME should be set to the directory that has .my.cnf file with password information.# Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].
# Key syntax is mysql.status[variable].
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'    #mysql的状态获取# Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].
# Key syntax is mysql.size[<database>,<table>,<type>].
# Database may be a database name or "all". Default is "all".
# Table may be a table name or "all". Default is "all".
# Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both".
# Database is mandatory if a table is specified. Type may be specified always.
# Returns value in bytes.
# 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table
UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix mysql -N'UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive    #mysql的存活获取
UserParameter=mysql.version,mysql -V    #mysql的版本获取

  • 3.带密码对MySQL监控

以上对数据库的监控,都是没有密码直接获取值,这是不合理的,那么需要如何添加密码进行获取监控数据呢?

(1)先对数据库进行授权和密码,通过zabbix用户进行获取数据,此处的授权由于试验,就授权了全部权限,正式生产时不能这样设置。[root@linux-node2 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 711
Server version: 5.5.56-MariaDB MariaDB ServerCopyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> grant all on *.* to zabbix@localhost identified by "zabbix";
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> quit;
Bye2)修改监控配置,添加用户名密码
[root@linux-node2 ~]# 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 -uzabbix -pzabbix -N | awk '{print $$2}'
UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix mysql -N'
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping -uzabbix -pzabbix | grep -c alive
UserParameter=mysql.version,mysql -V[root@linux-node2 ~]# systemctl restart zabbix-agent

修改完毕后,我们可以看到在Item项都显示Not supported,如图:

此时修改一下zabbix对无效监控项的刷新时间,默认是600s,我们改为30s。修改完成后就会变成enabled

"Administration"-->"General"-->右上角选择"other"-->"Refresh unsupported items (in sec)"改为30

  • 4.灵活使用宏变量(Macrros)进行传参配置用户名密码监控

如图:在主机中配置变量

(1)修改配置文件:
[root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name='$3';" | HOME=/var/lib/zabbix mysql -u$1 -p$2 -N | awk '{print $$2}'
UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -u$1 -p$2 ping| grep -c alive
[root@linux-node2 ~]# systemctl restart zabbix-agent此时,如果未传入用户名密码访问是被拒绝的:
[root@linux-node1 ~]# zabbix_get -s linux-node2 -k mysql.status[Slow_queries]
Enter password: ERROR 1045 (28000): Access denied for user 'Slow_queries'@'localhost' (using password: YES)
[root@linux-node1 ~]# zabbix_get -s linux-node2 -k mysql.status[zabbix,zabbix,Slow_queries]
0(2)修改模板,模板中的变量值可以不设置,因为在连接模板时进行修改变量,此时会自动覆盖在模板设置的变量值:

(3)修改模板中的Item:增加传参的变量{$USER},{PASSWD}

转载于:https://www.cnblogs.com/linuxk/p/9453038.html

Zabbix学习之路(五)之MySQL监控相关推荐

  1. java 设置年轻代堆大小,[JVM学习之路]五堆(一)堆的内存结构参数设置分代思想内存分配...

    [JVM学习之路]五堆(一)堆的内存结构参数设置分代思想内存分配 [JVM学习之路]五.堆(一)堆的内存结构.参数设置.分代思想.内存分配策略及TLAB 一.堆的核心概述 堆的特点: 1.一个jvm实 ...

  2. Android SurfaceFlinger 学习之路(五)----VSync 工作原理

    原址 VSync信号的科普我们上一篇已经介绍过了,这篇我们要分析在SurfaceFlinger中的作用.(愈发觉得做笔记对自己记忆模块巩固有很多帮助,整理文章不一定是用来给别人看的,但一定是为加强自己 ...

  3. Hadoop学习之路(五):Hadoop交互关系型数据库(MySQL)

    内容简介 一.Hadoop与数据库交互简介 二.操作前的准备 1.创建表 2.将数据插入表words中 2.将MySQL的驱动分发到所有的Hadoop节点 三.Hadoop与MySQL交互实现 1.创 ...

  4. Zabbix学习之路(一)之Zabbix安装

    一.Zabbix环境准备 [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [roo ...

  5. zabbix编译php_【Zabbix学习笔记】五、LNMP之PHP7.4.1源码编译安装

    PHP7.4.1已于12月18日发布,先来体验一下~ 了解PHP7.4.1的新特性请点击:php7.4新特性 安装环境 操作系统:Centos7 PHP版本: PHP 7.4.1 Web服务器:Ngi ...

  6. 【java学习之路】(mysql篇)003.mysql中limit、表的创建、删除、约束

    limit limit作用 将查询结果集的一部分取出来.通常使用在分页查询当中 limit怎么用呢? 完整用法:limit startIndex, lengthstartIndex是起始下标,leng ...

  7. 【java学习之路】(mysql篇)001.mysql基本介绍、常用命令及简单查询

    什么是数据库? 数据库: 英文单词DataBase,简称DB.按照一定格式存储数据的一些文件的组合. 顾名思义:存储数据的仓库,实际上就是一堆文件.这些文件中存储了具有特定格式的数据. 什么是数据库管 ...

  8. Leaflet学习之路五——动态绘制图形(点、线、圆、多边形)

    leaflet动态绘制图形 动态绘点 动态绘线 动态绘多边形 动态绘制矩形 2020.3.16更新 更新日志: 2019.1.14:更新了绘制多边形时tmpline没有移除的问题 2019.1.15: ...

  9. 前端Vue学习之路(五)插件的使用

    vant插件使用 这里我们是用的语法是vue2.0 所以是 npm i vant -S 用法 1.按需引入的话 找到package.json文件 添加以下内容 plugins:[['import', ...

最新文章

  1. Go 学习笔记(50)— Go 标准库之 net/url(查询转义、查询参数增/删/改/查、解析URL)
  2. Python3.5源码分析-Dict概述
  3. jupyter notebook多维数组运算_Python创建二维数组的正确姿势
  4. VS生成时复制文件到指定目录
  5. 网络推广外包专员浅析货拉拉坠车事件后宣布整改增加录音录像功能
  6. java中的深浅克隆
  7. kuka机器人if逻辑编程_【视频】说说工业机器人控制与PLC通讯
  8. SAP APF KPI tile上的数字无法重复显示的原因
  9. 返回目录中所有JPG图像的文件名列表
  10. 借助Squid代理服务器,建立灵活的访问控制系统
  11. 龙芯2F处理器PMON的编译、加载
  12. android 上运行python脚本,Android上执行python脚本-QPython
  13. androidstudio图片居中_android studio textView 垂直居中
  14. RC并联电路传递函数用MATLAb,RC电路(一)RC串联、并联电路详解
  15. 用递归法求两个数的最大公约数
  16. 麦克劳林级数与麦克劳林公式(泰勒公式)
  17. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中,谭浩强《c语言程序设计》第六章第四题
  18. Android Minui 相关API说明
  19. cgb2107-day17
  20. 【引用】古代官位名称

热门文章

  1. docker私有仓库harbor配置helm chart仓库(安装helm chart插件)
  2. vSphere资源:下载及文档地址
  3. 安装OpenResty(Nginx+Lua)开发环境
  4. python3将列表当作队列使用
  5. Java源码解读--CopyOnWriteList写时复制集合容器
  6. 5新建没有头文件_IAR新建工程
  7. 【规范】流程图的标准画法
  8. C语言的特点是什么?
  9. MySQL数据操作(DML)详解(小白都能懂欧)
  10. ajax项目设置,jQuery_ajax预处理_和后置处理;项目中ajax自动设置_token_请求头,_接口响应code的统一处理...