上篇:https://blog.csdn.net/Lzcsfg/article/details/138774511
文章目錄
- Zabbix功能介紹
- Zabbix平臺選擇
- 安裝Zabbix監控端
- 部署MySQL數據庫
- Zabbix參數介紹
- 登錄Zabbix WEB
- WEB界面概覽
- 修改WEB界面語言
- 添加被控主機
- 導入監控模板
- 主機綁定模板
- 查看主機狀態
- 查看監控數據
- 解決Zabbix亂碼
- 監控Nginx狀態信息
- 監控PHP狀態信息
- 監控Redis狀態信息
源碼鏈接:https://pan.baidu.com/s/1HbbZJzqD8-l565H9Mb8W1g?pwd=2euj
提取碼:2euj
Zabbix功能介紹
Zabbix 是C語言編寫的企業級開源免費的分布式監控解決方案,可監控網絡的眾多參數以及服務器、虛擬機、應用程序、數據庫、網站、云等的健康狀況和完整性。
Zabbix 使用靈活的報警通知機制,允許用戶為幾乎任何事件配置電子郵件的警報。這允許對服務器問題做出快速反應。
Zabbix 可通過存儲的數據提供出色的報告和數據可視化功能。
官網地址:https://www.zabbix.com/
常用的監控軟件:Cacti、Nagios、Ganglia、Open-Falcon、zabbix、prometheus
選擇一款監控軟件,需要軟件具備什么功能?
- 指標采集:服務器狀態、程序狀態、CPU、內存、磁盤、網絡
- 指標存儲:實現數據持久化,后期分析監控指標
- 指標可視化:提供web頁面,通過瀏覽器訪問頁面
- 故障報警:出現問題,及時發送報警通知
Zabbix版本介紹
Zabbix穩定版:LTS代表穩定版,官方提供技術支持時間長達5年時間
Zabbix標準版:不帶LTS標簽,官方提供技術支持時間7個月
Zabbix組件介紹
zabbix agent:指標采集器,在被監控主機上采集指標數據,并將采集到的數據發送給zabbix server
zabbix server:負責提供監控功能,負責接收agent發送的數據,統計數據、管理數據
zabbix database:用于存儲所有zabbix的配置信息以及監控數據
zabbix web:管理員通過web界面管理、配置以及查看相關監控信息
zabbix proxy:分布式監控,用來分擔zabbix server的壓力(不是必須)
Zabbix平臺選擇
安裝Zabbix監控端
主機名 | IP地址 | 操作系統 | 硬件環境 |
---|---|---|---|
zbx-server | 192.168.226.133 | CentOS 7 | 2 Core/4G Memory |
更改主機名
hostnamectl set-hostname zbx-server
下載Zabbix5.0存儲庫(二進制安裝方式)
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
安裝zabbix軟件包
yum install zabbix-server-mysql zabbix-agent -y
下載centos-release-scl倉庫(提供zabbix前端所需的一些軟件包)
yum install centos-release-scl -y
啟用zabbix前端倉庫
vim /etc/yum.repos.d/zabbix.repo
#...
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1 #改為1啟用倉庫
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
安裝Zabbix前端軟件包(兩個軟件中內置PHP與Apache)
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
部署MySQL數據庫
下載MySQL倉庫
rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
導入GPG密鑰文件
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安裝MySQL
yum install mysql-server -y
啟動MySQL
systemctl enable mysqld --now
查看MySQL的root初始密碼
grep -i password /var/log/mysqld.log
通過初始密碼登錄到數據庫
mysql -uroot -p'密碼'
修改密碼復雜度策略(即不驗證復雜度)
mysql> set global validate_password_policy=0;
設置root本機登錄密碼(長度須滿足8位)
mysql> alter user root@"localhost" identified by "admin123456";
退出數據庫,修改my.cnf文件,在文件中定義密碼策略,讓策略永久生效
vim /etc/my.cnf
#...
[mysqld]
validate_password_policy=0
重啟MySQL
systemctl restart mysqld
登錄數據,創建一個名為 zabbix
的數據庫用于存儲監控指標,并支持中文
mysql> create database zabbix character set utf8 collate utf8_bin;
創建一個名為 zabbix
的用戶用于連接數據庫,并設置密碼
mysql> create user zabbix@localhost identified by '12345678';
授權 zabbix
用戶對 zabbix
庫的所有權限
mysql> grant all privileges on zabbix.* to zabbix@localhost;
導入數據庫所需的表文件
zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz | mysql -uzabbix -p12345678 zabbix
配置zabbix連接數據庫
vim /etc/zabbix/zabbix_server.conf
#...
DBName=zabbix #數據庫名稱,在100行
DBUser=zabbix #連接數據庫的用戶名,在116行
DBPassword=12345678 #用戶密碼,在124行
為PHP配置正確時區
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#修改參數,記得修改注釋
php_value[date.timezone] = Asia/Shanghai
啟動所有服務并設置服務隨機自啟
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
Zabbix參數介紹
zabbix-server 端口:10051
zabbix-agent 端口:10050
zabbix server主配置文件:/etc/zabbix/zabbix_server.conf
zabbix agent主配置文件:/etc/zabbix/zabbix_agentd.conf
zabbix自定義監控項路徑:/etc/zabbix/zabbix_agentd.d
zabbix日志文件路徑:/var/log/zabbix/
登錄Zabbix WEB
從瀏覽器上訪問Zabbix前端URL:http://192.168.226.133/zabbix
環境檢查
請確保這里的 Check of pre-requisites
全部OK后點擊下一步
配置數據庫連接
Zabbix server信息
安裝前回顧所有配置
完成安裝
登錄Zabbix:管理員 Admin
, 密碼 zabbix
WEB界面概覽
側邊欄的菜單可使用Zabbix各功能,菜單可以整個折疊或隱藏
-
折疊, 單擊Zabbix logo旁邊的
-
隱藏, 單擊Zabbix logo旁邊的
修改WEB界面語言
添加被控主機
在主機discuz-db
discuz01
discuz02
master-proxy
backup-proxy
中安裝 zabbix-agent
客戶端程序用于采集主機指標
下載Zabbix5.0存儲庫(二進制安裝方式)
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
安裝zabbix agent
yum install zabbix-agent -y
修改zabbix-agent配置文件,定義zabbix server地址
vim /etc/zabbix/zabbix_agentd.conf
#大約在117行,這里意思是誰可以監控我,統一修改成zbx-server主機的IP,代表監控服務端主機可以監控這些集群機器
Server=192.168.226.133
啟動服務并設置服務隨機自啟
systemctl start zabbix-agent
systemctl enable zabbix-agent
上述步驟是針對這discuz-db
discuz01
discuz02
master-proxy
backup-proxy
,下面是對 zbx-server 主機操作。
回到Zabbix WEB界面,通過配置 → 主機 → 創建主機 添加被控主機
其他主機均按照以上方法添加
導入監控模板
通過配置 → 模板單擊右上角的導入按鈕,選擇要導入的文件,單擊導入按鈕。
主機綁定模板
通過配置 → 主機找到你的主機,然后選擇模板,選擇好模板后,點擊更新
提示:其他主機均按照以上方法綁定模板。
查看主機狀態
通過監測→主機查看Zabbix Server是否采集到主機指標
灰色
未采集到指標
以采集到指標
指標采集失敗
查看監控數據
可通過主機右邊的最新數據來查看監控的指標項
解決Zabbix亂碼
在 zbx-server
主機將準備好的字體文件傳到zabbix存放字體文件路徑,并覆蓋原文件內容。
cd /usr/share/zabbix/assets/fonts/
從windows中C:\Windows\Fonts這個目錄里選擇一款字體,要選正常字體,規整細點的,不然下面圖中的數據看不清,對工作不利。
選擇一款字體上傳到/usr/share/zabbix/assets/fonts/目錄里,**覆蓋**原字體文件的內容即可。
cp SIMSUN.TTC graphfont.ttf
會有個提示是否覆蓋,輸入y回車,原字體文件刪不刪除都行
刷新界面即可
監控Nginx狀態信息
通過監控NGINX的狀態可實時了解服務器處理請求的情況,及服務器的負載情況。
以下都對master-proxy
與 backup-proxy
主機操作
在 master-proxy
與 backup-proxy
主機創建目錄用于存放監控腳本
mkdir /etc/zabbix/script/
cd /etc/zabbix/script
將腳本 ngx_status.sh
上傳到該目錄并為腳本添加執行權限
chmod +x ngx_status.sh
進入自定義監控路徑,將自定義監控文件 nginx_status.conf
上傳到該目錄
cd /etc/zabbix/zabbix_agentd.d/
修改zabbix agent配置文件,開啟自定義監控功能
vim /etc/zabbix/zabbix_agentd.conf
#...#自定監控路徑對照下不要錯,大概在314行
Include=/etc/zabbix/zabbix_agentd.d/*.conf #改為1為開啟自定義監控功能,默認該功能為關閉狀態,大概在333行
UnsafeUserParameters=1
重啟zabbix agent服務
systemctl restart zabbix-agent
這里開始對zbx-server主機操作
zabbix server獲取監控項數據,下載zabbix-get軟件包,用于在命令行獲取客戶端監控項的值
yum install zabbix-get -y
獲取客戶端監控項數據,命令如下(按照自己的環境修改IP)
#當前活動用戶的連接數量
zabbix_get -s 192.168.226.131 -k nginx.active#已接收的客戶端連接總數量
zabbix_get -s 192.168.226.131 -k nginx.accepts#已處理的連接總數量
zabbix_get -s 192.168.226.131 -k nginx.handled#客戶端請求的總數量
zabbix_get -s 192.168.226.131 -k nginx.requests#正在讀取請求的連接數
zabbix_get -s 192.168.226.131 -k nginx.reading #將響應反回客戶端的連接數
zabbix_get -s 192.168.226.131 -k nginx.writing#客戶端正在等待服務器的響應數量
zabbix_get -s 192.168.226.131 -k nginx.waiting
通過配置 → 模板 → 導入 將模板導入到zabbix中
通過配置 → 主機 找到你的主機,將master-proxy和backup-proxy主機的新增的模板文件綁定到主機
隨后通過 監測 → 最新數據 查看監控指標
監控PHP狀態信息
通過監控PHP的狀態,可實時了解到PHP進程相關信息及PHP處理請求的情況。
對discuz01
與 discuz02
主機主機操作
在 discuz01
與 discuz02
主機創建目錄用于存放監控腳本
mkdir /etc/zabbix/script/
cd /etc/zabbix/script
將腳本 phpfpm_status.sh
上傳到該目錄并為腳本添加執行權限
chmod +x phpfpm_status.sh
進入自定義監控路徑,將自定義監控文件 phpfpm_status.conf
上傳到該目錄
cd /etc/zabbix/zabbix_agentd.d/
修改zabbix agent配置文件,開啟自定義監控功能
vim /etc/zabbix/zabbix_agentd.conf
#...#自定監控路徑,大概在314行
Include=/etc/zabbix/zabbix_agentd.d/*.conf #改為1為開啟自定義監控功能,默認該功能為關閉狀態,大概在333行
UnsafeUserParameters=1
重啟zabbix agent服務
systemctl restart zabbix-agent
zabbix server獲取客戶端監控項數據,命令如下(按照自己的環境修改IP),這里是在zbx-server主機操作的查看命令
#php-fpm運行時長
zabbix_get -s 192.168.226.129 -k phpfpm_status[start_since]#當前接收的連接數
zabbix_get -s 192.168.226.129 -k phpfpm_status[accepted_conn]#等待連接的請求數
zabbix_get -s 192.168.226.129 -k phpfpm_status[listen_queue]#請求等待隊列最高的數量
zabbix_get -s 192.168.226.129 -k phpfpm_status[max_listen_queue]#socket等待隊列長度
zabbix_get -s 192.168.226.129 -k phpfpm_status[listen_queue_len]#空閑進程數量
zabbix_get -s 192.168.226.129 -k phpfpm_status[idle_processes]#活躍進程數量
zabbix_get -s 192.168.226.129 -k phpfpm_status[active_processes]#總進程數量
zabbix_get -s 192.168.226.129 -k phpfpm_status[total_processes]#最大的活躍進程數量
zabbix_get -s 192.168.226.129 -k phpfpm_status[max_active_processes]#進程最大數量限制的次數
zabbix_get -s 192.168.226.129 -k phpfpm_status[max_children_reached]#php-fpm慢請求
zabbix_get -s 192.168.226.129 -k phpfpm_status[slow_requests]
通過配置 → 模板 → 導入 將模板導入到zabbix中
通過配置 → 主機 找到你的discuz01和discuz02主機,把模板文件綁定到主機
隨后通過 監測 → 最新數據 查看監控指標
監控Redis狀態信息
通過監控Redis的狀態信息,可實時了解到Redis進程相關、內存消耗、Redis處理請求數量、Redis持久化情況。
在discuz-db
主機創建目錄用于存放監控腳本
mkdir /etc/zabbix/script/
cd /etc/zabbix/script
將腳本 redis_status.sh
上傳到該目錄并為腳本添加執行權限
chmod +x redis_status.sh
進入自定義監控路徑,將自定義監控文件 custom_redis_status.conf
上傳到該目錄
cd /etc/zabbix/zabbix_agentd.d/
修改zabbix agent配置文件,開啟自定義監控功能
vim /etc/zabbix/zabbix_agentd.conf
#...#自定監控路徑,大概在314行
Include=/etc/zabbix/zabbix_agentd.d/*.conf #改為1為開啟自定義監控功能,默認該功能為關閉狀態,大概在333行
UnsafeUserParameters=1
重啟zabbix agent服務
systemctl restart zabbix-agent
通過配置 → 模板 → 導入 將模板導入到zabbix中
通過配置 → 主機 找到你的主機,把模板文件綁定到主機
隨后通過 監測 → 最新數據 查看監控指標