zabbix监控mysql

准备两台机器:

zabbix server: 192.168.158.131    <----> server端

mysql:           192.168.158.141    <----> agent端

 

创建mysql登录用户并授权 (agent端执行):


mysql> grant usage on *.* to zabbix@'192.168.158.131' identified by '9527';
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

官方对usage的解释:

usage “无权限” 的同义词
当您想创建一个没有权限的用户时,可以指定usage
要看自己有哪些权限,使用该用户登录mysql,执行sql: show grants;

[root@zabbix_nginx ~]# mysql -uzabbix -h192.168.158.141 -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.22-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show grants;
+--------------------------------------------------+
| Grants for zabbix@192.168.158.131                |
+--------------------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'192.168.158.131' |
+--------------------------------------------------+
1 row in set (0.001 sec)

MySQL [(none)]> 

usage的字面意思就是用法,其实就是让你这个用户可以像个用户似的登录,但是除了能看到有哪些数据库外,什么权限也没有,比如:

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.001 sec)

MySQL [(none)]> use infomation_schema;
ERROR 1044 (42000): Access denied for user 'zabbix'@'192.168.158.131' to database 'infomation_schema'
MySQL [(none)]> 

 

 

如果创建并授权用户时报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。

就先更改策略,再创建并授权用户,代码如下:

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.01 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

mysql> grant usage on *.* to zabbix@'192.168.158.131' identified by '9527';
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

在安装了mariadb或mysql的zabbix服务端执行:

[root@zabbix_nginx ~]# mysqladmin -uzabbix -p9527 -h192.168.158.141 ping 2>/dev/null
mysqld is alive

如果 mysql 状态正常,会显示 mysqld is alive,否则会提示连接不上。对于服务器端,mysqld is alive 这样的句子不好理解,服务器端最好只接收1和0,1表示服务可用,0表示服务不可用。那么再改进一下这个命令,如下:

[root@zabbix_nginx sbin]# mysqladmin -uzabbix -p9527 -h192.168.158.141 ping 2>/dev/null | grep -c alive
1

 

 

用户名和密码放在命令中对于以后的维护不好,所以我们创建一个目录 /sugar,在该目录下创建一个包含mysql用户名和密码的配置文件 ".zm",如下:(我这里没这么做。这种做法在远程机器上好使,在mysql本机上不好使)

mkdir /sugar
touch /sugar/.zm

vi /sugar/.zm  进行编辑,内容如下

[client]
user=zabbix
host=192.168.158.141
password=9527

有了这个文件后的命令变更为:

[root@zabbix_nginx ~]# HOME=/sugar mysqladmin ping 2>/dev/null | grep -c alive
1

或

[root@zabbix_nginx ~]# HOME=/sugar mysqladmin ping | grep -c alive
1

注意:

HOME=/sugar 必须写在 msqladmin 前面,否则会查不出数据,并报错:

 

做完这一步后需要做的就是,将这个监控命令添加到zabbix agent 中,并与一个item key 对应,这样 zabbix server 就能通过这个key 获取 mysql 状态了。我们使用 mysql.ping 作为mysql状态的key。

在 /etc/zabbix/下除了zabbix_agentd.conf外,通常还会有一个目录 zabbix_agentd.d 

检查 zabbix_agentd.conf 文件中有没有 include zabbix_agentd.d。如果注释掉的话就解除注释

在/etc/zabbix/zabbix_agentd.d/下默认已经有一个 userparameter_mysql.conf

修改文件 userparameter_mysql.conf ,添加或修改为如下命令(默认给的mysql.ping 不对,需要改动下):

UserParameter=mysql.ping,mysqladmin -uzabbix -p9527 ping 2>/dev/null | grep -c alive
UserParameter=mysql.version,mysql -V

在 mysql所在agent端测试是否可用:

[root@mysql-master ~]# zabbix_agentd -t mysql.ping
mysql.ping                                    [t|1]
[root@mysql-master ~]# 

在 zabbix server端测试是否可用:

[root@zabbix_nginx ~]# zabbix_get -s 192.168.158.141 -k mysql.ping
1

 

zabbix 监控web端配置

配置 > 主机 > 创建 主机 192.168.158.141

给 192.168.158.141 链接监控自带模板 Template DB MySQL

链接模板后,自带一个监控mysql 状态的监控项和 触发器,都不用修改

自带的监控项

自带的触发器

我们需要创建一个图形,关于mysql状态的图形

图形 > 创建图形

 

查看监控图像

监测 > 图形 ,通过检索条件 “群组:Templates/Databases: 主机:192.168.158.141 图形: mysql status” 检索出mysql status图形

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值