zabbix的主動模式監控和zabbix-proxy分散式監控

letter_A發表於2018-08-16

一 zabbix的主動模式監控

當zabbix_server端主機數量過多的時候,雖然可以通過增加代理的方式來進行資料收集,但是需要增加proxy機,所以還是得通過zabbix_agent主動往Server端去發生資料來解決,否則,Zabbix會出現嚴重的效能問題,主要表現如下: 
1、當被監控端主機過多時,web操作很卡,容易出現502,以及資料庫等方面的問題。
2、容易造成圖層斷裂。
3、開啟的程式(Pollar)太多,即使減少item數量,以後加入一定量的機器也會有問題

所以下面主要往兩個優化方向考慮: 
1、新增Proxy節點做分散式監控 
2、調整Agentd為主動模式 

以下操作為調整Agentd為主動模式的優化方式:
1.新建主機server3(ip為172.25.17.3),並在server3端安裝zabbix-agent:

[root@server3 mnt]# rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm 
warning: zabbix-agent-3.4.6-1.el6.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                ########################################### [100%]
   1:zabbix-agent           ########################################### [100%]

2在Zabbix管理介面修改模板作為主動模式的模板:
找到模板Template OS Linux:
這裡寫圖片描述
點選模板進入模板內部介面,點選最下方‘全克隆’用來克隆一個主動模式的模板:
這裡寫圖片描述
全克隆之後,在新的模板頁輸入新模板的名字Template OS Linux-active,之後點選新增:

這裡寫圖片描述
在模板夜裡找到剛才新建的模板,點選監控項:
這裡寫圖片描述
進入模板頁選中全部監控項:
這裡寫圖片描述
選中之後最下方點選批量更新:
這裡寫圖片描述
接下來在型別裡選擇主動式:
這裡寫圖片描述
到此模板就製作完成了。

3.新建被監控agent:
編輯agent的配置檔案:

[root@server3 mnt]# vim /etc/zabbix/zabbix_agentd.conf 

設定Server為zabbix-server服務端的ip:

 95 # Server=
 96 
 97 Server=172.25.17.11

設定客戶端agent模式:

120 # Range: 0-100
121 # Default:
122 StartAgents=3     #設定客戶端agent模式,0表示禁用被動模式
123 

設定ServerActive為zabbix-server端ip:

137 
138 ServerActive=172.25.17.11
139 ### Option: Hostname

設定主機名:
這裡的主機名需要和本機主機名一致,並且在本機和server端的/etc/hosts檔案中有相應解析:

147 
148 Hostname=server3
149 
150 ### Option: HostnameItem

配置檔案設定完成之後開啟zabbix-agent服務:

[root@server3 mnt]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]

檢視埠10050開啟:

[root@server3 mnt]# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      922/sshd            
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      998/master          
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      2092/zabbix_agentd  
tcp        0      0 172.25.17.3:22              172.25.17.250:33584         ESTABLISHED 1388/sshd           
tcp        0      0 :::22                       :::*                        LISTEN      922/sshd            
tcp        0      0 ::1:25                      :::*                        LISTEN      998/master          
tcp        0      0 :::10050                    :::*                        LISTEN      2092/zabbix_agentd  

  1. 配置server3主機
    在zabbix管理頁面,點選建立主機:
    寫入主機名和群組,設定ip地址為172.25.17.3,埠為10050:
    這裡寫圖片描述
    點選模板新增模板:
    這裡寫圖片描述
    點選選擇,選中剛才新建的模板:
    這裡寫圖片描述
    點選新增,看到連結的模板裡有新建的模板才算成功:
    這裡寫圖片描述
    之後點選新增主機,就可以在主機介面看到新加的主機server3:
    如果在配置檔案中設定StartAgents=0即表示被動模式,這裡的ZEX將會時灰色的。
    這裡寫圖片描述
    同時也可以在模板介面看到新增的模板對應主機server3:
    這裡寫圖片描述
    這樣就設定完成了。

二 zabbix-proxy的分散式監控(代理)

1.在server2(ip為172.25.17.2)端編輯zabbix-agent的配置檔案:

[root@server2 bin]# vim /etc/zabbix/zabbix_agentd.conf 

設定server3為server2的代理:

 95 # Server=
 96 
 97 Server=172.25.17.3
 136 # ServerActive=
 137 
 138 ServerActive=172.25.17.3

配置檔案儲存退出後重啟zabbix-agent服務:

[root@server2 bin]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]

2.在server3端停掉zabbix-agent服務並安裝fping,用於linux redhat6版本的zabbix-proxy-mysql和mysql-server:

[root@server3 mnt]# /etc/init.d/zabbix-agent stop
Shutting down Zabbix agent:                                [  OK  ]
[root@server3 mnt]# yum install fping-2.4b2-16.el6.x86_64.rpm zabbix-proxy-mysql-3.4.6-1.el6.x86_64.rpm mysql-server -y

開啟資料庫服務:

[root@server3 mnt]# /etc/init.d/mysqld start

3.配置資料庫:

[root@server3 mnt]# mysql   #進入資料庫
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;    #建立代理資料庫
Query OK, 1 row affected (0.00 sec)  

mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'westos';     #使用者授權
Query OK, 0 rows affected (0.00 sec)


進入zabbix-proxy-mysql安裝目錄進行配置:

[root@server3 mnt]# cd /usr/share/doc/zabbix-proxy-mysql-3.4.6/
[root@server3 zabbix-proxy-mysql-3.4.6]# zcat schema.sql.gz | mysql -u zabbix -p zabbix_proxy
Enter password:    #輸入密碼後會有一個等待時間但並不是卡住,只要等待就好。不要ctrl+c中斷
[root@server3 zabbix-proxy-mysql-3.4.6]# /etc/init.d/zabbix-proxy start  #開啟服務
Starting Zabbix proxy:                                     [  OK  ]

配置zabbix-proxy:
進入/etc/zabbix目錄編輯zabbix配置檔案:

[root@server3 zabbix-proxy-mysql-3.4.6]# cd /etc/zabbix/
[root@server3 zabbix]# vim zabbix_proxy.conf 

設定:

 22 # Server=
 23 
 24 Server=172.25.17.11 #設定server為zabbix-server端

 41 # Hostname=
 42 
 43 Hostname=server3  #設定主機名

 190 DBPassword=westos   #設定資料庫密碼
 191 
 192 ### Option: DBSocket
 193 #       Path to MySQL socket.
 194 #
 195 # Mandatory: no
 196 # Default:
 197 DBSocket=/var/lib/mysql/mysql.sock  #設定資料庫socket


5.代理設定:
在“管理”項中選擇"agent代理程式“:
這裡寫圖片描述
點選右上角建立代理:
設定server3為server2(172.25.17.2)的代理:
這裡寫圖片描述
新增成功:
這裡寫圖片描述
結果:
主機頁面server3成為172.25.17.2的代理:
這裡寫圖片描述

在server3端檢視日誌:

[root@server3 mysql]# vim /var/log/zabbix/zabbix_proxy.log 

可以看到來自172.25.17.11(zabbix-server端)的資料:
這裡寫圖片描述

相關文章