Zabbix5.0版本(監控Nginx+PHP服務狀態信息)

目錄

1.監控Nginx服務狀態信息

(1)通過Nginx監控模塊,監控Nginx的7種狀態

(2)開啟Nginx狀態模塊

(3)配置監控項

(4)創建模板

(5)用默認鍵值添加Nginx-status端口監控項,并配置觸發器

(6)基于模板創建圖形

(7)模板創建完畢后關聯被監控的主機

2.監控PHP服務狀態信息

(1)安裝PHP服務配置

(2)配置PHP狀態信息

(3)修改Nginx配置文件

(4)自定義監控項

(5)創建自定義PHP模板

(6)關聯模板到監控主機

(7)測試PHP訪問


這篇文章繼續給大家介紹zabbix監控,監控Nginx、PHP等服務,其實非常簡單,難點在于如何去取這個值,包括監控業務,難點在于思路是否清晰,思維是否活躍,如何去進行判斷是否有這個業務,并且業務正常運行。

1.監控Nginx服務狀態信息
(1)通過Nginx監控模塊,監控Nginx的7種狀態
Nginx 的狀態模塊展示了七種不同的狀態(四種計數器和三種狀態)。以下是這七種狀態的含義:
1. active:當前 Nginx 正在處理的連接數,包括等待請求處理或正在響應請求的連接數。
2. accepts:Nginx 啟動后已經接受的連接總數。
3. handled:Nginx 工作進程已成功處理的連接總數。與 accepts 計數器不同,此計數器可能會多個小于 accepts 數量,在某些情況下,客戶端可能已經斷開了連接而無法正常處理。
4. requests:已經接收到、處理并響應的請求數量,該值通常應與 handled 值相等。
5. reading:當前正在讀取客戶端請求頭部字段的連接數。
6. writing:當前正在向客戶端發送響應數據的連接數。
7. waiting:空閑 keep-alive 連接,既沒有讀也沒有寫。可以處理下一個請求的連接。
通過理解這些狀態可以幫助我們了解 Nginx 正在處理哪些連接,并且在調試和優化性能時非常有用。 當 active 連接數隨著來自客戶端的請求增加而增加時,可能需要考慮優化配置以確保足夠的性能水平和穩定性。
(2)開啟Nginx狀態模塊
[root@Web01 ~]# cat /etc/nginx/conf.d/status.conf
server {listen 88;location /nginx_status {stub_status;}
}
[root@Web01 ~]# systemctl restart nginx

(3)配置監控項
[root@Web01 ~]# curl -s 127.0.0.1:88/nginx_status
Active connections: 1 
server accepts handled requests4 4 3 
Reading: 0 Writing: 1 Waiting: 0

用awk以此取值,并設置為key

[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/nginx.conf
UserParameter=nginx.connections,curl -s 127.0.0.1:88/nginx_status|awk 'NR==1{print $NF}'
UserParameter=nginx.accepts,curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $1}'
UserParameter=nginx.handled,curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $2}'
UserParameter=nginx.requests,curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $3}'
UserParameter=nginx.Reading,curl -s 127.0.0.1:88/nginx_status|awk 'NR==4{print $2}'
UserParameter=nginx.Writing,curl -s 127.0.0.1:88/nginx_status|awk 'NR==4{print $4}'
UserParameter=nginx.Waiting,curl -s 127.0.0.1:88/nginx_status|awk 'NR==4{print $6}'
[root@Web01 ~]# systemctl restart zabbix-agent.service

測試取值

[root@Zabbix ~]# zabbix_get -s 172.16.1.7 -k nginx.connections
1
(4)創建模板

基于模板創建監控項,也可以先添加監控項在復制到模板

其他六項也同理,不再截圖

(5)用默認鍵值添加Nginx-status端口監控項,并配置觸發器

配置觸發器

(6)基于模板創建圖形

(7)模板創建完畢后關聯被監控的主機

Web02同理

2.監控PHP服務狀態信息
(1)安裝PHP服務配置

上傳PHP RPM包,安裝

(2)配置PHP狀態信息
[root@Web01 ~]# cat /etc/php-fpm.d/www.conf|grep pm.status_path
pm.status_path = /status
[root@Web01 ~]# systemctl restart php-fpm
(3)修改Nginx配置文件
[root@Web01 ~]# cat /etc/nginx/conf.d/status.conf
server {listen 88;location /nginx_status {stub_status;}location /status {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}
[root@Web01 ~]# systemctl restart nginx
[root@Web01 ~]# curl 127.0.0.1:88/status
pool:                 www                        #pool的名稱
process manager:      dynamic                    #進程管理方式,現今大多都為dynamic,不要使用static
start time:           16/May/2023:21:30:31 +0800 #php-fpm上次啟動的時間
start since:          133                        #php-fpm已運行了多少秒
accepted conn:        1                          #pool接受到的請求數
listen queue:         0                          #處于等待狀態中的連接數,如果不為0,需要增加php-fpm進程數
max listen queue:     0                          #從php-fpm啟動到現在處于等待連接的最大數量
listen queue len:     128                        #處于等待連接隊列的套接字大小
idle processes:       4                          #處于空閑狀態的進程數
active processes:     1                          #處于活動狀態的進程數
total processes:      5                          #進程總數
max active processes: 1                          #從php-fpm啟動到現在最多有幾個進程處于活動狀態
max children reached: 0                          #當php-fpm試圖啟動更多的children進程時,卻達到了進程數的限制,達到一次記錄一次,如果不為0,需要增加php-fpm pool進程的最大數
slow requests:        0                          #當啟用了php-fpm slow-log功能時,如果出現了php-fpm慢請求,這個計數器會增加,一般不當的mysql查詢會觸發這個值

(4)自定義監控項
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/php.conf
UserParameter=fpm.accepted,curl -s 127.0.0.1:88/status|grep accepted|awk '{print $NF}'
UserParameter=fpm.idle,curl -s 127.0.0.1:88/status|grep idle|awk '{print $NF}'
UserParameter=fpm.active,curl -s 127.0.0.1:88/status|grep ^active|awk '{print $NF}'
UserParameter=fpm.total,curl -s 127.0.0.1:88/status|grep total|awk '{print $NF}'
UserParameter=fpm.children,curl -s 127.0.0.1:88/status|grep children|awk '{print $NF}'
[root@Web01 ~]# systemctl restart zabbix-agent
[root@Web01 ~]# zabbix_agentd -p | grep ^fpm    #客戶端查看能否正常獲取值
zabbix_agentd [7902]: Warning: EnableRemoteCommands parameter is deprecated, use AllowKey=system.run[*] or DenyKey=system.run[*] instead
fpm.accepted                                  [t|56]
fpm.idle                                      [t|5]
fpm.active                                    [t|1]
fpm.total                                     [t|6]
fpm.children                                  [t|0][root@Zabbix ~]# zabbix_get -s 172.16.1.7 -k fpm.accepted    #服務端查看能否正常獲取客戶端的值
62
(5)創建自定義PHP模板

基于模板添加監控項

依次添加其他配置項,除自定義的外再多添加個端口監控,zabbix自帶的

基于模板配置觸發器

3分鐘之內受到限制次數的最大數等于5則報警?

基于模板配置圖形

(6)關聯模板到監控主機

(7)測試PHP訪問
[root@Web02 ~]# for i in `seq 100`;do ab -n2000 -c20 127.0.0.1:88/status;done

發現fpm連接數上漲?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64913.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64913.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64913.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python入門教程 —— 字符串

字符串介紹 字符串可以理解為一段普通的文本內容,在python里,使用引號來表示一個字符串,不同的引號表示的效果會有區別。 字符串表示方式 a = "Im Tom" # 一對雙引號 b = Tom said:"I am Tom" # 一對單引號c = Tom said:"I\m Tom" # 轉義…

AcWing練習題:差

讀取四個整數 A,B,C,D,并計算 (AB?CD)的值。 輸入格式 輸入共四行,第一行包含整數 A,第二行包含整數 B,第三行包含整數 C,第四行包含整數 D。 輸出格式 輸出格式為 DIFERENCA X,其中 X 為 (AB?CD) 的…

小程序添加購物車業務邏輯

數據庫設計 DTO設計 實現步驟 1 判斷當前加入購物車中的的商品是否已經存在了 2 如果已經存在 只需要將數量加一 3 如果不存在 插入一條購物車數據 4 判斷加到本次購物車的是菜品還是套餐 Impl代碼實現 Service public class ShoppingCartServiceImpl implements Shoppin…

如何在谷歌瀏覽器中使用自定義搜索快捷方式

在數字時代,瀏覽器已經成為我們日常生活中不可或缺的一部分。作為最常用的瀏覽器之一,谷歌瀏覽器憑借其簡潔的界面和強大的功能深受用戶喜愛。本文將詳細介紹如何自定義谷歌瀏覽器的快捷工具欄,幫助你更高效地使用這一工具。 一、如何找到谷歌…

Python 3 與 Python 2 的主要區別

文章目錄 1. 語法與關鍵字print 函數整數除法 2. 字符串處理默認字符串類型字符串格式化 3. 輸入函數4. 迭代器和生成器range 函數map, filter, zip 5. 標準庫變化urllib 模塊configparser 模塊 6. 異常處理7. 移除的功能8. 其他重要改進數據庫操作多線程與并發類型注解 9. 總結…

關于IDE的相關知識之二【插件推薦】

成長路上不孤單😊😊😊😊😊😊 【14后😊///計算機愛好者😊///持續分享所學😊///如有需要歡迎收藏轉發///😊】 今日分享關于ide插件推薦的相關內容&#xff01…

如何獲取穩定高效的動態代理?

在數據采集的領域,動態代理IP是我們探索網絡世界的小助手,它不僅幫助我們高效地收集信息,還能在保護數據安全方面發揮重要作用。但如何在眾多選擇中找到最適合的那個——即穩定且高效的動態代理也是一大難題。 明確你的需求 首先&#xff0…

基于微信小程序的校園點餐平臺的設計與實現(源碼+SQL+LW+部署講解)

文章目錄 摘 要1. 第1章 選題背景及研究意義1.1 選題背景1.2 研究意義1.3 論文結構安排 2. 第2章 相關開發技術2.1 前端技術2.2 后端技術2.3 數據庫技術 3. 第3章 可行性及需求分析3.1 可行性分析3.2 系統需求分析 4. 第4章 系統概要設計4.1 系統功能模塊設計4.2 數據庫設計 5.…

原生js封裝ajax請求以及css實現提示效果和禁止點擊效果

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0,user-scalableno"><title>本地模式網絡切換</title>&l…

Pytorch的自動求導模塊

文章目錄 torch.autograd.backward()基本用法非標量張量的反向傳播保留計算圖指定輸入張量高階梯度計算 與 y.backward() 的區別torch.autograd.grad()基本用法非標量張量的梯度高階梯度計算多輸入、多輸出的梯度計算未使用的輸入張量保留計算圖 與 backward() 的區別 torch.au…

Mac OS

本文來自智譜清言 ------ Mac OS&#xff08;現稱為macOS&#xff09;是蘋果公司開發和銷售的操作系統&#xff0c;自1984年推出以來&#xff0c;它已經經歷了多次重大的演變和發展。 起源&#xff1a;Mac OS 1.0的誕生 - 1984年&#xff0c;蘋果發布了Macintosh計算機&#…

spring中使用@Validated,什么是JSR 303數據校驗,spring boot中怎么使用數據校驗

文章目錄 一、JSR 303后臺數據校驗1.1 什么是 JSR303&#xff1f;1.2 為什么使用 JSR 303&#xff1f; 二、Spring Boot 中使用數據校驗2.1 基本注解校驗2.1.1 使用步驟2.1.2 舉例Valid注解全局統一異常處理 2.2 分組校驗2.2.1 使用步驟2.2.2 舉例Validated注解Validated和Vali…

ubuntu常用快捷鍵和變量記錄

alias b‘cd …/’ alias bb‘cd …/…/’ alias bbb‘cd …/…/…/’ alias bbbb‘cd …/…/…/…/’ alias bbbbb‘cd …/…/…/…/…/’ alias bbbbbb‘cd …/…/…/…/…/…/’ alias apkinfo‘aapt dump badging’ alias npp‘notepad-plus-plus’ export ANDROID_HOME/h…

AWS S3文件存儲工具類

pom依賴 <!--aws-s3--> <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-s3</artifactId><version>1.12.95</version></dependency>S3Utils import cn.hutool.core.util.ZipUtil; import com.a…

【SOC 芯片設計 DFT 學習專欄 -- 測試向量生成 ATPG (Automatic Test Pattern Generation) 】

文章目錄 OverviewATPG 的基本功能ATPG 的工作流程ATPG 應用場景示例示例 1&#xff1a;檢測單個信號的 Stuck-at Fault示例 2&#xff1a;針對 Transition Fault 的 ATPG ATPG 工具與常用工具鏈ATPG 優化與挑戰 Overview 本文主要介紹 DFT scan 中的 ATPG 功能。在 DFT (Desi…

2024 高通邊緣智能創新應用大賽智能邊緣計算賽道冠軍方案解讀

2024 高通邊緣智能創新應用大賽聚焦不同細分領域的邊緣智能創新應用落地&#xff0c;共設立三大熱門領域賽道——工業智能質檢賽道、智能邊緣計算賽道和智能機器人賽道。本文為智能邊緣計算賽道冠軍項目《端側大模型智能翻譯機》的開發思路與成果分享。 賽題要求 聚焦邊緣智能…

【Python運維】用Python和Ansible實現高效的自動化服務器配置管理

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 隨著云計算和大規模數據中心的興起,自動化配置管理已經成為現代IT運維中不可或缺的一部分。通過自動化,企業可以大幅提高效率,降低人為錯…

微信小程序獲取后端數據

在小程序中獲取后端接口數據 通常可以使用 wx.request 方法&#xff0c;以下是一個基本示例&#xff1a; // pages/index/index.js Page({data: {// 用于存儲后端返回的數據resultData: [] },onLoad() {this.fetchData();},fetchData() {wx.request({url: https://your-backe…

應用架構模式-總體思路

采用引導式設計方法&#xff1a;以企業級架構為指導&#xff0c;形成較為齊全的規范指引。在實踐中總結重要設計形成決策要點&#xff0c;一個決策要點對應一個設計模式。自底向上總結采用該設計模式的必備條件&#xff0c;將之轉化通過簡單需求分析就能得到的業務特點&#xf…

【數據結構】雙向循環鏈表的使用

雙向循環鏈表的使用 1.雙向循環鏈表節點設計2.初始化雙向循環鏈表-->定義結構體變量 創建頭節點&#xff08;1&#xff09;示例代碼&#xff1a;&#xff08;2&#xff09;圖示 3.雙向循環鏈表節點頭插&#xff08;1&#xff09;示例代碼&#xff1a;&#xff08;2&#xff…