1. 程式人生 > 其它 >第十二章 監控系統-zabbix分散式監控

第十二章 監控系統-zabbix分散式監控

一、分散式監控

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

8.頁面配置zabbix proxy