簡介
zabbix proxy能夠代替zabbix server檢索客戶端的數據,而後把數據彙報給zabbix server,而且在必定程度上分擔了zabbix server的壓力.zabbix proxy能夠很是簡便的實現了集中式、分佈式監控.python
zabbix proxy使用場景:mysql
-
監控遠程區域設備nginx
-
監控本地網絡不穩定區域web
-
當zabbix監控上千設備時,使用它來減輕server的壓力sql
-
簡化zabbix的維護數據庫
注意:緩存
zabbix proxy僅僅須要一條tcp鏈接到zabbix server,因此防火牆上僅僅須要加上一條規則便可.zabbix proxy數據庫必須和server分開,不然數據會被破壞,畢竟這兩個數據庫的表大部分都相同。總之記住,數據庫分開便可。網絡
proxy收集到數據以後,首先將數據緩存在本地,而後在必定得時間以後傳遞給zabbix server.這個時間由proxy配置文件中參數ProxyLocalBuffer and ProxyOfflineBuffer決定.app
zabbix proxy是一個數據收集器,它不計算觸發器、不處理事件、不發送報警,以下是proxy的功能.socket
安裝
下載依賴
yum install -y fping OpenIPMI net-snmp-agent-libs unixODBC
下載安裝指定的rpm包
wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm rpm -ivh zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
mysql 庫配置
不能跟server公用一個數據庫
mysql> create database zabbix_proxy character set utf8; # 建立數據庫 mysql> grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix'; # 建立受權用戶 mysql> flush privileges; # 刷新受權表,雖然不須要 mysql> use proxydb;
Zabbix-proxy數據庫只須要導入一條sql
# zcat schema.sql.gz $ gzip -d schema.sql.gz $ /data/app/mysql-3306/bin/mysql -uroot -pxxxx zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-4.0.5/schema.sql
在server端啓動捕捉進程
#在Server執行.. sed -i 's/.*StartTrappers=.*$/StartTrappers=10/' /etc/zabbix/zabbix_server.conf service zabbix-server restart
Zabbix-proxy配置文件/etc/zabbix/zabbix_proxy.conf
修改配置文件/etc/zabbix/zabbix_proxy.conf Server=192.168.1.154 #填寫Server的IP,Proxy會將收集到的數據發往這個IP。 ServerPort=10051 #proxy默認端口號,要實現轉發的話使用這個選項 Hostname=web #在web端網頁配置時須要用到,保持一致 DBHost=localhost #數據庫,使用本地,也可使用ip DBName=zabbix_proxy #數據庫名稱,建立zabbix-proxy的mysql的數據庫名稱 DBUser=zabbix DBPassword=zabbix DBPort=3306 DBSocket=/data/appData/mysql-3306/mysql.sock #mysqlsock文件,默認是使用socket通訊的 ProxyLocalBuffer=0 #當數據發送到Server,還要在本地保留多少小時.不保留 ProxyOfflineBuffer=3 #當數據沒有發送到Server,在本地保留多少小時,3小時。 HeartbeatFrequency=60 #心跳檢測代理在Server的可用性 ConfigFrequency=3600 #代理多久從Server獲取一次配置變化,默認3600秒. DataSenderFrequency=1 #這個是proxy端向server端發送數據的時間,單位是秒 ExternalScripts=/usr/lib/zabbix/externalscripts LogFileSize=0 PidFile=/var/run/zabbix/zabbix_proxy.pid SocketDir=/var/run/zabbix DataSenderFrequency=60 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log CacheSize=64M Timeout=10 LogSlowQueries=3000
web端建立proxy
若是你安裝好proxy以後,咱們即可以在zabbix管理站點上配置proxy了.
ministration(管理) → DM(分佈式監控)-->Create proxy(建立代理)
代理名稱:bate_proxy # 與zabbix_proxy配置文件中Hostname=bate_proxy保持一致
代理模式:主動式
參數
參數 | 描述 |
---|---|
Proxy name | proxy名稱,必須和proxy配置文件中的hostname一致 |
Proxy mode | 選擇proxy模式 |
Active | proxy主動鏈接到zabbix server而且請求配置文件數據 |
Passive | Zabbix server鏈接到proxy |
Hosts | 哪些主機須要被proxy監控 |
zabbix-agent
安裝agent
wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.5-1.el7.x86_64.rpm
配置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.17.0.124 ServerActive=172.17.0.124 # 這裏的ServerIP是用於Agent(主動)模式的. ListenIP=0.0.0.0 Hostname=nginx1 HostnameItem=system.hostname Include=/etc/zabbix/zabbix_agentd.d/*.conf
重啓zabbix-agent
zabbix-web建立主機的時候要選代理名稱。