摘要:監(jiān)控的參數(shù)提供哪些監(jiān)控參數(shù)下表是提供的監(jiān)控參數(shù)及其簡單釋義。用戶連接請求被處理,就會進入狀態(tài)。如何獲取性能監(jiān)控參數(shù)開源的會提供一個子網(wǎng)頁顯示前文提到的監(jiān)控參數(shù)。免費注冊免費使用,還能設置報警策略。
什么是 Nginx?
Nginx("engine-x")是一個 HTTP 和反向代理服務器,同時也是一個郵件代理服務器和通用的 TCP 代理服務器。作為一個免費開源的服務器,Nginx 具有高性能、穩(wěn)定和較低的資源占用的特點。它擁有豐富的特征集,同時配置也很簡單。
Nginx 是少數(shù)幾個可以解決 C10K 問題的服務器之一。不同于傳統(tǒng)服務器,它使用可擴展的時間驅(qū)動(異步)架構(gòu)替代線程來處理請求。尤為重要的是,該架構(gòu)占用負載下的內(nèi)存小,且可預測。即便不需要同時處理數(shù)千的網(wǎng)絡請求,你仍然能從Nginx 的高性能和低內(nèi)存占用中受益。從最小的VPS到大型集群服務器,Nginx 都能適用。
Nginx 還有一個商業(yè)版 Nginx Plus,功能更加豐富。
監(jiān)控 Nginx 的參數(shù) Nginx 提供哪些監(jiān)控參數(shù)下表是 Nginx 提供的監(jiān)控參數(shù)及其簡單釋義。
參數(shù)名稱 | 參數(shù)描述 |
---|---|
Active connections | 當前活躍的用戶連接(包含Waiting狀態(tài)) |
accepts | 接收到的用戶連接總數(shù) |
handled | Nginx處理的用戶連接總數(shù) |
requests | 用戶請求總數(shù) |
Reading | 當前連接中Nginx讀取請求首部的個數(shù) |
Writing | 當前連接中Nginx寫返回給用戶的個數(shù) |
Waiting | 當前沒有請求的活躍用戶連接數(shù) |
通過下面的圖,可以清晰的看到參數(shù)的具體意義和作用。
當用戶請求連接Nginx服務器時,accepts計數(shù)器會加一。且當服務器處理該連接請求時,handled計數(shù)器同樣會加一。一般而言,兩者的值是相等的,除非達到了某些資源極限(如worker_connection的限制)。
用戶連接請求被處理,就會進入 active 狀態(tài)。如果該連接沒有其他 request,則進入 waiting 的子狀態(tài);如果有 request,nginx 會讀取 request 的 header,計數(shù)器 request 加一,進入 reading 的子狀態(tài)。 reading 狀態(tài)持續(xù)時間非常短,header 被讀取后就會進入 writing 狀態(tài)。事實上,直到服務器將響應結(jié)果返回給用戶之前,該連接會一直保持 writing 狀態(tài)。所以說,writing 狀態(tài)一般會被長時間占用。
Nginx提供哪些監(jiān)控參數(shù)下表是Nginx Plus提供的主要監(jiān)控參數(shù)、說明以及和Nginx的差異。
參數(shù)名稱 | 參數(shù)描述 | 與Nginx差異 |
---|---|---|
Active | 當前活躍的用戶連接(不包含 Idel 狀態(tài)) | 等同 Active connections |
Accepted | 接收到的用戶連接總數(shù) | 等同 accepts |
Dropped | Nginx 丟棄的用戶連接總數(shù) | accepts - handled |
Idle | 當前沒有請求的活躍用戶連接數(shù) | 等同 Waiting |
Total | 用戶請求總數(shù) | 等同 requests |
Current(Requests) | 當前有請求的活躍用戶連接數(shù)(等同 Active) | Reading + Writing |
Current(Connections) | 當前在線用戶數(shù)(Active + Idle) | Reading + Writing + Waiting |
主要參數(shù)和開源的Nginx相比較,區(qū)別不大。主要就是換了名字,以及通過加減法的參數(shù)整合。同樣,通過下面的圖也能看清這些參數(shù)的作用。
具體運作和Nginx并無不同,故不贅述。當然,作為商業(yè)版,它提供的參數(shù)還有很多,可以在這里看。
怎么利用這些參數(shù)開源的 Nginx 提供的原始參數(shù)中,實時性的會比較有用,如 Active connections、Reading、Writing 以及 Waiting。這些數(shù)據(jù)能夠反映當前 Nginx 的負載情況,方便在服務器出現(xiàn)問題時及時發(fā)現(xiàn)問題。而另一些數(shù)據(jù)由于不是狀態(tài)量,Nginx 無法計算當前的量值而改做其統(tǒng)計數(shù),如 accepts、handled 和 requests。
對于維護網(wǎng)站人員,accepts、handled 和 requests 的統(tǒng)計值用處是不大的,值得參考的是短時間內(nèi)這三者數(shù)值的增量。這個短時間可以是一秒,如 accepts_per_second、handled_per_second 和 requests_per_second。一個簡單的做法就是每秒都去讀取這些參數(shù),返回一個和上一秒的差值就行。當然,handled_per_second 替換成 dropped_per_second=accepts_per_second-handled_per_second 就更完美了。
通過這七個參數(shù),就可以從連接到請求全方位的監(jiān)控起 Nginx 的運行狀態(tài)。為了方便檢測,對每次獲取的參數(shù)保留下來,然后按時間展現(xiàn)出來。下圖展示了 Nginx 在運行時的參考數(shù)據(jù)。
開源的 Nginx 會提供一個子網(wǎng)頁顯示前文提到的監(jiān)控參數(shù)。該網(wǎng)頁默認時不開啟的,需要開放 ngx_http_stub_status_module 來解鎖。默認該模塊是開放的,通過以下命令,可以快速確定該模塊是否已被開放。
nginx -V 2>&1 | grep -o with-http_stub_status_module
如過返回 with-http_stub_status_module,則說明該模塊已被開放,而什么都不返回的話就是沒有被開放。需要通過原碼構(gòu)建 Nginx 加上配置參數(shù) --with-http_stub_status_module:
./configure … --with-http_stub_status_module make sudo make install
以上步驟搞定后,還有需要一個配置 URL 來開啟 Nginx 狀態(tài)頁。打開你的網(wǎng)站對應 Nginx 的配置文件,添加以下修改:
server{ listen your-website-port; location /basic_status { stub_status; } }
如果 Nginx 版本低于1.7.5,則需要語法指令添加參數(shù)(任意參數(shù)):
server{ listen your-website-port; location /basic_status { stub_status on; } }
修改完成后,需要重新載入 Nginx,鍵入命令 nginx -s reload,然后就能在狀態(tài)頁(127.0.0.1:your-website-port/basic_status)看見你的監(jiān)控參數(shù)了。大概是這個樣子:
Active connections: 1 server accepts handled requests 38 38 38 Reading: 0 Writing: 1 Waiting: 0
Nginx Plus 和 Nginx 在前面的設置差不多。配置狀態(tài)頁時,需要在配置文件中加上 server 模塊:
server { listen your-website-port; location /status { status; } location = /status.html { } }
重載一下Nginx,你會在狀態(tài)頁(127.0.0.1:your-website-port/status.html)看到大概這個樣子:
順便安利一下,裝一個 Ci,就能看到前面關(guān)于 Nginx 基于時間的運行狀態(tài)的圖了。免費注冊免費使用,還能設置報警策略。具體,戳這里。
Cloud Insight 集監(jiān)控、管理、計算、協(xié)作、可視化于一身,幫助所有 IT 公司,減少在系統(tǒng)監(jiān)控上的人力和時間成本投入,讓運維工作更加高效、簡單。
本文系國內(nèi) ITOM 行業(yè)領(lǐng)軍企業(yè) OneAPM 工程師原創(chuàng)。想閱讀更多技術(shù)文章,請訪問 OneAPM 官方技術(shù)博客。
本文轉(zhuǎn)自 OneAPM 官方博客
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/39230.html
摘要:我會寫一些是后端技術(shù)前端工程相關(guān)的文章,偶爾會有一些大數(shù)據(jù)相關(guān),也會推薦一些好玩的東西。 showImg(https://segmentfault.com/img/remote/1460000006767498); Nginx作為所有HTTP請求的入口,是非常重要的一層。本文主要介紹如何利用 Nginx日志實時監(jiān)控每個業(yè)務的請求異常。? 這篇文章基于我之前的的一篇 《基于Lua+Kaf...
摘要:如何自建一個思路接入方案我們都知道訪問集群的服務需要接入。據(jù)我所知,接入的方案有種云廠商提供比如官方的實現(xiàn)第三方實現(xiàn)方案自建,比如使用這里重點記錄一下,如何自建一個的思路。控制中心是一個叫的程序,監(jiān)控對應的,數(shù)據(jù)代理是有組成。 如何自建一個k8s ingress 思路 ingress 接入方案 我們都知道訪問k8s 集群的服務需要ingress 接入。 據(jù)我所知,ingress 接入的...
摘要:用戶實例以下是用戶局域網(wǎng)內(nèi)采用代理已征得用戶同意,配置探針和探針監(jiān)控自己服務器組件和應用的文章,參考局域網(wǎng)無外網(wǎng)的機器使用的辦法,用戶的主要操作是首先配置文件,集成配置代理,通過監(jiān)控端口,的數(shù)據(jù)發(fā)送到,的數(shù)據(jù)發(fā)送到。 背景 隨著互聯(lián)網(wǎng)的發(fā)展,各種網(wǎng)絡攻擊手段也層出不窮,不管是大型企業(yè)還是中小企業(yè),隨時都有被攻擊的危險,因此很多公司都會采取各種手段來維護自己服務器安全,其中比較常見的是采...
摘要:是由淘寶網(wǎng)發(fā)起的服務器項目。回源監(jiān)控是內(nèi)容分發(fā)網(wǎng)絡的簡稱,其分發(fā)的內(nèi)容來自用戶源站,負責回源的模塊是最重要組成部分之一,使跨越單機的限制,完成網(wǎng)絡數(shù)據(jù)的接收處理和轉(zhuǎn)發(fā)。這部分主要介紹的一些調(diào)試技巧和回源資源監(jiān)控的內(nèi)容,以及相應的實例分享。 摘要: Tengine是由淘寶網(wǎng)發(fā)起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網(wǎng)站的需求,提供更強大的流量負載均衡能力、全站HTTPS...
閱讀 2227·2021-11-15 11:39
閱讀 982·2021-09-26 09:55
閱讀 924·2021-09-04 16:48
閱讀 2831·2021-08-12 13:23
閱讀 918·2021-07-30 15:30
閱讀 2454·2019-08-29 14:16
閱讀 885·2019-08-26 10:15
閱讀 525·2019-08-23 18:40