[Zabbix] Giám sát MySQL

[Zabbix] Giám sát MySQL

Bạn đang sử dụng Zabbix để giám sát hệ thống của mình. Bạn muốn theo dõi MySQL trên hệ thống giám sát của mình. Trong bài viết này tôi sẽ hướng dẫn bạn cách giám sát MySQL trên Zabbix.

1. Mô hình

2. Cài đặt

2.1 Thực hiện trên MySQL

2.1.1 Cài đặt zabbix agent

Trước tiên ta cần cài đặt Zabbix agent trên máy đang chạy MySQL

rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm yum install zabbix-agent -y

Khai báo thông tin của zabbix server trong file /etc/zabbix/zabbix_agentd.conf

ListenPort=10050 Server=10.10.10.167

Bật zabbix agent

systemctl start zabbix-agent systemctl enable zabbix-agent

Mở port

firewall-cmd --zone=public --add-port=10050/tcp firewall-cmd --zone=public --permanent --add-port=10050/tcp

Tắt selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0

2.1.2 Cấu hình MySQL

Tạo user

mysql -u root -p grant usage on *.* TO 'zabbix'@'%' indentified by 'zabbix'; exit;

Khai báo user/password vừa tạo

mkdir /var/lib/zabbix vi /var/lib/zabbix/.my.cnf

Ghi vào file này nội dung như sau

[client] user = zabbix password = zabbix

Kiểm tra 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

ls /etc/zabbix/zabbix_agentd.d

Xem trong thư mục này đã có file userparameter_mysql.conf chưa. Nếu chưa có thì tạo file có tên như vậy và thêm vào đó nội dung như sau

# 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 zabbix-agent

systemctl restart zabbix-agent

2.2 Thực hiện trên zabbix server

Tạo host trên server

Chọn template Template DB MySQL

Như vậy ta đã có thể giám sát MySQL trên Zabbix

Related Posts
Leave a Reply

Your email address will not be published.Required fields are marked *