第十二章 監控系統-zabbix分散式監控
阿新 • • 發佈:2021-12-21
一、分散式監控
1.概述
Zabbix通過Zabbix proxies為IT基礎設施提供有效和可用的分散式監控
代理(proxies)可用於代替Zabbix server本地收集資料,然後將資料報告給伺服器。
2.proxy特徵
當選擇使用/不使用proxy時,必須考慮幾個注意事項。
注意事項 | Proxy |
---|---|
輕量級(Lightweight) | Yes |
圖形介面(GUI) | No |
獨立工作(Works independently) | Yes |
易於維護(Easy maintenance) | Yes |
自動生成資料庫(Automatic DB creation)1 | Yes |
本地管理(Local administration) |
No |
準備嵌入式硬體 (Ready for embedded hardware) | Yes |
單向TCP連線(One way TCP connections) | Yes |
集中配置(Centralised configuration) | Yes |
生成通知(Generates notifications) | No |
[1] 自動資料庫建立功能僅適用於SQLite。其他資料庫需要[手動設定](https://www.zabbix.com/documentation/3.4/manual/installation/install#requirements)
二、zabbix porxy代理概述
1.概述
zabbix proxy 可以代替 zabbix server 收集效能和可用性資料,然後把資料彙報給 zabbix server,並且在一定程度上分擔了zabbix server 的壓力.
此外,當所有agents和proxies報告給一個Zabbix server並且所有資料都集中收集時,使用proxy是實現集中式和分散式監控的最簡單方法。
2. 使用場景:
zabbix proxy使用場景:
1.監控遠端區域裝置
2.監控本地網路不穩定區域
3.當 zabbix 監控上千裝置時,使用它來減輕 server 的壓力
4.簡化分散式監控的維護
3.配置方式
zabbix proxy 僅僅需要一條 tcp 連線到 zabbix server,所以防火牆上僅僅需要加上一條規則即可。 proxy 收集到資料之後,首先將資料快取在本地,然後在一定得時間之後傳遞給 zabbix server,這樣就不會因為伺服器的任何臨時通訊問題而丟失資料。這個時間由 proxy配置檔案中引數 ProxyLocalBuffer 和 ProxyOfflineBuffer 決定。 注意: 1.zabbix proxy 資料庫必須和 server 分開,否則資料會被破壞。 2.從Zabbix server資料庫直接更新最新配置的proxy可能會比Zabbix server新,而Zabbix server的配置由於 CacheUpdateFrequency 的原因而無法快速更新。因此,proxy收集傳送Zabbix server資料可能會被忽略。
三、zabbix porxy代理功能
zabbix proxy 是一個數據收集器,它不計算觸發器、不處理事件、不傳送報警。有關proxy功能的概述,如下表:
功能 | proxy支援(yes/no) |
---|---|
專案(Items) | |
Zabbix agent checks | Yes |
Zabbix agent checks (active) | Yes |
Simple checks | Yes |
Trapper items | Yes |
SNMP checks | Yes |
SNMP traps | Yes |
IPMI checks | Yes |
JMX checks | Yes |
日誌檔案監控(Log file monitoring) | Yes |
內部檢查(Internal checks) | Yes |
SSH checks | Yes |
Telnet checks | Yes |
外部檢查(External checks) | Yes |
內建web監控(Built-in web monitoring) | Yes |
網路發現(Network discovery) | Yes |
自動發現(Low-level discovery) | Yes |
觸發器計算(Calculating triggers) | No |
處理事件(Processing events) | No |
傳送報警(Sending alerts) | No |
遠端命令(Remote commands) | No |
ps: 使用 agent active 模式,一定要記住在 agent 的配置檔案引數 ServerActive 加上 proxy 的 IP 地址。
四、zabbix proxy代理企業場景
1.zabbix proxy分散式場景實踐環境規劃
伺服器功能 | 伺服器外網 | 伺服器內網 |
---|---|---|
zabbix-server | 10.0.0.71 | 172.16.1.71 |
zabbix-proxy | 10.0.0.8 | 172.16.1.8 |
zabbix-agent | 10.0.0.7 | 172.16.1.7 |
2.安裝部署zabbix proxy
[root@web01 ~]# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-proxy-mysql-3.4.15-1.el7.x86_64.rpm
3.配置zabbix proxy資料庫
[root@web01 ~]# yum install -y mariadb-server
[root@web01 ~]# systemctl start mariadb
[root@web01 ~]# systemctl enable mariadb
[root@web01 ~]# mysql
#建立資料庫
MariaDB [(none)]> create database zabbix_proxy charset utf8;
#建立使用者
MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix_proxy@'localhost' identified by '123';
4.匯入資料
#檢視資料檔案
[root@web01 ~]# rpm -ql zabbix-proxy-mysql
/usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz
#匯入資料
[root@web01 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz |mysql zabbix_proxy
#檢視匯入後的資料
[root@web01 ~]# mysql
MariaDB [(none)]> show databases;
MariaDB [zabbix_proxy]> show tables;
5.修改zabbix proxy配置檔案
[root@web01 ~]# vim /etc/zabbix/zabbix_proxy.conf
Server=10.0.0.71
Hostname=hlj_proxy
DBName=zabbix_proxy
DBHost=localhost
DBUser=zabbix_proxy
DBPassword=123
6.啟動zabbix proxy並加入開機自啟
[root@web01 ~]# systemctl start zabbix-proxy
[root@web01 ~]# systemctl enable zabbix-proxy
[root@web01 ~]# netstat -lntup
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 82597/zabbix_proxy
7.配置zabbix agent
[root@web02 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.7
ServerActive=172.16.1.7
Hostname=web02