zabbixのテンプレートに「MySQL by Zabbix agent」があります。テンプレートをリンクしただけだと、ずっと以下のエラーが出ているだけとなる為、オフィシャルサイトを参考に設定します。
MySQL: Failed to fetch info data
MySQLのパフォーマンス監視用ユーザー作成
まずは、MySQL上にzabbixの監視でログインするユーザーを作成します。
sudo mysql
CREATE USER 'zbx_monitor'@'localhost' IDENTIFIED BY 'cdsJ()SDCMmc9c0dsasdcsdC(SXZ0-';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'localhost';
flush privileges;
exit
zabbixの設定ファイルを記載します。
sudo mkdir /var/lib/zabbix/
sudo chown zabbix:zabbix /var/lib/zabbix
vi /var/lib/zabbix/.my.cnf
/var/lib/zabbix/.my.cnfの記載内容
パスワードは、MySQLで作成したユーザーの物を指定します。
[client]
host=localhost
user=zbx_monitor
password='cdsJ()SDCMmc9c0dsasdcsdC(SXZ0-'
userparameter_mysql.confの設定
こちらを参考に、/etc/zabbix/zabbix_agentd.d/userparameter_mysql.confを書きます。
#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default)
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=<password>
#
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
Zabbix agentの再起動
zabbix agentを再起動してZabbix Server側で、対象ホストに「MySQL by Zabbix agent」を紐づけるとデータが取得できるようになっていると思います。
sudo systemctl restart zabbix-agent.service