Zabbix 监控 Mysql 状态

简介:

如何使用 Zabbix 来监控 Mysql 状态 ?

Zabbix 有自带监控 Mysql 的模板,但是却不能直接使用.. 需要我们根据模板提供的 Key 自己写脚本获取数据

1、查看都有哪些 Key

> Configuration -> Templates

## 在此模板页中,可以看到 Template App MySQL 模板中有 14 个 Items ,我们需要自己写脚本获取这 14 个值

## 分别是:Com_select、Com_insert 、Com_update 、Com_delete 、Com_begin 、Com_commit 、Com_rollback
                 Questions 、Slow_queries 、Bytes_received 、Bytes_sent 、Ping 、Uptime 、Version

2、根据 Key 编写 Shell 脚本

shell > mysql -uroot -p -e "grant usage on *.* to [email protected] identified by ‘zabbix_password‘;" # 建立监控用户

shell > vim /script/mysql_status.sh

#!/bin/bash

User=‘you_user‘
Password=‘you_password‘

Mysql=‘/usr/local/mysql/bin/mysql‘
Mysqladmin=‘/usr/local/mysql/bin/mysqladmin‘

command(){
  $Mysql -u $User -p$Password -e "show global status" | awk ‘$1 ~ /‘"$1"‘$/ {print $2}‘
}

case $1 in
  Com_select)
    command $1 ;;
  Com_insert)
    command $1 ;;
  Com_update)
    command $1 ;;
  Com_delete)
    command $1 ;;
  Com_begin)
    command $1 ;;
  Com_commit)
    command $1 ;;
  Com_rollback)
    command $1 ;;
  Questions)
    command $1 ;;
  Slow_queries)
    command $1 ;;
  Bytes_received)
    command $1 ;;
  Bytes_sent)
    command $1 ;;
  Uptime)
    command $1 ;;
  Version)
    $Mysql -V | awk -F ‘[ ,]‘ ‘{print $6}‘ ;;
  Ping)
    $Mysqladmin -u$User -p$Password ping | wc -l ;;
  *)
    echo "Usage: $0 { Com_select|Com_insert|Com_update|Com_delete|Com_begin|Com_commit|Com_rollback|Questions|Slow_queries|Bytes_received|Bytes_sent|Ping|Uptime|Version }" ;;
esac

## 关于两个命令路径,我使用 `which mysql` 这样的操作没有成功
## 写完先测试一下,能不能获取各 Key 的值

shell > chmod a+x /script/mysql_status.sh

3、添加自定义 key 配置文件

shell > vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_status.conf
# Mysql_status
UserParameter=mysql.status[*],/script/mysql_status.sh $1
UserParameter=mysql.ping,/script/mysql_status.sh Ping
UserParameter=mysql.version,/script/mysql_status.sh Version

## 注意模板里 Key 的取值方式
## 也可以直接加到 /usr/local/zabbix/etc/zabbix_agentd.conf 末尾

shell > vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

UnsafeUserParameters=1 # 允许自定义 Key

## 添加上面配置

4、重启 Zabbix_agentd

shell > service zabbix_agentd restart

## 注意,上面全部操作都是在被监控端

5、Zabbix 服务端测试能否拿到 Key

shell > /usr/local/zabbix/bin/zabbix_get -s 14.25.97.14 -k mysql.ping
1

## 可以获取到 key 的值,说明配置没有问题了
## 被监控端记得要开启 10050 端口

6、Zabbix 监控 Mysql 状态

## 接下来把 Zabbix 自带的监控模板链接到主机即可
## 过上一小会,就能看到效果了,version 可能比较时间长点,因为模板里设的时间范围是 3600 秒,ping 会误报一次 Mysql Down ,因为只前是没有值的。

7、为这些监控项添加 Graph

## 自带的模板已经做好了两张图,所以直接使用即可,我这里是空载,所以啥也看不出来..

8、测试 Trigger 告警

## 很遗憾,自带的模板中也已经定义好了 Trigger 告警条件,来瞅瞅

> Configuration -> Templates -> Trigger

Severity :   ## 事件告警级别

Not classified 未知安装等级,灰色

Information 一般信息,亮绿

Warning 警告信息,黄色

Average 一般故障,橙色

High 高级别故障,红色

Disaster 致命故障,亮红

Name :   ## Trigger 名称

Expression :   ## 对触发器状态计算的逻辑正则表达式

Status :        ## 触发器开关

## 怎么设置触发告警条件下次写 ^_^

## 好了,如果 Mysql 处于 down 状态时会触发条件,但是,触发之后呢 ?( 当然是要发送事件通知啦,或执行远程命令 )

9、先把这个放一放,去搞别的!( 监控已经完成,后面的部分放别的地方继续 )

时间: 2024-10-12 11:07:21

Zabbix 监控 Mysql 状态的相关文章

zabbix监控mysql状态

之前是cacti监控的mysql,很多参数监控的不是特别明白,想着就找zabbix监控. 写好监控MYSQL的配置文件 UserParameter=mysql.Ping,mysqladmin -uroot -p123456  ping|grep alive|wc -l UserParameter=mysql.Threads,mysqladmin -uroot -p123456  status|cut -f3 -d":"|cut -f1 -d"Q" UserParam

使用zabbix监控mysql主从状态

公司mysql架构为一主多从.在日常使用过程中我们经常会遇到主从不同步的情况,为了及时处理此问题现使用zabbix监控mysql主从状态并设置触发器,如有异常则发送邮件报警. 我们都知道使用命令"show slave status \G"可以查看mysql从的状态,下面用脚本方式检查其状态. 在mysql-slave中进入zabbix-agent目录创建脚本文件. cat mysql_slave_status.sh #!/bin/bash /usr/local/mysql/bin/my

Zabbix监控mysql配置及故障告警配置

本文主要介绍zabbix监控mysql的配置,包含使用zabbix自带模板监控mysql相关信息及自定义key监控mysql同步情况.同时介绍了触发器的创建及zabbix通过邮件方式告警配置. 一.配置自带模板监控mysql 1.提供配置文件模板 文件位置在源码包/usr/local/src/zabbix-3.0.4/conf/zabbix_agentd/userparameter_mysql.conf #cp/usr/local/src/zabbix-3.0.4/conf/zabbix_age

zabbix监控mysql+报警

zabbix监控mysql性能 在Zabbix的监控系统中通常是由Zabbix Server与Zabbix Agent一起配合实现监控,在Zabbix Agent内置了很多监控基础的监控项. 这些监控项都是CPU, 文件系统, 网络,磁盘等基础的监控项,对于自己开发服务的监控,Zabbix提供了良好框架为用户实现监控和报警,下面将以为MySQL添加监控为例,介绍如何添加自定义监控. 实验环境 1.NySQL 192.168.2.6 (agent) 2.Zabbix Server 172.30.1

zabbix监控mysql报警

zabbix监控mysql性能 在Zabbix的监控系统中通常是由Zabbix Server与Zabbix Agent一起配合实现监控,在Zabbix Agent内置了很多监控基础的监控项. 这些监控项都是CPU, 文件系统, 网络,磁盘等基础的监控项,对于自己开发服务的监控,Zabbix提供了良好框架为用户实现监控和报警,下面将以为MySQL添加监控为例,介绍如何添加自定义监控. 实验环境 1.NySQL 192.168.2.6 (agent) 2.Zabbix Server 172.30.1

Zabbix监控Mysql、Apache、Nginx应用实战案例

Zabbix对第三方应用软件的监控,主要有两个工作难点:一个是编写自定义监控脚本:另一个是在编写模板并导入zabbix web中,编写脚本这个要根据监控需求定制即可,而编写模板文件则相对来说有点难度,不过网上已经有很多已经写好的模板,可以直接拿来使用.所以,Zabbix对应用软件的监控其实并不难. 一.zabbix监控mysql应用实战 本次博文首先介绍的是Zabbix对Mysql的监控,这个是最简单的,因为Zabbix已经自带了Mysql监控的模板,我们只需编写一个监控Mysql的脚本即可!以

部署zabbix监控mysql (一) 安装zabbix

部署zabbix监控mysql (1)安装LAMP环境 [[email protected] ~]# yum -y installmysql-server http php (2)安装zabbix web所需要的依赖包 [[email protected] ~]# yum -y installmysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmathphp-mbstring php-xml 安装Fpin

Zabbix 监控 Nginx 状态

1.获取 Nginx 状态条件( 需要nginx安装模块) [localhost]#/usr/local/nginx/sbin/nginx -V nginx version: nginx/1.8.0built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_sta

zabbix监控mysql性能

今天来看看zabbix如何监控mysql性能,这边使用mysql自带的模板,可以监控如下内容:OPS(增删改查).mysql请求流量带宽,mysql响应流量带宽,最后会附上相应的监控图! 编写check_mysql.sh脚本 用于获取mysql性能指标数据,你需要修改相应的数据库信息 # vim /usr/local/zabbix-2.4.4/scripts/chk_mysql.sh #脚本如下: #!/bin/bash # -----------------------------------