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

[root@linux-node2 ~]# yum install -y mariadb-server
[root@linux-node2 ~]# systemctl start mariadb
[root@linux-node2 ~]# netstat -tulnp |grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mysqld
  • 2.Zabbix添加数据库主机监控

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

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

命令行进行查看获取的信息:
[root@linux-node1 ~]# zabbix_get -s linux-node2 -k mysql.status[Com_begin] [root@linux-node1 ~]# zabbix_get -s linux-node2 -k mysql.status[Slow_queries]

数据库模板监控配置主要来自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
Server version: 5.5.-MariaDB MariaDB Server Copyright (c) , , 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, rows affected (0.00 sec) MariaDB [(none)]> flush privileges;
Query OK, rows affected (0.00 sec) MariaDB [(none)]> quit;
Bye 2)修改监控配置,添加用户名密码
[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$ -p$ -N | awk '{print $$2}'
UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -u$ -p$ 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 (): 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]
(2)修改模板,模板中的变量值可以不设置,因为在连接模板时进行修改变量,此时会自动覆盖在模板设置的变量值:

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

Zabbix学习之路(五)之MySQL监控的更多相关文章

  1. Zabbix学习之路(七)之Nginx的状态监控

    1.安装nginx [root@linux-node2 ~]# yum install -y nginx [root@linux-node2 ~]# mkdir /etc/zabbix/zabbix_ ...

  2. MySQL学习之路(一)——初涉MySQL。

    MySQL学习之路(一) 1.1MySQL的概述 MySQL由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一个开源的关系型数据库管理系统. MySQL分为社区版和企业版. 1 ...

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

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

  4. MYSQL进阶学习笔记十六:MySQL 监控!(视频序号:进阶_35)

    知识点十七:MySQL监控(35) 一.为什么使用MySQL监控 随着软件后期的不断升级,myssql的服务器数量越来越多,软硬件故障的发生概率也越来越高.这个时候就需要一套监控系统,当主机发生异常时 ...

  5. Zabbix学习之路(十)之分布式监控zabbix_proxy及交换机监控

    1.Zabbix分布式监控 zabbix proxy 可以代替 zabbix server 检索客户端的数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix serv ...

  6. Zabbix学习之路(九)之低级自动发现以及MySQL多实例

    1.概述 Zabbix的网络发现是指zabbix server通过配置好的规则,自动添加host,group,template Zabbix的主动注册刚好和网络发现是相反的,功能基本一致.zabbix ...

  7. Zabbix学习之路(二)之添加主机监控及自定义item监控

    1.zabbix_get命令详解 安装zabbix-get命令 [root@linux-node1 ~]# yum install -y zabbix_get 参数说明: -s --host: 指定客 ...

  8. Zabbix学习之路(四)之Web监控

    1.Zabbix监控web服务器访问性能 zabbix 对 web 性能的监控,通过它可以了解 web 站点的可用性以及性能.最终将各项指标绘制到图形中,这样我们可以了解到一个站点的下载速度.响应速度 ...

  9. Zabbix学习之路(八)之自动化监控网络发现和主动注册

    1.网络发现  分两步走:创建发现规则(rule)和执行的动作(Action)(1)创建发现规则"Configuration"-->"Create discover ...

随机推荐

  1. bzoj4037 [HAOI2015]数字串拆分

    Description 你有一个长度为n的数字串.定义f(S)为将S拆分成若干个1~m的数的和的方案数,比如m=2时,f(4)=5,分别为4=1+1+1+1你可以将这个数字串分割成若干个数字(允许前导 ...

  2. BZOJ2588:Count on a tree(主席树)

    Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始 ...

  3. 29、springboot与检索(1)

    一.检索 我们的应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选. 他可以快速的存储.搜索和分析海量数据.Spring Boot通过整合Spring Data E ...

  4. Ajax请求与浏览器缓存

    在现代Web应用程序中,前端代码充斥着大量的Ajax请求,如果对于Ajax请求可以使用浏览器缓存,那么可以显著地减少网络请求,提高程序响应速度. 1. Ajax Request 使用jQuery框架可 ...

  5. docker参数

    Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -d, --detach=false 指定容器运行于前台还是后台,默认为false -i, - ...

  6. Spring @Value 默认值

    @Value(value = "${etl.maxthreadcount:3}") private long MaxThreadCount;

  7. PAT——1021. 个位数统计

    给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字 ...

  8. 【Dubbo源码阅读系列】服务暴露之远程暴露

    引言 什么叫 远程暴露 ?试着想象着这么一种场景:假设我们新增了一台服务器 A,专门用于发送短信提示给指定用户.那么问题来了,我们的 Message 服务上线之后,应该如何告知调用方服务器,服务器 A ...

  9. 在TextBrowser显示中,如何让最新的数据永远出现在第一行或者是在窗口的最后显示信息

    这是第一行,但是随着数据的增多,最新的数据就会在末尾显示,然后就看不到了.可以用 main_ui->ReceiveDatatextBrowser->insertPlainText(strD ...

  10. 复习宝典之Mysql数据库

    查看更多宝典,请点击<金三银四,你的专属面试宝典> 第一章:mysql数据库 1)mysql与mariaDb MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用 ...