Overview
Bài viết hướng dẫn cấu hình MySQL monitoring để giám sát MySQL trên zabbix. Hệ thống gồm zabbix server được cài trên CentOS và MySQL được cài trên Ubuntu Server
Hướng dẫn cấu hình
Cấu hình trên Ubuntu có MySQL
- Tạo user monitoring để quản lý MySQL
mysql -u root -p
grant usage on *.* TO 'monitoring'@'%' indentified by 'zabbix';
exit;
- Khai báo user vừa tạo
mkdir /var/lib/zabbix
vi /var/lib/zabbix/.my.cnf
- Ghi vào file .my.cnf nội dung như sau
[client]
user = monitoring
password = zabbix
- Kiểm trong file /etc/zabbix/zabbix_agentd.conf đã có dòng sau
Include=/etc/zabbix/zabbix_agentd.d/*.conf
- Kiểm tra trong thư mục /etc/zabbix/zabbix_agentd.d bằng lệnh ls đã có file userparameter_mysql.conf chưa
- Edit file userparameter_mysql.conf bằng vi với nội dung như bên dưới
# 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=/etc/zabbix 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[*],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$([[$
#Default below
UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.uptime,HOME=/etc/zabbix mysqladmin status | cut -f2 -d ":" | cut -f1 -d "T" | tr -d " "
UserParameter=mysql.threads,HOME=/etc/zabbix mysqladmin status | cut -f3 -d ":" | cut -f1 -d "Q" | tr -d " "
UserParameter=mysql.questions,HOME=/etc/zabbix mysqladmin status | cut -f4 -d ":"|cut -f1 -d "S" | tr -d " "
UserParameter=mysql.slowqueries,HOME=/etc/zabbix mysqladmin status | cut -f5 -d ":" | cut -f1 -d "O" | tr -d " "
UserParameter=mysql.qps,HOME=/etc/zabbix mysqladmin status | cut -f9 -d ":" | tr -d " "
UserParameter=mysql.version,mysql -V
- Restart dịch vụ zabbix-agent
systemctl restart zabbix-agent
Cấu hình trên giao diện web Zabbix Server
- Tạo host trên zabbix server
- Chọn template Template DB MySQL
- Kiểm tra dịch vụ giám sát MySQL trên zabbix đã hoạt động chưa