【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

[toc]

一、部署Zabbix 5.0環境

1.1、下載Zabbix 5.0鏡像

[root@docker36 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/lhrbest/lhrzabbix5:1.0
1.0: Pulling from lhrbest/lhrzabbix5
c1e1cb5fc6d2: Already exists 
f36cbc8bf71f: Pull complete 
Digest: sha256:5e22edb3347a27a731bd48742c982e34dcbcd47b63db2e9b64549ad69488475e
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/lhrbest/lhrzabbix5:1.0
registry.cn-hangzhou.aliyuncs.com/lhrbest/lhrzabbix5:1.0

1.2、創建鏡像

[root@docker36 ~]# docker run -d --name lhrzabbix5 -h lhrzabbix5 \
>   -p 225:22 -p 23306:3306 -p 280:80 -p 20051:10051 \
>   -v /sys/fs/cgroup:/sys/fs/cgroup \
>   --privileged=true \
>   lhrbest/lhrzabbix5:1.0 /usr/sbin/init
Unable to find image 'lhrbest/lhrzabbix5:1.0' locally
1.0: Pulling from lhrbest/lhrzabbix5
Digest: sha256:5e22edb3347a27a731bd48742c982e34dcbcd47b63db2e9b64549ad69488475e
Status: Downloaded newer image for lhrbest/lhrzabbix5:1.0
7fa309da58043680aa0fa14b0692b35249ad5557d5d4cf0d0897a29afad13256
[root@docker36 ~]# docker exec -it lhrzabbix5 bash
[root@lhrzabbix5 /]# 

1.3、瀏覽器訪問

訪問Zabbix:http://192.168.66.36:280/zabbix

默認用戶名密碼:Admin/zabbix

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

二、監控Linux主機

監控Linux主機可以通過snmp(Simple Network Management Protocol)簡單網絡管理協議,也可以通過zabbix-agent監控。本文使用snmp來配置。

yum install -y net-snmp net-snmp-utils

systemctl start snmpd
systemctl status snmpd
systemctl enable snmpd

配置文件:vi /etc/snmp/snmpd.conf,添加如下內容:

view systemview included .1 

啓動snmpd:

[root@lhrzabbix5 ~]# systemctl status snmpd
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
   Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-01-13 16:37:24 CST; 39s ago
 Main PID: 81937 (snmpd)
   CGroup: /system.slice/snmpd.service
           └─81937 /usr/sbin/snmpd -LS0-6d -f

Jan 13 16:37:24 docker36 systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Jan 13 16:37:24 docker36 snmpd[81937]: NET-SNMP version 5.7.2
Jan 13 16:37:24 docker36 systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..
[root@docker36 ~]# netstat -anp | grep 161
udp        0      0 0.0.0.0:161             0.0.0.0:*                           81937/snmpd 

在zabbix server上測試:

nc -zvu localhost 161
snmpwalk -v 2c -c public localhost | wc -l

結果:

[root@lhrzabbix5 /]# nc -zvu  localhost 161
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 127.0.0.1:161.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.02 seconds.
[root@lhrzabbix5 /]# snmpwalk -v 2c -c public localhost | wc -l
7086

此時需要在server端配置:

配置——主機——創建主機——移除interface的客戶端——添加SNMP客戶端

——填寫主機名稱、可見名稱、羣組、IP地址,如圖所示:

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

點擊添加,然後等待1分鐘,等待圖標變成綠色即正常,如圖所示:

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

監控結果:

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

三、監控MySQL實例

被監控端Mysql主機安裝Zabbix-agent

rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo
yum -y install zabbix-agent

被監控端修改zabbix-agent配置文件

vim /etc/zabbix/zabbix_agentd.conf

Server=localhost
Hostname=mysql-local

systemctl restart zabbix-agent
systemctl enable zabbix-agent

ss -antulp | grep :10050

日誌: /var/log/zabbix/zabbix_agentd.log

被監控端修改MySQL配置文件:

mkdir -p /var/lib/zabbix
cat > /var/lib/zabbix/.my.cnf <<"EOF"
[mysql]
host=localhost
user=root
password=lhr
port=3306
socket=/var/lib/mysql/mysql.sock

[mysqladmin]
host=localhost
user=root
password=lhr
port=3306
socket=/var/lib/mysql/mysql.sock

EOF

編輯監控模板,若沒有該文件,可以手動新增:

[root@docker35 yum.repos.d]# more /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
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:

systemctl restart zabbix-agent

注意:這裏的主機名稱需要和配置文件中的Hostname=mysql-local保持一致,否則會報錯。

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

等待一會即可看到數據:

【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控

四、總結

相比Prometheus來說,感覺zabbix監控MySQL或其它數據庫不如Prometheus方便。但是,zabbix和Prometheus都是目前使用率最廣泛的2款監控工具。若想學習更多內容請聯繫麥老師。

About Me


● 本文作者:小麥苗,部分內容整理自網絡,若有侵權請聯繫小麥苗刪除
● 本文在個人微 信公衆號(DB寶)上有同步更新
● QQ羣號: 230161599 、618766405,微信羣私聊
● 個人QQ號(646634621),微 信號(db_bao),註明添加緣由
● 於 2021年2月 在西安完成
● 最新修改時間:2021年2月
● 版權所有,歡迎分享本文,轉載請保留出處






●小麥苗的微店: https://weidian.com/?userid=793741433
●小麥苗出版的數據庫類叢書: http://blog.itpub.net/26736162/viewspace-2142121/
●小麥苗OCP、OCM、高可用、DBA學習班(Oracle、MySQL、NoSQL): http://blog.itpub.net/26736162/viewspace-2148098/
●數據庫筆試面試題庫及解答: https://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w



使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公衆號(DB寶)及QQ羣(DBA寶典)、添加小麥苗微信, 學習最實用的數據庫技術。
小麥苗信息


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章