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 zabbix@localhost 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、先把这个放一放,去搞别的!( 监控已经完成,后面的部分放别的地方继续 )

Zabbix 监控页面中文乱码

问题描述:

如题,我相信大多数人都遇到过这个问题,Zabbix 监控图 中文乱码。

解决这个问题也很简单:( Zabbix 网页目录中缺少字体 )

1、打开 Windows 的 C:\Windows\Fonts 字体存放目录,选一款你喜欢的字体 ( 建议选清爽一点的,太花的放上去看不清楚 )

2、我选择的是 楷体常规,文件名为 simkai.ttf,把这个文件传到服务器的 Zabbix 网页目录中 ../html/zabbix/fonts ( 如果原文件名是 .TTF 的,记得改成 .ttf )

3、编辑 ../zabbix/include/defines.inc.php 文件,找到 define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); 行,将 DejaVuSans 修改为 simkai 即可。

4、刷新页面就能看到效果。

一些Zabbix相关教程集合

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16db27bb78eed53c59cdbb4acad28680.html