Zabbix 基礎與進階(2) —— zabbix工作模式的部署

Zabbix 基礎與進階(2) —— zabbix工作模式的部署

zabbix 是一款著名的分佈式的監控系統。支持通過代理服務器zabbix proxy收集zabbixagent的數據,然後把收集保存在本地數據庫併發送給zabbix server進行統一存儲和展示。

Zabbix 服務工作於 Agent/Server 架構模型


Zabbix 各工作模式介紹

工作模式中的主動或被動模式,均是站在agent的角度命名的。

被動模式

工作模式簡單易用,但 server 端壓力較大,需要定期向管理範圍內的所有 agent 端主機發送請求信息,如果監控的主機過多時,可能無法及時獲取到所有被監控主機的最新數據,被動模式僅適用於監控項目較少的小規模集羣。

zabbix 的 agent 端被動接受到 server 端發出的數據採集指令後,方纔採集本地監控的主機、進程或設備的信息發送給 server 端。

主動模式

  1. 不使用代理

可以減輕 server 端同時發出多個請求的壓力,但 server 端需要被動接受管理範圍內的所有 agent 端主機的所有采集的數據信息並將數據寫入數據庫,導致 Server 端的寫壓力較大,同樣不適合大規模的主機集羣監控。

agent 端無需接收任何指令,主動收集本地監控採集到的數據併發送給 server 端,此模式可減輕 server 端的一部分壓力。

  1. 使用代理

使用代理來分散 server 端的同時接收大量數據的壓力,適合用於大規模集羣的監控工作。

主機角色分配

本實驗各角色、IP、主機名分配以及其他備註如表

roles IP addr hostname comments
zabbix_server 172.16.50.1 node1 提供web監控管理頁面
zabbix_proxy 172.16.50.2 node2 zabbix_proxy
zabbix_tomcat 172.16.50.14 node14 zabbix_agent(被動式)
zabbix_database 172.16.50.15 node15 MySQL,zabbix_agent(主動式)

zabbix各類工作模式的配置

在server端、agent端、database端以及Web GUI均部署完成後,可以選擇一種工作模式對某個agent端的監控項進行監控

被動模式

  • 修改server端配置文件
vim /usr/local/zabbix/etc/zabbix_server.conf
#修改以下幾項
LogFile=/var/log/zabbix/zabbix_server.log

DebugLevel=3        #可以修改爲4(debug模式,顯示更詳細信息)
DBHost=172.16.50.15
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBPort=3306

Timeout=30          #收集數據的超時時間,默認爲4,該值過小會導致無法收集數據,建議改大
StartPollers=25     #修改預啓動的線程數,默認爲5,建議改大
  • 重啓zabbix服務
/etc/init.d/zabbix_server restart
ss -tnl
#
LISTEN      0      128        *:10051                 *:* 
  • 將zabbix設置爲開機啓動
chkconfig zabbix_server on

主動模式

部署zabbix_proxy端

zabbix proxy端也需要在zabbix database 主機上創建用戶和專用的庫,用於暫存一些數據,本實驗演示過程中將proxy的數據庫與server端的數據庫公用同一個數據庫,在實際生產環境中,二者一般不會使用同一個數據庫。

創建zabbix用戶

useradd -s /sbin/nologin zabbix
  • 安裝Zabbix proxy

安裝依賴包

如果需要通過代理來監控tomcat類服務,也需要安裝openjdk程序

yum install gcc  libxml2-devel   net-snmp net-snmp-devel   curl  curl-devel php  php-bcmath  php-mbstring mariadb mariadb-devel java-1.8.0-openjdk-devel -y

在 zabbix database 主機上爲proxy創建用戶和庫並授權

CREATE DATABASE zabbix_proxy  CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL ON  zabbix_proxy.* TO proxy@'172.16.50.%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

在zabbix proxy主機測試是否能夠使用mysql客戶端登錄

mysql -uproxy -p123456 -h172.16.50.15

編譯安裝

./configure  --prefix=/usr/local/zabbix  --enable-proxy  --enable-agent  --with-mysql   --with-net-snmp  --with-libcurl  --with-libxml2  --enable-java
make -j 4 && make install

在本機導入數據庫

mysql -uproxy -p123456 -h172.16.50.15  zabbix_proxy < /usr/local/src/zabbix-3.0.10/database/mysql/schema.sql
#驗證導入結果
mysql -uproxy -p123456 -h172.16.50.15  zabbix_proxy -e "show tables;"
  • 配置zabbix proxy:
vim /usr/local/zabbix/etc/zabbix_proxy.conf
#修改如下內容
ProxyMode=0 #0爲主動,1爲被動
Server=172.16.50.1 #zabbix server服務器的地址或主機名
ServerPort=10051
Hostname=my_proxy  #代理服務器名稱,需要與zabbix server添加代理時候的proxy name是一致的!
ListenPort=10051
LogFile=/tmp/zabbix_proxy.log
DebugLevel=4
DBHost=172.16.50.15 #數據庫服務器地址
DBName=zabbix_proxy 
DBUser=proxy
DBPassword=123456
DBPort=3306
ProxyLocalBuffer=3  
ProxyOfflineBuffer=24
HeartbeatFrequency=60  #心跳間隔檢測時間,,默認60秒,範圍0-3600秒,被動模式不使用
ConfigFrequency=5  #間隔多久從zabbix   server 獲取監控信息
DataSenderFrequency=5 #數據發送時間間隔,默認爲1秒,範圍爲1-3600秒,被動模式不使用
StartPollers=25  #啓動的線程數,與客戶端的數據保持一致
JavaGateway=172.16.50.14 #java gateway服務器地址
JavaGatewayPort=10052
StartJavaPollers=25 #與監控的java 應用一致
Timeout=30
LogSlowQueries=3000

啓動服務

/usr/local/zabbix/sbin/zabbix_proxy -c /usr/local/zabbix/etc/zabbix_proxy.conf

添加代理

在Web GUI 頁面進行操作

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

  • 配置zabbix_agent端(此處即爲zabbix_database端)

Web 客戶端安裝zabbix agent

yum install gcc -y 
useradd   zabbix -s /sbin/nologin 
cd /usr/local/src/
tar xvf zabbix-3.0.10.tar.gz
cd zabbix-3.0.10
./configure  --prefix=/usr/local/zabbix  --enable-agent
make install
cp misc/init.d/fedora/core/zabbix_agentd  /etc/init.d/
vim /etc/init.d/zabbix_agentd
#修改以下內容
BASEDIR=/usr/local/zabbix

修改配置文件

grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=172.16.50.2      #此處server應該指向zabbix_proxy端
ListenPort=10050
StartAgents=3
ServerActive=172.16.50.2
Hostname=172.16.50.15
Timeout=30
UnsafeUserParameters=1

啓動服務

/etc/init.d/zabbix_agentd start
ss -tnl
#
LISTEN     0      128         *:10050        *:*

在web GUI管理界面操作。

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

發佈了56 篇原創文章 · 獲贊 33 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章