關於proxy的使用場景
zabbix的proxy主動模式proxy 可以用在 Proxy 沒有公網 IP ,但可以訪問公網的情況下
Zabbix Server <-Zabbix Proxy -> Zabbix Agent
Proxy 去請求 Zabbix Server,由於 Zabbix Agent 用的是被動模式,所以也是由 Zabbix Proxy 去請求 Zabbix Agent
- 監控遠程區域設備
- 監控本地網絡不穩定區域
- 當 zabbix 監控上千設備時,使用它來減輕 server 的壓力
- 簡化分布式監控的維護
zabbix proxy 需要注意的幾個點
-
zabbix proxy 數據庫必須和 server 分開,否則數據會被破壞。
-
從Zabbix server數據庫直接更新最新配置的proxy可能會比Zabbix server新,而Zabbix server的配置由於 CacheUpdateFrequency 的原因而無法快速更新。因此,proxy收集發送Zabbix server數據可能會被忽略。
-
使用 agent active 模式,一定要記住在 agent 的配置文件參數 ServerActive 加上 proxy 的 IP 地址。
我的使用場景
zabbix server端部署在騰訊雲服務器上,現在想監控公司內網的幾台服務器,但是內網的服務器和騰訊雲的服務器不在一個局域網內,怎么進行監控呢?
這就用到了zabbix proxy
我的環境
系統 服務器ip 角色
centos 7.3.1611 | 118.25.56.19(公網ip) | zabbix-server |
centos 7.3.1611 | 192.168.2.223(內網) | zabbix-proxy |
centos 7.3.1611 | 192.168.2.224(內網) | zabbix-agent |
我的zabbix-server,zabbix-agent,zabbix-proxy 版本都是3.4的
118.25.56.19
安裝zabbix-server 省略
部署zabbix proxy
在192.168.2.223
上安裝zabbix-proxy
[root@localhost ~]#rpm -ivh \
https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@localhost ~]#yum install zabbix-proxy-mysql
[root@localhost ~]#systemctl start zabbix-proxy
proxy需要一個獨立的數據庫,請勿和server同庫
安裝mysql 略
[root@localhost ~]# mysql -uroot -p
mysql> create database zabbix_proxy;
mysql> grant all privileges on zabbix_proxy.* to 'zabbix_proxy'@'localhost' identified by 'zabbix';
導入zabbix-proxy SQL
[root@localhost ~]#cd /usr/share/doc/zabbix-proxy-mysql-3.4.15/
[root@localhost ~]#zcat schema.sql.gz | mysql -uzabbix_proxy -p zabbix_proxy
proxy配置
[root@localhost ~]#grep -vE '^#|^$' /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 //默認主動模式0,被動模式1
Server=118.25.56.19 //zabbix_server的外網IP
ListenPort=10051
Hostname=zabbix_proxy的主機名
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix
DBSocket=/data/mysql/mysql.sock
LogFile=/var/log/zabbix/zabbix_proxy.log
PidFile=/var/run/zabbix/zabbix_proxy.pid
LogFileSize=0 //不切割日志,默認1M
Timeout=10 //等待agent回應超時時間,默認3s
ConfigFrequency=60 //多久從zabbix-server接受配置
DataSenderFrequency=60 //多久向zabbix-server發送收集數據
ExternalScripts=/usr/lib/zabbix/externalscripts //也需要放一份到代理
agent安裝配置
在192.168.2.224
上安裝zabbix-agent
[root@localhost ~]#rpm -ivh \
https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@localhost ~]#yum install zabbix-agent
[root@localhost ~]#grep -vE '^#|^$' /etc/zabbix/zabbix_agent.conf
LogFile=/var/log/zabbix/zabbix_agentd.log
PidFile=/var/run/zabbix/zabbix_agentd.pid
EnableRemoteCommands=1
Server=proxy內網IP(外網IP)
ServerActive=proxy的內網IP:10051
Hostname=agent的主機名
RefreshActiveChecks=120
BufferSize=2048
Timeout=15
UnsafeUserParameters=1
Include=/etc/zabbix/zabbix_agentd.d
啟動
新建代理
在我們的zabbix界面上點擊管理
-->agent代理程序
-->創建代理
agent代理程序名稱 為 zabbix_proxy的主機名 (建議一致 )
添加主機
只需要填寫以下
- 主機名稱 為 agent的hostname
- 在...群組里
- IP地址 為 agent的內網IP(不在同個內網寫外網IP)
- 由agent代理程序監測 下拉 選擇我們剛創建的代理名稱 (敲黑板)
- 模板 添加你需要的模板