企業級分佈式監控zabbix實戰——zabbix-proxy分佈式監控配置

企業級分佈式監控zabbix實戰——zabbix-proxy分佈式監控配置

1. Zabbix架構中的組件

在這裏插入圖片描述

2. 監控流程

一個監控系統運行的大概的流程是這樣的:

agentd需要安裝到被監控的主機上,它負責定期收集各項數據,併發送到zabbix server端,zabbix server將數據存儲到數據庫中,
zabbix web根據數據在前端進行展現和繪圖。這裏agentd收集數據分爲主動和被動兩種模式:
主動:agent請求server獲取主動的監控項列表,並主動將監控項內需要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。

【主動監測】通信過程如下:
zabbix首先向ServerActive配置的IP請求獲取active items,獲取並提交active tiems數據值server或者proxy。
很多人會提出疑問:zabbix多久獲取一次active items?它會根據配置文件中的RefreshActiveChecks的頻率進行,
如果獲取失敗,那麼將會在60秒之後重試。分兩個部分:
*(1)獲取ACTIVE ITEMS列表

  1. Agent打開TCP連接(主動檢測變成Agent打開)
  2. Agent請求items檢測列表
  3. Server返回items列表
  4. Agent 處理響應
  5. 關閉TCP連接
  6. Agent開始收集數據

【被動監測】通信過程如下:

  • (2)主動檢測提交數據過程如下
  1. Agent建立TCP連接
  2. Agent提交items列表收集的數據
  3. Server處理數據,並返回響應狀態
  4. 關閉TCP連接

【被動監測】通信過程如下:

  1. Server打開一個TCP連接

  2. Server發送請求agent.ping\n

  3. Agent接收到請求並且響應

  4. Server處理接收到的數據

  5. 關閉TCP連接

    這裏,被動模式每次都需要打開一個tcp連接,這樣當監控項越來越多時,就會出現server端性能問題了。

那實際監控中是用主動的還是被動的呢?這裏主要涉及兩個地方:
1、新建監控項目時,選擇的是zabbix代理還是zabbix端點代理程式(主動式),前者是被動模式,後者是主動模式。
2、agentd配置文件中StartAgents參數的設置,如果爲0,表示禁止被動模式,否則開啓。 一般建議不要設置爲0,因爲監控項目很多時,可以部分使用主動,部分使用被動模式。

3. Zabbix邏輯架構

定義一個template模板,裏面包括多個items,trigger,graphs套用給host或者hostgroups。
server監控項目items通過zabbix poller進程(可以有多個進程實現併發處理)包括snmp,agent協議收集被監控主機信息。
如果閾值超過triggers觸發器規定,就是形成一個events事件,然後actions處理動作
(包括運行預先定製的腳本,不成功發送email或SMS)。
在服務器升級的時候提前設定maintenance維護模式不對服務器產生告警通知。

4. 常用的監控架構平臺

1、server-agentd模式:
這個是最簡單的架構了,常用於監控主機比較少的情況下。
2、server-proxy-agentd模式:
這個常用於比較多的機器,使用proxy進行分佈式監控,有效的減輕server端的壓力。

當需要監控的agent很多的時候,並且每個agent上面有很多的數據項被監控,這對於zabbix-server來說無疑是一種壓力
因此zabbix-server不再主動去找agent,而是由zabbix-proxy去主動找agent拿監控的數據,然後再發送給zabbix-server
這樣就可以緩解監控方zabbix-server的壓力

5. 搭建實驗環境

首先,刪除server3主機,因爲打算使用server3主機作爲zabbix-proxy
在這裏插入圖片描述
在這裏插入圖片描述

主機名(IP) 服務名稱
server1(172.25.60.1) zabbix-server監控方
server2(172.25.60.2) zabbix-agent被監控方
server3(172.25.60.3) zabbix-proxy代理
5.1 在server3(zabbix-proxy代理)上進行配置
zabbix-server<----------zabbix-proxy------------>zabbix-agent
proxy主動去採集被監控方agent的數據然後再主動發給server

關閉agent服務,因爲要用server3作zabbix-proxy代理
在這裏插入圖片描述
在server3上面安裝zabbix-proxy
在這裏插入圖片描述

注意:使用yum源來安裝zabbix-proxy時會產生依賴性的問題,需要fping,因此將這兩個安裝包一起安裝
在這裏插入圖片描述
在這裏插入圖片描述

修改server3的主機名爲proxy,給三個節點添加地址解析
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
安裝數據庫,這裏的數據庫用來存放監控項模板
在這裏插入圖片描述

在這裏插入圖片描述
zabbix-server會告訴zabbix-proxy應該去拿哪些數據,因此zabbix-proxy也要有數據庫

開啓數據庫,進行數據庫的安全初始化
[root@proxy ~]# systemctl start mariadb.service
[root@proxy ~]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@proxy ~]# mysql_secure_installation

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述登陸數據庫,創建數據庫,用戶授權

[root@proxy ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'redhat';
Query OK, 0 rows affected (0.00 sec)

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
導入數據庫
在這裏插入圖片描述
編輯配置文件,開啓服務
vim /etc/zabbix/zabbix_proxy.conf
修改server爲server1的ip
在這裏插入圖片描述
主機名字改爲proxy, 端口號改爲10051
在這裏插入圖片描述
修改數據庫密碼
在這裏插入圖片描述
2.在web界面設置
管理—> agent代理程序 —>創建代理 —> 填寫信息 —>添加
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在proxy上面設置
開啓proxy服務
在這裏插入圖片描述

查看日誌
cat /var/log/zabbix/zabbix_proxy.log
在這裏插入圖片描述
在server1上進行設置
查看日誌,發現報錯

在web界面設置
配置—> 主機 —> server2—> agent代理程序接口—> agent代理程序檢測 —> 更新

在這裏插入圖片描述

在這裏插入圖片描述
發現此時的server2前面會出現proxy
在agent(server2)上設置——server2 將server指向proxy
也就是server2和proxy通信

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
重新啓動服務,看日誌
在server1上重新加載,使得server1和proxy數據同步

在這裏插入圖片描述
查看日誌
在這裏插入圖片描述
重啓proxy,查看日誌
發現proxy可以收到server發給它的數據項模板
在這裏插入圖片描述
在這裏插入圖片描述
在agent上 server2 重啓服務,查看日誌
發現agent正常啓動
在這裏插入圖片描述
在這裏插入圖片描述
在web頁面刷新
發現agent的zabbix監控正常,但是jmx是灰色的
因爲agent是指向proxy的,但是proxy上面沒有javagateway服務
編輯proxy的配置文件,開啓proxy中的javagateway並且指向server端

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
重啓proxy查看日誌在這裏插入圖片描述
在這裏插入圖片描述
再次刷新web JMX
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章