zabbix 是一個分佈式的監控系統,支持經過代理服務器zabbix proxy收集zabbix agent的數據,而後把收集保存在本地數據庫併發送給zabbix server進行統一存儲和展現。
架構以下:
node
說明:zabbix的分佈式系統主機解決zabbix-server在監控設備過多分散時的壓力;能夠在各IDC部署zabbix-proxy服務代理監控本IDC機房中的全部設備再經過主動模式 把收集的監控數據主動提交到zabbix-server;上圖即zabbix-server部署在IDC C,其餘IDC部署zabbix-proxy 各IDC設備的agent指向所在zabbix-proxy;mysql
本次測試說明:
本次測試基於前面本文是繼LNMP環境部署zabbix實戰等相關zabbix系列的補充;所以zabbix server不在部署;主要測試
zabbix proxy 及agent經過zabbix proxy分佈式監控;
zabbix-server:CentOS7.4_x64 LNMP環境 zabbix-server 172.16.3.152(zabbix.san.com) (以前已經部署過)
zabbix-proxy:CentOS7.4_x64 mariadb-server zabbix-agent 172.16.3.167(zabbix-proxy)
zabbix-agent:CnetOS7.4_x64 zabbix-agent 172.16.3.175(node3.san.com)
爲了減小沒必要要的故障排錯,關閉selinux與iptables firewalld服務(注意:生產線上務必作好相應配置!)linux
一、安裝mariadb
因爲zabbix-proxy是代理收集數據,所以須要獨立的數據系統;程序員
[root@zabbix-proxy ~]# yum -y install mariadb-server mariadb-devel 啓動數據庫 [root@zabbix-proxy ~]# systemctl start mariadb
配置zabbix proxy服務數據庫
安裝好mariadb 默認root爲空;登陸數據web
mysql -uroot -p 設置root密碼 set password for root@localhost = password("redhat"); 建立數據庫爲proxy create database proxy character set utf8 collate utf8_bin; 受權 grant all privileges on proxy.* to 'proxy'@'172.16.3.%' identified by '123456';
二、配置zabbix安裝源並安裝sql
[root@zabbix-proxy ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm [root@zabbix-proxy ~]# yum install zabbix-proxy -y
初始化數據庫數據庫
[root@zabbix-proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.2.11/ [root@zabbix-proxy ~]# gzip -d schema.sql.gz [root@zabbix-proxy ~]# mysql -uzabbix -p123456 proxy < schema.sql
三、配置zabbix_proxy服務服務器
[root@zabbix-proxy ~]# egrep -v '(^$|^#)' /etc/zabbix/zabbix_proxy.conf ProxyMode=0 #主動上報數據到zabbix server Server=172.16.3.152 #zabbix server地址 ServerPort=10051 #zabbix server端口 Hostname=SH_Proxy_172.16.3.167 #zabbix proxy主機名,此處和在zabbix server web GUI上添加時的名稱必須保持一至 LogFile=/var/log/zabbix/zabbix_proxy.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_proxy.pid SocketDir=/var/run/zabbix DBHost=localhost DBName=proxy DBUser=proxy DBPassword=123456 DBPort=3306 ProxyLocalBuffer=3 ProxyOfflineBuffer=24 HeartbeatFrequency=60 ConfigFrequency=5 DataSenderFrequency=5 StartPollers=10 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000
四、zabbix proxy上的zabbix-agentd服務架構
[root@zabbix-proxy ~]# egrep -v "(^$|^#)" /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=172.16.3.167 ServerActive=172.16.3.167 Hostname=SH_Proxy_172.16.3.167 #此處名稱須要和zabbix-proxy.conf中保持一致 Include=/etc/zabbix/zabbix_agentd.d/*.conf
啓動zabbix-proxy 與zabbix-agent服務併發
[root@zabbix-proxy ~]# systemctl start zabbix-proxy [root@zabbix-proxy ~]# systemctl start zabbix-agent
五、zabbix server web GUI上添加zabbix proxy agent代理
管理-->agent代理程序員 -->agent代理程序名稱 "SH_Proxy_172.16.3.167" -->系統代理程序模式 "主動" -->添加 如圖:
一、zabbix-agent安裝配置
一樣添加zabbix安裝源並yum安裝 rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm [root@node3 ~]# yum install zabbix-agnet -y
查看zabbix agent.conf配置
[root@node3 ~]# cat /etc/zabbix/zabbix_agent.conf [root@node3 ~]# egrep -v '(^$|^#)' /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=172.16.3.167 #指向zabbix-proxy ServerActive=172.16.3.167 #指向zabbix-proxy Hostname=SH_172.16.3.175 #此agent識別hostname Timeout=15 Include=/etc/zabbix/zabbix_agentd.d/*.conf
二、添加主動監控模板
zabbix-server web GUI中克隆複製建立基於Template OS Linux的Template OS Linux-Active 主動監控模板;緣由就是zabbix-proxy所在的IDC設備經過agent主動發送數據到zabbix-proxy中;步聚以下:
配置-->模板-->Template OS Linux -->全克隆-->模板名稱 "Template OS Linux-Active" -->添加
打開Template OS Linux-Active模板-->監控項-->全選後 指更新-->類型 修改成 "zabbix客戶端(主動模式)" -->更新
如圖:
最終會看到該模板下的監控項 類型爲相似下圖:
zabbix-server web GUI 添加基於proxy的agent
配置-->主機-->建立主機-->主機名稱"SH_172.16.3.175" -->可見名稱"web_server_01" -->羣組"web services" -->agent代理程序的接口 "172.16.3.175" -->由agent代理程序監測 "SH_Proxy_172.16.3.167" --> 同時給監控主機添加一個主動監控模板(Template OS Linux-Active); --> 添加 如圖:
三、查看基於zabbix-proxy監控的數據
能夠看到經過zabbix-proxy監控了node3.san.com這臺主機並獲取了監控信息!
最終zabbix server上除了zabbix-server 自動發現並監控了node2.san.com外還有經過zabbix-proxy監控的node3.san.com(172.16.3.175)如圖:
基於zabbix server -> zabbix proxy(代理)<-zabbix agent 分佈式監控搭建完成;須要注意的是zabbix-proxy服務須要單獨數據庫系統用於收集所在區域的其餘agent監控數據;各agent上的server指定到zabbix-proxy域名或ip; agent主動提交數據到zabbix server 或提交到zabbix-proxy會減輕zabbix server的壓力,這就是所所謂的主動監控;主動監控須要基於主動監控的模板;zabbix默認是被監控,即定時去從agent上獲取監控數據!zabbix proxy上除了安裝zabbix-proxy服務還安裝agent服務!