簡介
zabbix proxy可以代替zabbix server檢索客戶端的數據,然后把數據匯報給zabbix server,並且在一定程度上分擔了zabbix server的壓力.zabbix proxy可以非常簡便的實現了集中式、分布式監控.
zabbix proxy使用場景:
-
監控遠程區域設備
-
-
當zabbix監控上千設備時,使用它來減輕server的壓力
-
簡化zabbix的維護
zabbix proxy僅僅需要一條tcp連接到zabbix server,所以防火牆上僅僅需要加上一條規則即可.zabbix proxy數據庫必須和server分開,否則數據會被破壞,畢竟這兩個數據庫的表大部分都相同。總之記住,數據庫分開即可。
zabbix proxy是一個數據收集器,它不計算觸發器、不處理事件、不發送報警,如下是proxy的功能.
下載依賴
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執行.. 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
如果你安裝好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監控 |
安裝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創建主機的時候要選代理名稱。