46 張圖詳解 Zabbix 分佈式監控平臺建設
_作者:墨燃筆 _
出處:https://u.kubeinfo.cn/c2C7kV
zabbix 監控系統概述
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 等信息的收集。
zabbix 的主要特點
-
安裝與配置簡單,學習成本低
-
支持多語言(包括中文)
-
免費開源
-
自動發現服務器與網絡設備
-
分佈式監視以及 WEB 集中管理功能
-
可以無 agent 監視
-
用戶安全認證和柔軟的授權方式
-
通過 WEB 界面設置或查看監視結果
-
email 等通知功能
zabbix 的主要功能
-
CPU 負荷
-
內存使用
-
磁盤使用
-
網絡狀況
-
端口監視
-
日誌監視
zabbix 監控原理:
zabbix agent 安裝在被監控的主機上,zabbix agent 負責定期收集客戶端本地各項數據,併發送至 zabbix server 端,zabbix server 收到數據後,將數據存儲到數據庫中,用戶基於 Zabbix WEB 可以看到數據在前端展現圖像。當 zabbix 監控某個具體的項目, 該項目會設置一個觸發器閾值,當被監控的指標超過該觸發器設定的閾值,會進行一些必要的動作,動作包括:發送信息(郵件、微信、短信)、發送命令(shell 命令、reboot、restart、install 等)。
zabbix 常見的五個系統
-
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 端口號
-
zabbix 服務端 zabbix_server 默認使用 10051 端口。
-
客戶端 zabbix_agent2 默認使用 10050 端口。
安裝 zabbix
zabbix-server 192.168.50.105 zabbix-server-mysql、zabbix-agent
zabbix-agent 192.168.50.110 zabbix-agent2
部署 zabbix 服務端(端口號 10051)
zabbix-server 內存至少 2G,推薦 4G。
zabbix 服務端同時安裝 zabbix-server-mysql 和 zabbix-agent,因爲服務端所在主機自己也要被監控。
關閉防火牆
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server
#獲取 zabbix 的下載源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#更換 zabbix.repo 爲阿里源
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
yum clean all && yum makecache
yum install -y zabbix-server-mysql zabbix-agent
#安裝SCL(Software Collections),便於後續安裝高版本的 php,默認 yum 安裝的 php 版本爲 5.4,版本過低,zabbix 5.0 版本對 php 版本最低要 7.2.0 版本。SCL 可以使得在同一臺機器上使用多個版本的軟件,而又不會影響整個系統的依賴環境。軟件包會安裝在 /etc/opt/rh 目錄下。
yum install -y centos-release-scl
#修改 zabbix-front 前端源,安裝 zabbix 前端環境到 scl 環境下
vim zabbix.repo
......
[zabbix-frontend]
......
enabled=1 #開啓安裝源
......
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
#安裝 zabbix 所需的數據庫
yum install -y mariadb-server mariadb
systemctl enable --now mariadb
mysql_secure_installation #初始化數據庫,並設置密碼,如 abc123
#添加數據庫用戶,以及 zabbix 所需的數據庫信息
mysql -u root -pabc123
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;
#導入數據庫信息
rpm -ql zabbix-server-mysql #查詢 sql 文件的位置
zcat /usr/share/doc/zabbix-server-mysql-5.0.15/create.sql.gz | mysql -uroot -pabc123 zabbix
#修改 zabbix server 配置文件,修改數據庫的密碼
vim /etc/zabbix/zabbix_server.conf
......
DBPassword=zabbix #124行,指定 zabbix 數據庫的密碼
#修改 zabbix 的 php 配置文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
......
php_value[date.timezone] = Asia/Shanghai #24行,取消註釋,修改時區
#啓動 zabbix 相關服務
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
瀏覽器訪問:http://192.168.50.105/zabbix
點擊下一步,設置數據庫的密碼 zabbix
安裝完成後,默認的登錄賬號和密碼爲:Admin/zabbix
設置文件界面:點擊左邊菜單欄的【User settings】,【Language】選擇 Chinese(zh_CN),再點擊 Update 更新。
//解決 zabbix-server Web頁面中文亂碼問題
yum install -y wqy-microhei-fonts
cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
部署 zabbix 客戶端(端口號 10050)
zabbix 5.0 版本採用 golang 語言開發的新版本客戶端 agent2 。
zabbix 服務端 zabbix_server 默認使用 10051 端口,客戶端 zabbix_agent2 默認使用 10050 端口。
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-agent01
//服務端和客戶端都配置時間同步
yum install -y ntpdate
ntpdate -u ntp.aliyun.com
//客戶端配置時區,與服務器保持一致
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date
//設置 zabbix 的下載源,安裝 zabbix-agent2
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-agent2
//修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.50.105
#80行,指定 zabbix 服務端的 IP 地址
ServerActive=192.168.50.105
#120行,指定 zabbix 服務端的 IP 地址
Hostname=zbx-agent01
#131行,指定當前 zabbix 客戶端的主機名
//啓動 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -natp | grep zabbix
tcp6 0 0 :::10050 :::* LISTEN 43654/zabbix_agent2
//在服務端驗證 zabbix-agent2 的連通性
yum install -y zabbix-get #安裝 zabbix 主動獲取數據的命令
zabbix_get -s '192.168.50.110' -p 10050 -k 'agent.ping'
1
zabbix_get -s '192.168.50.110' -p 10050 -k 'system.hostname'
zbx-agent01
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/GLNcUL8dG7MhCm-A6QPWqg