Template DB MySQL学习总结
Zabbix 5.0下如何应用Template DB MySQL来监控MySQL数据库呢?下面简单整理一下如何配置、应用Zabbix下自带的模板Template DB MySQL。其实非常简单。
Template DB MySQL可以在Zabbix 5.0的模板下面查看,也有简单的安装相关说明,如下所示:
Requirements for template operation:
1.Install Zabbix agent and MySQL client.
2.Copy Template_DB_MySQL.conf into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don't forget restart zabbix-agent.
3.Create MySQL user for monitoring. For example:
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
For more information read the MYSQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html , please.
4.Create .my.cnf in home directory of Zabbix agent for Linux (/var/lib/zabbix by default ) or my.cnf in c:\ for Windows. For example:
[client]
user=zbx_monitor
password=<password>
在GitHub上https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent上,你可以看到更详细的信息
Overview
For Zabbix version: 5.0
The template is developed for monitoring DBMS MySQL and its forks.
This template was tested on:
- MySQL, version 5.7, 8.0
- Percona, version 8.0
- MariaDB, version 10.4
- Zabbix, version 4.2.1
Setup
See Zabbix template operation for basic instructions.
- Install Zabbix agent and MySQL client. If necessary, add the path to the mysql and mysqladmin utilities to the global environment variable PATH.
- Copy template_db_mysql.conf into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don't forget to restart zabbix-agent
- Create MySQL user for monitoring (<password> at your discretion):
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
For more information please read the MYSQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html
- Create .my.cnf in home directory of Zabbix agent for Linux (/var/lib/zabbix by default ) or my.cnf in c:\ for Windows. The file must have three strings:
[client]
user='zbx_monitor'
password='<password>'
NOTE: Use systemd to start the Zabbix agent on Linux OS. For example in Centos use "systemctl edit zabbix-agent.service" to set the required user to start the Zabbix agent.
Add the rule to the SELinux policy (example for Centos):
# cat <<EOF > zabbix_home.te
module zabbix_home 1.0;
require {
type zabbix_agent_t;
type zabbix_var_lib_t;
type mysqld_etc_t;
type mysqld_port_t;
type mysqld_var_run_t;
class file { open read };
class tcp_socket name_connect;
class sock_file write;
}
#============= zabbix_agent_t ==============
allow zabbix_agent_t zabbix_var_lib_t:file read;
allow zabbix_agent_t zabbix_var_lib_t:file open;
allow zabbix_agent_t mysqld_etc_t:file read;
allow zabbix_agent_t mysqld_port_t:tcp_socket name_connect;
allow zabbix_agent_t mysqld_var_run_t:sock_file write;
EOF
# checkmodule -M -m -o zabbix_home.mod zabbix_home.te
# semodule_package -o zabbix_home.pp -m zabbix_home.mod
# semodule -i zabbix_home.pp
# restorecon -R /var/lib/zabbix
下面用中文简单总结概括一下
1:在被监控的主机上安装Zabbix Agent和 MySQL Client,如有必要,将mysql和mysqladmin应用程序的路径添加到全局环境变量PATH中。
2:将Template_DB_MySQL.conf文件拷贝到Zabbix Agent的配置目录(默认为etc/zabbix/zabbix_agentd.d/),不要忘记重启Zabbix Agent。
注意,Template_DB_MySQL.conf文件在哪里呢?相信有些人会懵逼。这个文件在https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent下
我将zabbix源码download下面,此文件位于zabbix-master@18cf3730036\templates\db\mysql_agent下。
3:在被监控的数据库上创建数据库账号
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'xxxxx';GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
个人观点:出于安全考虑,账号限定只能本机访问,不要设置为任意IP可以访问。
CREATE USER 'zbx_monitor'@'localhost' IDENTIFIED BY 'xxxxx';GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'localhost';
4:找不到这个目录/var/lib/zabbix,那么新建此目录,然后创建.my.cnf
# rpm -ql zabbix-agent /etc/logrotate.d/zabbix-agent/etc/zabbix/zabbix_agentd.conf/etc/zabbix/zabbix_agentd.d/usr/lib/systemd/system/zabbix-agent.service/usr/lib/tmpfiles.d/zabbix-agent.conf/usr/sbin/zabbix_agentd/usr/share/doc/zabbix-agent-5.0.1/usr/share/doc/zabbix-agent-5.0.1/AUTHORS/usr/share/doc/zabbix-agent-5.0.1/COPYING/usr/share/doc/zabbix-agent-5.0.1/ChangeLog/usr/share/doc/zabbix-agent-5.0.1/NEWS/usr/share/doc/zabbix-agent-5.0.1/README/usr/share/doc/zabbix-agent-5.0.1/userparameter_mysql.conf/usr/share/man/man8/zabbix_agentd.8.gz/var/log/zabbix/var/run/zabbix
新建目录/var/lib/zabbix
# mkdir /var/lib/zabbix
添加访问数据库的账号信息。
[client]
user='zbx_monitor'
password='<password>'
关于Template DB MySQL的Discovery rules、Items 、Triggers、Macros,下面参考资料中已有详细介绍,在此略过。