国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于Nginx日志的異常監控策略

meislzhua / 3636人閱讀

摘要:我會寫一些是后端技術前端工程相關的文章,偶爾會有一些大數據相關,也會推薦一些好玩的東西。

Nginx作為所有HTTP請求的入口,是非常重要的一層。本文主要介紹如何利用 Nginx日志實時監控每個業務的請求異常。?

這篇文章基于我之前的的一篇 《基于Lua+Kafka+Heka的Nginx Log實時監控系統》 整理而來。


你可以掃描文章末尾的二維碼關注我的關注我的公眾號,內容大多會是后端技術、前端工程、DevOps,偶爾會有一些大數據相關,會推薦一些好玩的東西。希望你會喜歡~


Nginx 由于其出色的性能,在互聯網中被廣泛應用,它通常會作為 HTTP 接入層負責分流及靜態文件處理。因此,每天會產生大量的日志,而這些日志是可以產生很多價值的,比如用來做用戶行為分析、服務性能質量分析,以及本文要介紹的異常監控。
一條訪問日志通常會記錄用戶請求來源、目標資源、設備信息、響應狀態等,這里主要關注異常的響應狀態碼如500,另外一個是upstream_response_time,它反映了后端服務的響應速度。所以,這里主要是做兩件事情:1. 監控錯誤;2. 監控慢的響應。最終的目標是要監測到哪個模塊出了什么異常,問題出現在哪臺機器上。

小流量場景的應對方案

我先假設目前只有一個 Nginx 節點且QPS 不高,不用太考慮性能問題,那么最簡單的做法是寫個腳本每分鐘計算一下500狀態碼的數量,超過預設閥值則發送告警郵件,郵件內容要盡量詳細,比如模塊名、錯誤數量、告警級別等,并且把異常的日志輸出到另外一份文件方便排查。慢響應的監控同理,根據 upstream_response_time 計算出慢的數量,以及平均值。

大流量場景的應對方案

以上的做法基本夠一些小流量場景使用,但是當單節點無法滿足需求及遇到大流量時,這種方案就會有些吃力了,比如性能上,比如指標的聚合計算。針對新的應對方案,我簡單畫了一張圖:

這個方案中自下而上依次是 Nginx集群 -> 日志采集 -> 消息隊列 -> 指標計算與輸出 -> 可視化 。下面我分別介紹一下各階段的做法。

日志采集

可選擇的工具比較多,比如 logstash、flume 等,我推薦使用 lua-resty-kafka 模塊編寫Lua擴展將數據按照一定格式拼接后寫入消息隊列。而且也完全可以關掉 Nginx 本身的日志開關,減少磁盤消耗。

消息隊列

可以選擇 Redis 或者 Kafka,主要取決于你們是否需要對日志做其它的利用。Redis 輕量級一些,Kafka的優勢是高吞吐量、分布式架構, 并且除了做異常監控,還可以將數據放到 Hadoop/離線數據倉庫中做用戶行為分析。

異常監控計算

這一步其實和最開始的簡單方案的類似,需要實現指標計算、告警發送和異常數據輸出保存。如果日志采集時使用了logstash,那么這一步也推薦使用logstash保持一致,具體做法我就不多說了,看官方文檔吧。但如果是使用Lua擴展采集的自定義格式數據,我推薦使用Heka來做。Heka使用Go語言編寫,性能不錯,內置豐富的插件可以滿足大部分的需求。若不滿足需求,可以使用Go或者Lua自行開發擴展。在Filter階段做指標計算,有錯誤時向Heka消息流中寫入告警消息,SMTPOuter匹配到告警消息后通過自定義的Encoder定制好郵件內容后發送,使用ElasticSearchOutput匹配異常數據寫入ES節點。

可視化

前面使用Message Matcher Syntax匹配異常數據寫入到Elasticsearch后, 搭建一個Kibana。這樣在收到告警郵件后,就可以進入Kibana后臺查看異常的Log。還可以定制一些圖表以查看系統的錯誤趨勢情況。

其它改進

我建議不要直接使用 Heka 發送郵件,不然可能會遇到郵件轟炸。可以通過 HTTP 接口將告警消息寫到另外一個服務,在那里做一些告警策略和頻率控制,以及恢復檢查。

需要對 Heka 進程監控,支持自動重啟,不然進程掛了都不知道;

總結

這個方案的主要開發點在Nginx Lua擴展和 Heka 的擴展。Nginx Lua 相對簡單些,然后就是熟悉Heka的整個消息處理的流程和機制,以及如何開發插件。另一個比較坑的是Heka的錯誤提示不全,而且調試不方便,有時完全靠猜,不過好在它本身并沒有多復雜,有些問題看一看源代碼就明白了。


微信掃描二維碼,關注我。

我會寫一些是后端技術、前端工程、DevOps相關的文章,偶爾會有一些大數據相關,也會推薦一些好玩的東西。希望你會喜歡~

一切,源于喜歡。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39252.html

相關文章

  • Nginx

    摘要:此外,其也能夠提供強大的反向代理功能。是由為俄羅斯訪問量第二的站點開發的,第一個公開版本發布于年月日。 keepalived+nginx 實現高可用雙機熱備 + 負載均衡架構 1 準備4個ubuntu16.04虛擬機(啟用網卡二并使用橋接模式):A服務器:192.168.0.103 主B服務器:192.168.0.104 主(備) 前端工程師學習 Nginx ...

    syoya 評論0 收藏0
  • 基于Lua+Kafka+HekaNginx Log實時監控系統

    摘要:目的錯誤碼告警和超時告警超時告警數據分析關于錯誤和超時監控有一點要考慮的是收到告警時,要能夠快速知道是哪個后端服務節點出現了問題。關于消息隊列的選擇,前面已經提到我們已有集群就直接拿來用了。 背景 在我們的系統架構中,Nginx作為所有HTTP請求的入口,是非常重要的一層。每天產生大量的Nginx Access Log,閑置在硬盤上實在是太浪費資源了。所以,能不能把Nginx日志利用起...

    Loong_T 評論0 收藏0
  • 深度解析Tengine調試與資源監控方法論

    摘要:是由淘寶網發起的服務器項目。回源監控是內容分發網絡的簡稱,其分發的內容來自用戶源站,負責回源的模塊是最重要組成部分之一,使跨越單機的限制,完成網絡數據的接收處理和轉發。這部分主要介紹的一些調試技巧和回源資源監控的內容,以及相應的實例分享。 摘要: Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,提供更強大的流量負載均衡能力、全站HTTPS...

    everfight 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<