个人博客

简单Mysql状态监控(zabbix默认mysql监控模板)

19 02月
作者:西洪室|分类:技术

服务端:192.168.1.100

客户端:192.168.1.101

客户端和服务端的zabbix已经安装并配置完成,现在增加客户端对mysql的监控支持。


1、修改zabbix_agent的配置文件:

[root@logstash ~]# vim /opt/zabbix/zabbix_agentd.conf

找到下边这行,把注释去掉:

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

修改为zabbix_agent的配置文件目录:

Include=/opt/zabbix/zabbix_agentd.conf.d/*.conf


2、添加zabbix自带的mysql监控配置

该文件存放目录:zabbix-4.0.1/conf/zabbix_agentd/userparameter_mysql.conf

复制到/opt/zabbix/zabbix_agentd.conf.d/

[root@logstash ~]# cp zabbix-4.0.1/conf/zabbix_agentd/userparameter_mysql.conf /opt/zabbix/zabbix_agentd.conf.d/


3、配置添加mysql账号(无权限,只能登录),配置zabbix客户端使用的数据库连接文件文件(.my.cnf),该文件需要存放在HOME目录,就是之前第3步配置文件所在的目录,我这里的配置文件存放在/opt/zabbix/下面。

[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.15 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create user 'zabbix'@'127.0.0.1' identified by 'Ab@12345';
Query OK, 0 rows affected (0.00 sec)
mysql> grant usage on *.* to 'zabbix'@'127.0.0.1';
Query OK, 0 rows affected (0.01 sec)
mysql> quit;
[root@localhost ~]# vim /opt/zabbix/.my.cnf
[client]
user=zabbix
host=127.0.0.1
password=Ab@12345


4、修改userparameter_mysql.conf文件里.my.cnf的配置文件目录(红色),另外如果mysql是编译安装,需要指定mysql和mysqladmin的所在具体目录(绿色)

[root@logstash ~]# cat zabbix-4.0.1/conf/zabbix_agentd/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=/opt/zabbix /usr/bin/mysql -N | awk '{print $$2}'
# 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=/opt/zabbix /usr/bin/mysql -N'
UserParameter=mysql.ping,HOME=/opt/zabbix /usr/bin/mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V


5、重启zabbix客户端,测试服务端能否获取值

客户端:

[root@localhost ~]# /etc/init.d/zabbix_agentd restart
[root@localhost ~]# /etc/init.d/zabbix_agentd status  #查询状态

服务端:

[root@zabbix ~]# zabbix_get -s192.168.1.101 -p 10050 -k mysql.status[Bytes_sent]
1642494129006


6、添加zabbix监控模板

image.png

检查最新数据:

image.png

到此,zabbix_agent标准监控模板已经部署成功。


浏览2008 评论0
返回
目录
返回
首页
mysql和mariadb慢日志在ELK的过滤规则 Nginx json日志格式采集(nginx->filebeat->logstash->elasticsearch)①

发表评论