利用Zabbix部署一個簡易的MySQL監控系統
- GreatSQL社群原創內容未經授權不得隨意使用,轉載請聯絡小編並註明來源。
- GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。
[toc]
一、Zabbix部署
1.配置Zabbix源
# 1.下載rpm包
rpm -Uvh http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i "s#http://repo.zabbix.com/#http://mirror.tuna.tsinghua.edu.cn/zabbix/#g" /etc/yum.repos.d/zabbix.repo
# 2.啟用Zabbix前端倉庫
sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo
sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/zabbix.repo
# 3.清理源yum資訊
yum clean all
2.安裝 Zabbix server 和 agent
yum -y install zabbix-server-mysql zabbix-agent
3.啟用 Red Hat軟體集合
SCL(Software Collections)可以讓你在同一個作業系統上安裝和使用多個版本的軟體,而不會影響整個系統的安裝包。
yum -y install centos-release-scl
4.安裝Zabbix前端軟體包
通常我們會安裝的獨立的Nginx
和Php,這裡演示方便就直接安裝了
yum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl
5.安裝MySQL用來儲存Zabbix的元資料資訊
安裝MySQL步驟跳過,非本文重點。
6.資料庫賦權
create database zabbix charset utf8 collate utf8_bin;
create user [email protected]'127.0.0.1' identified by 'zabbix';
grant all on zabbix.* to [email protected]'127.0.0.1';
ALTER USER 'zabbix'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'zabbix';
flush privileges;
7.匯入Zabbix元資料SQL
zcat /usr/share/doc/zabbix-server-mysql-5.0.24/create.sql.gz|mysql -uroot -p -S /data/GreatSQL/3306/mysql.sock zabbix
8.服務端配置連線zabbix資料庫
[[email protected]]# cat /etc/zabbix/zabbix_server.conf|grep -v '#'|grep -v '^$'
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBHost=127.0.0.1
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
9、配置Nignx 配置後把域名繫結到hosts檔案中
[[email protected]]# more /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
server {
listen 80;
server_name greatsql.zabbix.com; # 自定義域名
root /usr/share/zabbix;
10、配置Php
[[email protected]]# cat /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
listen.acl_users = apache,nginx # 加個nginx白名單
php_value[date.timezone] = Asia/Shanghai # 時區改成上海
11、啟動服務並設定開機啟動
systemctl start zabbix-server
systemctl start rh-nginx116-nginx.service
systemctl start rh-php72-php-fpm.service
systemctl enable zabbix-server
systemctl enable rh-nginx116-nginx.service
systemctl enable rh-php72-php-fpm.service
二、瀏覽器安裝Zabbix
1.訪問WEB地址
先繫結下host,步驟略,然後瀏覽器訪問地址。
http://greatsql.zabbix.com/setup.php
2.確認所有條件都OK,點選Next step
3.填寫賬戶密碼等資訊,點選Next step
4.再執行Next step
5.執行Next step
6.確認安裝完成
7.登陸主頁,預設賬戶密碼:Admin/zabbix
http://greatsql.zabbix.com/index.php
8.主頁資訊
三、Zabbix Agent 安裝
1、配置Zabbix yum地址
# 1.下載rpm包
rpm -Uvh http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i "s#http://repo.zabbix.com/#http://mirror.tuna.tsinghua.edu.cn/zabbix/#g" /etc/yum.repos.d/zabbix.repo
# 2.啟用Zabbix前端倉庫
sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo
sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/zabbix.repo
# 3.清理源yum資訊
yum clean all
2、安裝zabbix-agent
yum install zabbix-agent -y
3、配置Zabbix Server地址
[[email protected] zabbix]# cat /etc/zabbix/zabbix_agentd.conf|grep -v '#'|grep -v '^$'
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.6.221 # Zabbix服務端地址
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
4、啟動zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
四、配置MySQL監控
4.1 配置 Host groups
左側下拉選單欄 Configuration -> Host groups
右上角 Create host group
輸入名稱 MySQL Monitor
點選 Add
,完成
4.2 配置 Templates
1、選單欄點選 Templates
2、右上角點選 Create template
3、填寫模板名稱和組,Groups就是上一個步驟建立的MySQL Monitor
4、選擇連結的模板,連結了2個模板、分別是系統監控和MySQL服務監控
5、配置完成後,如果是首次配置則點選Add。否則就是Update。
4.3 配置 hosts
1、左側選單欄點選 hosts
2、右側點選 Create host
3、配置Host
內容
4、配置 Templates
內容,選擇上個步驟建立的自定義MySQL Monitor Template
5、配置完成後,點選Add
4.4 配置後最終效果
以上就配置完成一臺受監控的資料庫伺服器。
五、檢視監控資料
點選左邊選單頁Monitorning
-> Latest data
可以看到 MySQL-01 系統以及MySQL相關的監控項彙總資訊。
點選其中一個監控項Graph
,可以看到歷史監控繪圖資料。
由於zabbix_agentd
沒有收集MySQL的資訊,所以我們要結合監控模板自定義編寫監控指令碼進行資料收集。
1、檢視模板配置要求
開啟相關模板,檢視描述
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 http://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>
按步驟滿足相關要求。
1、安裝 Zabbix agent and MySQL client.
2、複製監控採集模板,伺服器並沒有Template_DB_MySQL.conf
檔案,我們自定義一個檔案,如下:
[[email protected] ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.uptime[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.ping[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], HOME=/etc/zabbix mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], HOME=/etc/zabbix 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[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
3、資料庫採集許可權開通
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '123456';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
flush privileges;
4、建立監控採集的賬戶資訊
[email protected] ~]# cat /etc/zabbix/.my.cnf
[mysql]
user=zbx_monitor
password=123456
[mysqladmin]
user=zbx_monitor
password=123456
以上按要求配置完成後,重啟程序。
[[email protected] ~]# systemctl restart zabbix-agent
再次檢視就有MySQL監控資料了。
Enjoy GreatSQL :)
- 16. 資料一致性、安全性保障 | 深入淺出MGR
- 實現一個簡單的Database2(譯文)
- MySQL中dd::columns表結構轉table過程以及應用
- 實現一個簡單的Database1(譯文)
- GreatSQL vs MySQL效能測試來了,速圍觀~
- LIMIT和OFFSET分頁效能差!今天來介紹如何高效能分頁
- 簡析XDP的重定向機制
- MySQL8.0修改lower_case_table_names引數導致重啟失敗
- Linux利用Cgroup資源控制
- Debezium的基本使用(以MySQL為例)
- 利用Zabbix部署一個簡易的MySQL監控系統
- 包拯斷案 | 別再讓慢sql背鍋@還故障一個真相
- 淺析TIMESTAMP型別
- 同樣是刪使用者,為啥還有差別?
- 技術分享 | Update更新慢、死鎖等問題的排查思路分享
- MySQL主鍵自增值為什麼有“空洞”?
- MySQL 儲存過程執行的記憶體管理
- 資料中介軟體如何與MySQL資料同步?
- MySQL儲存過程中包含HINT導致升級失敗紀實
- MySQL報障之coredump收集處理流程