zabbix 監控(zabbix服務端,客戶端,自定義監控,自動發現自動注冊,部署zabbix代理)


zabbix 監控

目錄

一: zabbix 簡述

1.1 為什么使用監控系

作為一個運維,需要會使用監控系統查看服務器狀態以及網站流量指標,利用監控系統的數據去了解上線發布的結果,和網站的健康狀態。

利用一個優秀的監控軟件,我們可以:

  • 通過一個友好的界面進行瀏覽整個網站所有的服務器狀態
  • 可以在 Web 前端方便的查看監控數據
  • 可以回溯尋找事故發生時系統的問題和報警情況



1.2 zabbix 是什么

  • zabbix 是一個基於 Web 界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
  • zabbix 能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
  • zabbix 由 2 部分構成,zabbix server 與可選組件 zabbix agent。通過 C/S 模式采集數據,通過 B/S 模式在 Web 端展示和配置。
  • zabbix server 可以通過 SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能, 它可以運行在 Linux 等平台上。
  • zabbix agent 需要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操作系統有關的內存,CPU 等信息的收集。



1.3 zabbix 監控原理

zabbix agent安裝在被監控的主機上,zabbix agent負責定期收集客戶端本地各項數據,並發送至 zabbix server 端,zabbix server 收到數據后,將數據存儲到數據庫中,用戶基於 Zabbix WEB 可以看到數據在前端展現圖像。當 zabbix 監控某個具體的項目, 該項目會設置一個觸發器閾值,當被監控的指標超過該觸發器設定的閾值,會進行一些必要的動作,動作包括:發送信息(郵件、微信、短信)、發送命令(shell 命令、reboot、restart、install 等)。



1.4 zabbix 監控部署的常見5個程序

zabbix 監控部署在系統中,包含常見的五個程序: zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender 等。


  • zabbix server:zabbix 服務端守護進程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的數據最終都提交給 zabbix server;
  • zabbix agent:客戶端守護進程,負責收集客戶端數據,例如:收集 CPU 負載、內存、硬盤使用情況等;
  • zabbix proxy:zabbix 分布式代理守護進程,通常大於 500 台主機,需要進行分布式監控架構部署;
  • zabbix get:zabbix 數據接收工具,單獨使用的命令,通常在 server 或者 proxy 端執行獲取遠程客戶端信息的命令;
  • zabbix sender:zabbix 數據發送工具,用戶發送數據給 server 或 proxy 端,通常用戶耗時比較長的檢查。





二:安裝zabbix 5.0 服務端

節點 服務
192.168.23.105 zabbix-server,zabbix-agent
192.168.23.106 zabbix-agent2
192.168.23.107 zabbix-proxy

2.1 zabbix服務端部署軟件

zabbix-server 內存至少 2G,推薦 4G;z

2.1.1 關閉防火牆,修改主機名

[root@host105 ~]# systemctl disable --now firewalld

[root@host105 ~]# setenforce 0
[root@host105 ~]# hostnamectl  set-hostname zbx-server 
[root@host105 ~]# hostname
zbx-server
#重新連接或者切換bash
[root@host105 ~]# su
[root@zbx-server ~]# 


2.1.2 獲取zabbix 的下載源

[root@zbx-server ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 


2.1.3 更換yum 源

#如果使用的是本地源,需要將原來的官方源從備用中移動出來,生效
[root@zbx-server ~]# cd  /etc/yum.repos.d/
[root@zbx-server yum.repos.d]# ls
bak  local.repo  zabbix.repo
[root@zbx-server yum.repos.d]# mv bak/*  .
[root@zbx-server yum.repos.d]# ls
bak  CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo  local.repo  zabbix.repo


#修改zabbix.repo的源為 阿里源,加快速度
[root@zbx-server yum.repos.d]# sed -i \
's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo

#清除並重新建立yum緩存
[root@zbx-server yum.repos.d]# yum clean all && yum makecache


2.1.4 下載安裝zabbix服務端響應軟件

#下載安裝 連接mysql的zabbix 服務和 zabbix-agent
[root@zbx-server yum.repos.d]# yum install -y zabbix-server-mysql zabbix-agent

2.1.5 安裝SCL(Softwqre Collections)

安裝SCL(Software Collections),便於后續安裝高版本的 php,默認 yum 安裝的 php 版本為 5.4,版本過低,zabbix 5.0 版本對 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台機器上使用多個版本的軟件,而又不會影響整個系統的依賴環境。軟件包會安裝在 /opt/rh 目錄下。

[root@zbx-server yum.repos.d]# yum install -y centos-release-scl

修改前端源,安裝zabbix 前端環境到scl 環境下

[root@zbx-server yum.repos.d]# vim zabbix.repo 
.......
[zabbix-frontend]
.....
#enabled=1,開啟此安裝源。
enabled=1

#將前端環境安裝到scl 下
[root@zbx-server yum.repos.d]# yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl



2.2 zabbix 服務端部署響應的數據庫

2.2.1 安裝zabbix 所需要的數據庫

#安裝mariadb 數據庫並啟動
[root@zbx-server yum.repos.d]# yum install -y mariadb-server mariadb
[root@zbx-server yum.repos.d]# systemctl enable --now mariadb


2.2.2 初始化數據庫

[root@zbx-server yum.repos.d]# mysql_secure_installation
#輸出當前密碼(當前密碼為空,直接回車)
Enter current password for root (enter for none):

#是否設置root 密碼(輸入 y 設置)
Set root password? [Y/n] y
#輸入設置的root 密碼。
New password: 
Re-enter new password: 

#是否移除匿名用戶(輸入y 移除)
Remove anonymous users? [Y/n] y

#不否允許root遠程登錄( 輸入y 不允許)
Disallow root login remotely? [Y/n] y

#移除test庫(輸入y移除)
Remove test database and access to it? [Y/n] y

#現在重載授權表(輸入y立即重載)
Reload privilege tables now? [Y/n] y

2.2.3 添加數據庫用戶以及zabbix所需的數據庫信息

#登錄進入數據庫
[root@zbx-server yum.repos.d]# mysql -u root -pabc123

#創建zabbix 庫,使用utf8字符集編碼
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;

#授權權限,zabbix用戶可以使用密碼zabbix 從任意主機登錄,且擁有zabbix庫的所有權限
MariaDB [(none)]> GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';

#刷新授權表
MariaDB [(none)]> flush privileges;

2.2.4 導入數據庫信息

#查詢sql文件位置
[root@zbx-server yum.repos.d]# rpm -ql zabbix-server-mysql 
.....
/usr/share/doc/zabbix-server-mysql-5.0.16/create.sql.gz
....

#zcat 壓縮狀態下查看。將壓縮的文件查看后導入到zabbix庫
[root@zbx-server yum.repos.d]# zcat \
/usr/share/doc/zabbix-server-mysql-5.0.16/create.sql.gz | \
mysql -uroot -pabc123 zabbix


[root@zbx-server yum.repos.d]# mysql -u root -pabc123
MariaDB [(none)]>  use zabbix;
MariaDB [zabbix]> show tables;

image-20211005142756925

image-20211005143238240


2.2.5 修改zabbix server 配置文件,修改數據庫密碼

[root@zbx-server yum.repos.d]# vim /etc/zabbix/zabbix_server.conf 
#116 行,定義了數據庫用戶為zabbix,如果數據庫授權用戶不是zabbix,則需要修改
116// DBUser=zabbix

#124 行,取消注釋,指定數據庫密碼為 zabbix
124// DBPassword=zabbix

2.2.6 修改zabbix的php文件

[root@zbx-server yum.repos.d]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#24 行,取消注釋,設置時區為亞洲上海
24// php_value[date.timezone] = Asia/Shanghai

image-20211005144610032



2.3 瀏覽器訪問並安裝

2.3.1 啟動服務

#啟動zabbix server,zabbix-agent,httpd,rh-php72-php-fpm
[root@zbx-server ~]# systemctl  restart  \
zabbix-server.service  zabbix-agent.service  httpd rh-php72-php-fpm.service

[root@zbx-server ~]# systemctl  enable  \
zabbix-server.service  zabbix-agent.service  httpd rh-php72-php-fpm.service

[root@zbx-server ~]# netstat  -natp | grep 10051
[root@zbx-server ~]# netstat  -natp | grep 10050

image-20211005145859044


2.3.2 瀏覽器訪問並安裝

不要使用windows自帶的 IE 或者 Edge 瀏覽器,也不要使用虛擬機里的火狐。使用**宿主機里的谷歌瀏覽器,訪問http://192.168.23.105/zabbix **

瀏覽器訪問:http://192.168.23.105/zabbix

點擊下一步,設置數據庫的密碼 zabbix

安裝完成后,默認的登錄賬號和密碼為:Admin/zabbix

設置文件界面:點擊左邊菜單欄的【User settings】,【Language】選擇 Chinese(zh_CN),再點擊 Update 更新。

image-20211005144820013

image-20211005144942061

image-20211005145222095

img

image-20211005145635481

image-20211005145715298

image-20211005150157528


2.3.3 解決zabbix-server web頁面中文亂碼問題

#下載插件
[root@zbx-server ~]# yum install -y wqy-microhei-fonts

#復制並覆蓋原內容
[root@zbx-server ~]# \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc \
/usr/share/fonts/dejavu/DejaVuSans.ttf



三: 部署zabbix 客戶端

zabbix 5.0 版本采用 golang 語言開發的新版本客戶端 agent2

zabbix 服務端 zabbix_server 默認使用 10051 端口客戶端 zabbix_agent2 默認使用 10050 端口。


3.1 環境准備

3.1.1 關閉防火牆,配置主機名

[root@host106 ~]# systemctl  disable --now firewalld
[root@host106 ~]# setenforce  0
[root@host106 ~]# hostnamectl  set-hostname zbx-agent01
[root@host106 ~]# su
[root@zbx-agent01 ~]# hostname
zbx-agent01

3.1.2 配置時間同步

服務端和客戶端都要配置時間同步

服務端配置:

[root@zbx-server ~]# yum install -y ntpdate
[root@zbx-server ~]# ntpdate -u ntp.aliyun.com

image-20211005170244311


客戶端配置:

[root@zbx-agent01 ~]# yum install -y ntpdate
[root@zbx-agent01 ~]# ntpdate -u ntp.aliyun.com
[root@zbx-agent01 ~]# mv /etc/localtime{,.bak}
[root@zbx-agent01 ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@zbx-agent01 ~]# date

image-20211005170553382



3.2 安裝zabbix 客戶端zabbix-agent2

3.2.1 配置zabbix 的下載源,安裝zabbix-agent2

[root@zbx-agent01 ~]# rpm -ivh \
https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

[root@zbx-agent01 ~]# cd /etc/yum.repos.d
#替換源為阿里源
[root@zbx-agent01 yum.repos.d]# sed -i \
's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

#安裝zabbix-agent2
[root@zbx-agent01 yum.repos.d]# yum install -y zabbix-agent2

3.2.2 修改agent2 配置文件

[root@zbx-agent01 ~]# cp /etc/zabbix/zabbix_agent2.conf{,.bak} 
[root@zbx-agent01 ~]# vim /etc/zabbix/zabbix_agent2.conf

#80行,指定zabbix服務端ip
 80// Server=192.168.23.105
 
#120行,指定zabbix服務端ip 
 120 ServerActive=192.168.23.105
 
 #131行,設置客戶端主機名
 131// Hostname=zbx-agent01

3.3 啟動zabbix-agent2,並驗證聯通性

3.3.1 啟動zabbix-agent2

[root@zbx-agent01 ~]# systemctl start zabbix-agent2
[root@zbx-agent01 ~]# systemctl enable zabbix-agent2
.
[root@zbx-agent01 ~]# netstat  -natp | grep 10050
tcp6       0      0 :::10050                :::*                    LISTEN      43962/zabbix_agent2 

image-20211005171550274


3.3.2 在服務端驗證聯通性

#服務端安裝zabbix 主動獲取數據的命令
[root@zbx-server ~]# yum install -y zabbix-get.x86_64

#-k 指定鍵。如果返回1,則表示能夠ping 通
[root@zbx-server ~]# zabbix_get -s '192.168.23.106' -p 10050 -k 'agent.ping'
1

#獲取客戶端的主機名
[root@zbx-server ~]# zabbix_get -s '192.168.23.106' -p 10050 -k 'system.hostname'
zbx-agent01

#獲取客戶端的內核版本
[root@zbx-server ~]# zabbix_get -s '192.168.23.106' -p 10050 -k 'system.uname'
Linux zbx-agent01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64

image-20211005172200752



3.4 在web頁面添加agent主機

點擊左邊菜單欄【配置】中的【主機】,點擊【創建主機】

【主機名稱】設置成 zbx-agent01

【可見的名稱】設置成 zbx-agent01-192.168.23.106

【群組】選擇 Linux server

【Interfaces】的【IP地址】設置成 192.168.23.106


再點擊上方菜單欄【模板】

【Link new tamplates】搜索 Linux ,選擇 Template OS Linux by Zabbix agent

點擊 【添加】

image-20211005172439017

image-20211005172948538

image-20211005173038051

image-20211005173246764






四: 自定義監控內容

案列:自定義監控客戶端服務器登錄的人數

需求:限制登錄人數不超過 3 個,超過 3 個就發出報警信息

4.1 在客戶端創建自定義key

4.1.1 明確需要執行的linux命令

[root@zbx-agent01 ~]# who | wc -l

image-20211005173745017


4.1.2 創建zabbix 監控項配置文件,用於自定義key

#在zabbix的配置文件中定義了會加載放在 /etc/zabbix/zabbix_agent2.d/目錄下,所有以 .conf結尾的文件.
[root@zbx-agent01 ~]# vim /etc/zabbix/zabbix_agent2.conf
#268行,定義了加載的文件路徑
268// Include=/etc/zabbix/zabbix_agent2.d/*.conf
#291行,定義了監控項的格式
291// #       Format: UserParameter=<key>,<shell command>


[root@zbx-agent01 ~]# cd  /etc/zabbix/zabbix_agent2.d/
[root@zbx-agent01 zabbix_agent2.d]# vim UserParameter_login.conf
UserParameter=login.user,who|wc -l


#重啟服務
[root@zbx-agent01 zabbix_agent2.d]# systemctl restart zabbix-agent2

image-20211005190719192


4.1.3 在服務端驗證新建的監控項

#在服務端測試
[root@zbx-server ~]# zabbix_get -s '192.168.23.106' -p 10050 -k 'login.user'
2

image-20211005191022209



4.2 在web界面創建自定義監控模板

4.2.1 創建模板

點擊左邊菜單欄【配置】中的【模板】,點擊【創建模板】

【模板名稱】設置成 Template Login User

【可見的名稱】設置成 Template Login User

【群組】選擇 Template

【描述】可自定義

點擊 【添加】,此時就可在【鏈接的模板】中搜索到 Template Login User 了

image-20211005191212816

image-20211005191427933

image-20211005191518170


4.2.2 創建應用集(用來管理監控項)

點擊上方菜單欄【應用集】,點擊【創建應用集】

【名稱】設置成 Login User

點擊 【添加】

image-20211005191752448

image-20211005191939249

image-20211005192019025


4.2.3 創建監控項

點擊上方菜單欄【監控項】,點擊【創建監控項】

【名稱】設置成 Number of login users

【鍵值】設置成 login.user #鍵值必須要與自定義的監控項配置文件中設置的保持一致

【更新間隔】設置成 10s

【歷史數據保留時長】Storage period 30d #保留時間可自定義設置

點擊 【添加】

image-20211005192203224

image-20211005192343361

image-20211005192359229


4.2.4 創建觸發器

當監控項獲取到監控的值后和觸發器預設的值進行對比,判斷是否報警

點擊上方菜單欄【觸發器】,點擊【創建觸發器】

【名稱】設置成 Number of login users is greater than 3

【嚴重性】設置成 一般嚴重

【表達式】點擊添加,【監控項】點擊選擇 Number of login users,【功能】選擇 last(),【結果】選擇 > 3,點擊 【插入】

點擊 【添加】

image-20211005192525286

image-20211005193007882

image-20211005192845961


4.2.5 創建圖形

點擊上方菜單欄【圖形】,點擊【創建圖形】

【名稱】設置成 Number of login users

【寬】、【高】可直接采用默認值

【監控項】點擊添加勾選相關監控項 Number of login users,【功能】選擇 最大,其它可保持默認值

點擊 【添加】

image-20211005193204845

image-20211005193432533


4.2.6 將主機和模板關聯(一個主機可以關聯多個模板)

點擊左邊菜單欄【配置】中的【主機】,點擊你要關聯的主機

點擊上方菜單欄【模板】,【Link new tamplates】搜索 login,選擇 Template Login User,點擊【更新】

此時就點擊【監測】中的【主機】,點擊你關聯主機的【圖形】,即可查看到相關的監控項指標

image-20211005193649017

image-20211005193823420

image-20211005194015047

image-20211005194056293


4.2.7 配置郵件報警

點擊左邊菜單欄【管理】中的【報警媒介類型】,點擊【創建媒體類型】

【名稱】設置成 qq_Email

【SMTP服務器】設置成 smtp.qq.com

【SMTP服務器端口】設置成 25

【SMTP HELO】設置成 qq.com

【SMTP電郵】設置成 自己的郵箱地址,例如 qwe4546456@qq.com

【認證】選擇 用戶名和密碼

【用戶名稱】設置成 自己的郵箱地址,例如 qwe4546456@qq.com

【密碼】可登錄QQ郵箱頁面,點擊【設置】-->【賬戶】中的【生成授權碼】,通過短信獲取授權碼

【描述】可自定義

點擊上方菜單欄【Message templates】,點擊【添加】,【Message type】選擇 問題,點擊【更新】

點擊 【添加】,並測試功能


點擊左邊菜單欄【User settings】-->【報警媒介】,點擊【添加】

【類型】選擇 qq_Email

【收件人】設置成 qwe4546456@wo.cn

【當啟用時】設置成 1-7,00:00-24:00

點擊 【添加】

再點擊 【更新】


點擊左邊菜單欄【配置】中的【動作】,選擇相對應的動作名稱,點擊【啟用】


//測試郵件報警

增加測試客戶端的用戶登錄數超過觸發器預設的值,查看【監測】-->【儀表盤】,確認報警

image-20211005200127324

image-20211005201333332

image-20211005200656487

image-20211005200727273

image-20211005200807177

image-20211005200942843

image-20211005201510406

image-20211005201634600

image-20211005201837242

image-20211005201952385

image-20211005202405728

image-20211005202241547

image-20211005202609985



五 zabbix 的自動發現與自動注冊

5.1 zabbix 的自動發現

zabbix 自動發現(對於 agent2 是被動模式)

zabbix server 主動的去發現所有的客戶端,然后將客戶端的信息登記在服務端上。

缺點是如果定義的網段中的主機數量多,zabbix server 登記耗時較久,且壓力會較大。


5.1.1 確認客戶端的zabbix-agent2服務狀態正常

#確認服務狀態正常
[root@zbx-agent01 ~]# systemctl is-active zabbix-agent2.service 
active

5.1.2 在 Web 頁面刪除原有的客戶端主機

點擊左邊菜單欄【配置】中的【主機】,勾選原有的客戶端主機,點擊 刪除

image-20211005203157740


5.1.3在服務端和客戶端都配置hosts解析

#配置主機名映射
echo "192.168.23.105 zbx-server" >> /etc/hosts
echo "192.168.23.106 zbx-agent01" >> /etc/hosts

5.1.4 在web 頁面配置自動發現

點擊左邊菜單欄【配置】中的【自動發現】,點擊【創建發現規則】

【名稱】設置成 mynetwork

【IP范圍】設置成 192.168.80.1-254

【更新間隔】設置成 30s

【檢查】點擊【添加】,【檢查類型】選擇 Zabbix 客戶端,【端口范圍】設置成 10500,【鍵值】設置成 system.uname

【設備唯一性准則】選擇 IP地址

【主機名稱】選擇 DNS名稱

【可見的名稱】選擇 主機名稱

勾選 【已啟用】,點擊 【更新】


點擊左邊菜單欄【配置】中的【動作】,上方菜單選擇 【Discovery actions】

勾選 【Auto discovery. Linux servers.】,點擊 【啟用】


點擊左邊菜單欄【配置】中的【主機】刷新,等待一段時間后即可刷新出自動發現的客戶端主機


可在服務端查看 zabbix 日志

tail -f /var/log/zabbix/zabbix_server.log

image-20211005204506425

image-20211005204749255

image-20211005204634014

image-20211005205034663


5.1.5 查看自動添加

點擊左邊菜單欄【配置】中的【主機】刷新,等待一段時間后即可刷新出自動發現的客戶端主機


可在服務端查看 zabbix 日志

tail -f /var/log/zabbix/zabbix_server.log

......

6601:20210922:225044.115 enabling Zabbix agent checks on host "zbx-agent01": host became available

image-20211005205653027

<



5.2 zabbix 自動注冊

對於 agent2 是主動模式

zabbix agent2 會主動上報自己的信息,發給 zabbix server。

缺點是可能因為配置文件配置錯誤或者網絡不通等原因導致 zabbix agent2 可能找不到 zabbix server。


5.2.1 環境准備

點擊左邊菜單欄【配置】中的【自動發現】,勾選發現規則,點擊 禁用

點擊左邊菜單欄【配置】中的【主機】,勾選原有的客戶端主機,點擊 刪除

vim /etc/hosts

192.168.23.105 zbx-server

192.168.23.106 zbx-agent01

image-20211005210218735

image-20211005203157740


5.2.2 修改zabbix-agent2配置文件

[root@zbx-agent01 ~]# vim /etc/zabbix/zabbix_agent2.conf
#139行取消注釋
139//  HostnameItem=system.hostname

[root@zbx-agent01 ~]# systemctl restart zabbix-agent2.service

[root@zbx-agent01 ~]# egrep -nv "^#|^$" /etc/zabbix/zabbix_agent2.conf

image-20211005203841152


5.2.3 在web 頁面配置自動注冊

點擊左邊菜單欄【配置】中的【動作】,上方菜單選擇 【Autoregistration actions】,點擊【創建動作】

【名稱】設置成 Auto registration

點擊 【添加】,【類型】選擇 主機名稱,【操作者】選擇 包含,【值】設置成 zbx-agent01

點擊上方菜單欄【操作】,點擊【添加】,【操作類型】選擇 添加主機,點擊 【add】

再點擊【添加】,【操作類型】選擇 添加到主機群組,【主機群組】選擇 Linux servers,點擊 【add】

再點擊【添加】,【操作類型】選擇 與模板關聯,【模板】搜索 Linux,選擇 Template OS Linux by Zabbix agent,點擊 【add】

點擊下方的【添加】


點擊左邊菜單欄【配置】中的【主機】刷新,等待一段時間后即可刷新出自動發現的客戶端主機


在服務端查看 zabbix 日志

tail -f /var/log/zabbix/zabbix_server.log

...

enabling Zabbix agent checks on host "zbx-agent01": host became available

image-20211005210448072

image-20211005210706889

image-20211005210933412

image-20211005211018210

image-20211005211139670

image-20211005211557846

image-20211005211616117



六: 部署zabbix 代理服務器

分布式監控的作用:

  • 分擔 server 的集中式壓力
  • 解決多機房之間的網絡延時問題

agent --> proxy --> server


6.1 搭建proxy 主機

6.1.1 關閉防火牆,修改主機名

[root@host107 ~]# systemctl  disable  --now firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@host107 ~]# setenforce 0
[root@host107 ~]# hostnamectl  set-hostname zbx-proxy
[root@host107 ~]# su
[root@zbx-proxy ~]# hostname
zbx-proxy

6.1.2 設置zabbix 下載源

[root@zbx-proxy ~]# rpm -ivh \
https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

[root@zbx-proxy ~]# cd /etc/yum.repos.d
[root@zbx-proxy yum.repos.d]# sed -i \
's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

[root@zbx-proxy yum.repos.d]# yum install -y zabbix-proxy-mysql zabbix-get

6.1.3 安裝zabbix 所需要的數據庫 ,初始化數據庫

[root@zbx-proxy yum.repos.d]# yum install -y mariadb-server mariadb
[root@zbx-proxy yum.repos.d]# systemctl enable --now mariadb

#初始化數據庫,並設置密碼abc123
[root@zbx-proxy yum.repos.d]# mysql_secure_installation
....

6.1.4 添加數據庫用戶,以及zabbix 所需的數據庫信息

[root@zbx-proxy yum.repos.d]# mysql -u root -pabc123
MariaDB [(none)]> CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;

MariaDB [(none)]> GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';

MariaDB [(none)]> flush privileges;

6.1.5 導入數據庫信息

[root@zbx-proxy yum.repos.d]# rpm -ql zabbix-proxy-mysql
......
/usr/share/doc/zabbix-proxy-mysql-5.0.16/schema.sql.gz
.....


[root@zbx-proxy yum.repos.d]# zcat \
/usr/share/doc/zabbix-proxy-mysql-5.0.16/schema.sql.gz | \
mysql -uroot -pabc123 zabbix_proxy

6.1.6 修改zabbix-proxy配置文件

[root@zbx-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
#指定zabbix服務端的ip地址
 30// Server=192.168.23.105
 
 #指定當前zabbix代理服務器的主機名
 49// Hostname=zbx-proxy
 
 #指定當前數據庫的zabbix用戶密碼
 196// DBPassword=zabbix
 
 [root@zbx-proxy ~]# egrep -nv "#|^$" /etc/zabbix/zabbix_proxy.conf

image-20211005221043585


6.1.7 啟動zabbix-proxy

[root@zbx-proxy ~]# systemctl start zabbix-proxy
[root@zbx-proxy ~]# systemctl enable zabbix-proxy

6.1.8 在所有主機上配置hosts解析

#所有主機配置
vim /etc/hosts
192.168.23.105 zbx-server
192.168.23.106 zbx-agent01
192.168.23.107 zbx-proxy

6.1.9 在web 頁面配置agent代理

點擊左邊菜單欄【配置】中的【動作】,勾選自動注冊規則,點擊 禁用

點擊左邊菜單欄【配置】中的【主機】,勾選原有的客戶端主機,點擊 刪除


點擊左邊菜單欄【管理】中的【agent代理程序】,點擊【創建代理】

【agent代理程序名稱】設置為 zbx-proxy

【系統代理程序模式】選擇 主動式

【代理地址】設置為 192.168.23.107

點擊 【添加】

image-20211005221700181

image-20211005221736452

image-20211005221834336

image-20211005221954386



6.2 配置agent 使用proxy

6.2.1 在客戶端修改agent2 配置文件

[root@zbx-agent01 ~]# vim /etc/zabbix/zabbix_agent2.conf

#指定zabbix 代理服務器的ip
80// Server=192.168.23.107
120// ServerActive=192.168.23.107

image-20211005222447286


6.2.2 web頁面配置

點擊左邊菜單欄【配置】中的【主機】,點擊【創建主機】

【主機名稱】設置成 zbx-agent01

【可見的名稱】設置成 zbx-agent01

【群組】選擇 Linux server

【Interfaces】的【IP地址】設置成 192.168.23.106

【由agent代理程序監測】選擇 zbx-proxy


再點擊上方菜單欄【模板】

【Link new tamplates】搜索 Linux ,選擇 Template OS Linux by Zabbix agent

點擊 【添加】

image-20211005222729537

image-20211005223021628

image-20211005223048213


6.2.3重啟客戶端和代理服務器服務

重啟服務后

點擊左邊菜單欄【配置】中的【主機】刷新,查看客戶端主機監控狀態正常

在服務端查看日志

tail -f /var/log/zabbix/zabbix_proxy.log

[root@zbx-agent01 ~]# systemctl restart zabbix-agent2.service
[root@zbx-proxy ~]# systemctl restart zabbix-proxy.service 

image-20211005223500244

image-20211005223808874


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM