Nginx虛擬主機流量狀態(tài)模塊(nginx-module-vts)使用說明文檔(二)

前面的博文 Nginx安裝士败,開箱即用?講了NG的安裝褥伴,裝完NG谅将,為了拿到各種狀態(tài)指標,就要對NG做監(jiān)控重慢。
Github 2.3k的開源項目nginx-module-vts沒準真是你需求的饥臂。
鏈接數(shù),qps似踱,1xx隅熙、2xx,、3xx核芽、4xx囚戚、5xx的響應數(shù),響應耗時轧简,響應時間分布驰坊,訪問用戶國家分布;甚至是基于各種狀態(tài)的流量控制統(tǒng)統(tǒng)能滿足你的需求哮独。
nginx-module-vts具體怎么用拳芙?我們還是從官方文檔開始擼吧假勿,還是英文的,那就翻譯一下吧态鳖。
內(nèi)容有點長转培,你看到的文檔會四篇文檔的方式分別出現(xiàn)。這里是第二篇浆竭,第一篇你可以點這里查看浸须。

Nginx虛擬主機流量狀態(tài)模塊

目錄

9、管控指令(Control)

control指令能夠通過查詢字符串重置或刪除流量區(qū)域顺囊。
該請求以JSON文檔響應肌索。

  • URI 語法
    • /{status_uri}/control?cmd={command}&group={group}&zone={name}
http {

    geoip_country /usr/share/GeoIP/GeoIP.dat;

    vhost_traffic_status_zone;
    vhost_traffic_status_filter_by_set_key $geoip_country_code country::*;

    ...

    server {

        server_name example.org;

        ...

        vhost_traffic_status_filter_by_set_key $geoip_country_code country::$server_name;

        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
}

如果設置如上,則control的uri類似于example.org/status/control特碳。

可用的請求參數(shù)如下:

  • cmd=<status|reset|delete>
    • status
      • 它將流量區(qū)域(zones)的狀態(tài)返回為json格式诚亚,如status/format/json
    • reset
      • 重置流量區(qū)域(zones)而不刪除共享中的節(jié)點(nodes)午乓。
    • delete
      • 刪除共享內(nèi)存中的流量區(qū)域(zones)站宗。當重新請求時重新創(chuàng)建時。
  • group=<server|filter|upstream@alone|upstream@group|cache|*>
    • server
    • filter
    • upstream@alone
    • upstream@group
    • cache
    • *
  • zone=name
    • server
      • name
    • filter
      • filter_group@name
    • upstream@group
      • upstream_group@name
    • upstream@alone
      • @name
    • cache
      • name

動態(tài)獲取流量區(qū)域(zones)狀態(tài)

status/format/json相似益愈,只是它可以獲得每個區(qū)域梢灭。

獲取全部區(qū)域

  • status/format/json完全相同。
    • /status/control?cmd=status&group=*

獲取組區(qū)域

  • mainZones
    • /status/control?cmd=status&group=server&zone=::main
  • serverZones
    • /status/control?cmd=status&group=server&zone=*
  • filterZones
    • /status/control?cmd=status&group=filter&zone=*
  • upstreamZones
    • /status/control?cmd=status&group=upstream@group&zone=*
  • upstreamZones::nogroups
    • /status/control?cmd=status&group=upstream@alone&zone=*
  • cacheZones
    • /status/control?cmd=status&group=cache&zone=*

mainZones中的狀態(tài)值蒸其,包括hostName敏释、nginxVersionloadMsec摸袁、nowMsec钥顽、connections

獲取每個區(qū)域

  • single zone in serverZones
    • /status/control?cmd=status&group=server&zone=name
  • single zone in filterZones
    • /status/control?cmd=status&group=filter&zone=filter_group@name
  • single zone in upstreamZones
    • /status/control?cmd=status&group=upstream@group&zone=upstream_group@name
  • single zone in upstreamZones::nogroups
    • /status/control?cmd=status&group=upstream@alone&zone=name
  • single zone in cacheZones
    • /status/control?cmd=status&group=cache&zone=name

動態(tài)重置流量區(qū)域

將指定區(qū)域的值重置為0但惶。

重置全部分區(qū)

  • /status/control?cmd=reset&group=*

重置組區(qū)域

  • serverZones
    • /status/control?cmd=reset&group=server&zone=*
  • filterZones
    • /status/control?cmd=reset&group=filter&zone=*
  • upstreamZones
    • /status/control?cmd=reset&group=upstream@group&zone=*
  • upstreamZones::nogroups
    • /status/control?cmd=reset&group=upstream@alone&zone=*
  • cacheZones
    • /status/control?cmd=reset&group=cache&zone=*

重置每個分區(qū)

  • single zone in serverZones
    • /status/control?cmd=reset&group=server&zone=name
  • single zone in filterZones
    • /status/control?cmd=reset&group=filter&zone=filter_group@name
  • single zone in upstreamZones
    • /status/control?cmd=reset&group=upstream@group&zone=upstream_group@name
  • single zone in upstreamZones::nogroups
    • /status/control?cmd=reset&group=upstream@alone&zone=name
  • single zone in cacheZones
    • /status/control?cmd=reset&group=cache&zone=name

動態(tài)刪除流量區(qū)域

刪除共享內(nèi)存中指定的區(qū)域耳鸯。

刪除全部分區(qū)

  • /status/control?cmd=delete&group=*

刪除組分區(qū)

  • serverZones
    • /status/control?cmd=delete&group=server&zone=*
  • filterZones
    • /status/control?cmd=delete&group=filter&zone=*
  • upstreamZones
    • /status/control?cmd=delete&group=upstream@group&zone=*
  • upstreamZones::nogroups
    • /status/control?cmd=delete&group=upstream@alone&zone=*
  • cacheZones
    • /status/control?cmd=delete&group=cache&zone=*

刪除每個分區(qū)

  • single zone in serverZones
    • /status/control?cmd=delete&group=server&zone=name
  • single zone in filterZones
    • /status/control?cmd=delete&group=filter&zone=filter_group@name
  • single zone in upstreamZones
    • /status/control?cmd=delete&group=upstream@group&zone=upstream_group@name
  • single zone in upstreamZones::nogroups
    • /status/control?cmd=delete&group=upstream@alone&zone=name
  • single zone in cacheZones
    • /status/control?cmd=delete&group=cache&zone=name

10湿蛔、設置指令(Set)

可以使用vhost_traffic_status_set_by_filter指令分別獲取nginx配置中的狀態(tài)值膀曾。
可以獲取幾乎所有狀態(tài)值,并將獲得的值存儲在用戶定義的變量(第一個參數(shù))中阳啥。

  • 指令語法
    • vhost_traffic_status_set_by_filter $variable group/zone/name
http {

    geoip_country /usr/share/GeoIP/GeoIP.dat;

    vhost_traffic_status_zone;
    vhost_traffic_status_filter_by_set_key $geoip_country_code country::*;

    ...
    upstream backend {
        10.10.10.11:80;
        10.10.10.12:80;
    }

    server {

        server_name example.org;

        ...

        vhost_traffic_status_filter_by_set_key $geoip_country_code country::$server_name;

        vhost_traffic_status_set_by_filter $requestCounter server/example.org/requestCounter;
        vhost_traffic_status_set_by_filter $requestCounterKR filter/country::example.org@KR/requestCounter;

        location /backend {
            vhost_traffic_status_set_by_filter $requestCounterB1 upstream@group/backend@10.10.10.11:80/requestCounter;
            proxy_pass http://backend;
        }
    }
}

以上設置如下:

  • $requestCounter
    • serverZones -> example.org -> requestCounter
  • $requestCounterKR
    • filterZones -> country::example.org -> KR -> requestCounter
  • $requestCounterB1
    • upstreamZones -> backend -> 10.0.10.11:80 -> requestCounter

請參見vhost_traffic_status_set_by_filter指令以了解詳細用法添谊。

11、JSON字段說明

以下狀態(tài)信息以JSON格式提供:

狀態(tài)中使用的Json

/{status_uri}/format/json

/{status_uri}/control?cmd=status&...

  • hostName
    • 主機名察迟。
  • nginxVersion
    • nginx的版本斩狱。
  • loadMsec
    • 以毫秒為單位的處理時間耳高。
  • nowMsec
    • 以毫秒為單位的當前時間
  • connections
    • active
      • 當前活動的客戶端連接數(shù)。
    • reading
      • 讀取客戶端連接的總數(shù)所踊。
    • writing
      • 寫入客戶端連接的總數(shù)泌枪。
    • waiting
      • 正在等待的客戶端連接總數(shù)。
    • accepted
      • 接受的客戶端連接總數(shù)秕岛。
    • handled
      • 已處理的客戶端連接總數(shù)
    • requests
      • 請求請求的客戶端連接總數(shù)碌燕。
  • sharedZones
    • name
      • 配置中指定的共享內(nèi)存的名稱。(默認值為:vhost_traffic_status)
    • maxSize
      • 配置中指定的共享內(nèi)存的最大大小的限制继薛。
    • usedSize
      • 共享內(nèi)存的當前大小修壕。
    • usedNode
      • 共享內(nèi)存中當前使用的節(jié)點數(shù)《艨迹可以通過以下公式獲得一個節(jié)點的近似大写瑞:(usedSize / usedNode
  • serverZones
    • requestCounter
      • 從客戶端接收的客戶端請求總數(shù)。
    • inBytes
      • 從客戶端接收的總字節(jié)數(shù)灌具。
    • outBytes
      • 發(fā)送到客戶端的總字節(jié)數(shù)青团。
    • responses
      • 1xx, 2xx, 3xx, 4xx, 5xx
        • 狀態(tài)代碼為1xx、2xx咖楣、3xx壶冒、4xx和5xx的響應數(shù)。
      • miss
        • 未命中的緩存數(shù)截歉。
      • bypass
        • 繞過緩存旁路數(shù)胖腾。
      • expired
        • 過期的緩存數(shù)。
      • stale
        • 失效緩存的數(shù)量瘪松。
      • updating
        • 緩存更新的次數(shù)咸作。
      • revalidated
        • 重新驗證的緩存數(shù)。
      • hit
        • 緩存命中數(shù)宵睦。
      • scarce
        • 未達緩存要求的請求次數(shù)记罚。
    • requestMsecCounter
      • 累積的請求處理時間(毫秒)。
    • requestMsec
      • 請求處理時間的平均值(毫秒)壳嚎。
    • requestMsecs
      • times
        • 請求處理時間的時間(毫秒)桐智。
      • msecs
        • 請求處理時間的時間(毫秒)。
    • requestBuckets
      • msecs
        • vhost_traffic_status_histogram_buckets指令設置的柱狀圖的桶的值.
      • counters
        • 每個存儲桶段值大于或等于對應請求處理時間的累積值烟馅。
  • filterZones
    • 它提供了與serverZones相同的字段说庭,只是包含了組名。
  • upstreamZones
    • server
      • server地址郑趁。
    • requestCounter
      • 轉(zhuǎn)發(fā)到此服務器的客戶端連接總數(shù)刊驴。
    • inBytes
      • 從該服務器接收的總字節(jié)數(shù)。
    • outBytes
      • 發(fā)送到此服務器的總字節(jié)數(shù)。
    • responses
      • 1xx, 2xx, 3xx, 4xx, 5xx
        • 狀態(tài)代碼為1xx捆憎、2xx舅柜、3xx、4xx和5xx的響應數(shù)躲惰。
    • requestMsecCounter
      • 包括upstream在內(nèi)的累計請求處理時間數(shù)(毫秒)致份。
    • requestMsec
      • 包括upstream在內(nèi)請求處理時間的平均毫秒數(shù)。
    • requestMsecs
      • times
        • 請求處理時間的時間(毫秒)础拨。
      • msecs
        • 包括upstream在內(nèi)請求處理時間的時間(毫秒)知举。
    • requestBuckets
      • msecs
        • vhost_traffic_status_histogram_buckets指令設置的直方圖的bucket值。
      • counters
        • 每個存儲桶段值大于或等于對應請求處理時間(包括上游)的累積值太伊。
    • responseMsecCounter
      • 僅upstream響應處理時間累加值(毫秒)雇锡。
    • responseMsec
      • 僅upstream響應處理時間平均值(毫秒)。
    • responseMsecs
      • times
        • 請求處理時間(毫秒)僚焦。
      • msecs
        • 僅upstream響應處理時間平均值(毫秒)锰提。
    • responseBuckets
      • msecs
        • vhost_traffic_status_histogram_buckets指令設置的柱狀圖的存儲桶值。
      • counters
        • 僅upstream響應處理時間大于或等于每個存儲桶值的累計次數(shù)
    • weight
      • server的當前的weight設置芳悲。
    • maxFails
      • server的當前的max_fails設置立肘。
    • failTimeout
      • server的當前的fail_timeout設置。
    • backup
      • server的當前的backup設置名扛。
    • down
      • 服務器的當前down設置谅年。
        基本上,這只是ngx_http_upstream_module的server關閉的標記(例如server backend3.example.com down)肮韧,不是實際的upstream狀態(tài)融蹂。
        如果啟用了上游區(qū)域指令,它將變?yōu)閷嶋H狀態(tài)弄企。
  • cacheZones
    • maxSize
      • 配置中指定的最大緩存大小限制超燃。
    • usedSize
      • 當前緩存的大小。
    • inBytes
      • 從緩存接收的字節(jié)總數(shù)拘领。
    • outBytes
      • 從緩存發(fā)送的字節(jié)總數(shù)意乓。
    • responses
      • miss
        • 未命中的緩存數(shù)。
      • bypass
        • 繞過緩存旁路數(shù)约素。
      • expired
        • 過期的緩存數(shù)届良。
      • stale
        • 失效緩存的數(shù)量。
      • updating
        • 緩存更新的次數(shù)圣猎。
      • revalidated
        • 重新驗證的緩存數(shù)士葫。
      • hit
        • 緩存命中數(shù)。
      • scarce
        • 未達緩存要求的請求次數(shù)样漆。

Control中使用的Json

/{status_uri}/control?cmd=reset&...

/{status_uri}/control?cmd=delete&...

  • processingReturn
    • The result of true or false.
  • processingCommandString
    • The requested command string.
  • processingGroupString
    • The requested group string.
  • processingZoneString
    • The requested zone string.
  • processingCounts
    • The actual processing number.

凋謝的不是花为障,萎蔫的是時間晦闰;星辰大海放祟,點滴為途鳍怨。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市跪妥,隨后出現(xiàn)的幾起案子鞋喇,更是在濱河造成了極大的恐慌,老刑警劉巖眉撵,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侦香,死亡現(xiàn)場離奇詭異,居然都是意外死亡纽疟,警方通過查閱死者的電腦和手機罐韩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來污朽,“玉大人散吵,你說我怎么就攤上這事◇∷粒” “怎么了矾睦?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長炎功。 經(jīng)常有香客問我枚冗,道長,這世上最難降的妖魔是什么蛇损? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任赁温,我火速辦了婚禮,結果婚禮上淤齐,老公的妹妹穿的比我還像新娘束世。我一直安慰自己,他們只是感情好床玻,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布毁涉。 她就那樣靜靜地躺著,像睡著了一般锈死。 火紅的嫁衣襯著肌膚如雪贫堰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天待牵,我揣著相機與錄音其屏,去河邊找鬼。 笑死缨该,一個胖子當著我的面吹牛偎行,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蛤袒,長吁一口氣:“原來是場噩夢啊……” “哼熄云!你這毒婦竟也來了?” 一聲冷哼從身側響起妙真,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缴允,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后珍德,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體练般,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年锈候,在試婚紗的時候發(fā)現(xiàn)自己被綠了薄料。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡泵琳,死狀恐怖都办,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情虑稼,我是刑警寧澤琳钉,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站蛛倦,受9級特大地震影響歌懒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜溯壶,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一及皂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧且改,春花似錦验烧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至慨蓝,卻和暖如春感混,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背礼烈。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工弧满, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人此熬。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓庭呜,卻偏偏與公主長得像滑进,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子募谎,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359