1. 程式人生 > >從零到日誌採集索引視覺化、監控報警、rpc trace跟蹤-架構介紹

從零到日誌採集索引視覺化、監控報警、rpc trace跟蹤-架構介紹

接下去的幾篇部落格將介紹如何從零開發出一套集零侵入的日誌採集、日誌索引及視覺化、基於日誌監控報警、基於日誌rpc trace跟蹤進行系統性能分析的系統,之後都會稱為監控中心繫統。經測試,該系統的採集以及處理延遲在2秒以內,基本上做到了實時,其中日誌採集模組在3臺pc機器上測試下來大概每秒能夠索引2.5w左右的日誌,並且能夠隨著機器的增加效能水平擴充套件,每秒能夠有效得處理50w+條的日誌。本篇作為第一篇將介紹下基礎的架構和使用元件。
  1. 元件
    1. log4j和logback
      我們專案中基本是採用的log4j或者logback作為日誌框架,log4j版本為1.2.17,logback版本為1.1.6(該版本未採用最新版本是由於logback最新版本和spring boot結合使用有bug,具體參見我以前的部落格:http://blog.csdn.net/JThink_/article/details/52513963),我們在log框架中自定義appender將日誌傳輸到下游的kafka,這樣可以確保對接方在對接的時候不需要多寫任何一行java或者scala程式碼,僅僅在log的配置檔案xml中加入一個appender
    2. kafka
      kafka作為高效能、高吞吐的訊息佇列來接受log框架send過來的日誌,從而不會block對接系統的執行,也不會影響對接系統的效能消耗,kafka的多消費group機制能夠很好的滿足我們採集、監控、rpc tracer等不同的消費方向
    3. es
      es作為分散式搜尋引擎來提供日誌的實時索引和視覺化工具,kafka中的日誌資料將會通過程式碼消費實時es進行索引
    4. zk
      zookeeper作為分散式協調系統,我們在這裡來追蹤對接系統的狀態(包括上下線以及日誌採集器的存活),以及在rpc trace跟蹤的時候作為rpc系統的註冊中心
    5. mysql
      儲存業務資料
    6. rabbitmq
      監控報警使用郵件和微信的方式,所以不能實時告警,大概每隔幾秒進行報警(該問題並不是監控中心不能實時採集到告警資料,而是由於採用的是郵件和微信方式報警,可以換其他穩定的報警方式實時報警)
  2. 架構圖

    架構圖是之前畫的,可能和之後的介紹中有稍許出入。
    1. App: 我們將java或者scala或者其他的基於jvm執行的程式抽象為App,所有app對接了監控中心將會通過kafka的appender進行send資料到kafka
    2. es-indexer-consume-group: kafka消費入es的消費組,負責讀取kafka的資料並批量bulk索引到es
    3. info-collect-consume-group: 埋點採集App特定資訊的kafka消費組(如:對接系統需要作為監控系統的過濾條件需要持久化的資料、監控資料、埋點異常資料等)
    4. log-backup-consume-group: 日誌備份的kafka消費組,防止日誌量過大需要刪除es中的資料,我們會將全量的資料同時備份到hdfs中
    5. business-group: 業務層面的消費組
    6. trace-group: rpc trace跟蹤的消費組
    7. es: 日誌儲存db,並建立相關索引
    8. zookeeper: app註冊中心
    9. monitor: 監控中心,監聽zookeeper註冊中心中相應的節點變化進行監控報警
    10. rabbitmq: 監控報警緩衝佇列
    11. alert: 具體報警手段,包括郵件和微信
    12. zues: 監控展示系統,包括實時日誌滾屏顯示、歷史日誌查詢檢索、應用系統註冊監控查詢、應用系統監控狀況查詢等服務
  3. 日誌es欄位

相關推薦

日誌採集索引視覺監控報警rpc trace跟蹤-分散式唯一ID生成

public class UniqueIdGen implements IdGen {    // 開始使用該演算法的時間為: 2017-01-01 00:00:00private static final long START_TIME = 1483200000000L;// 時間戳bit數,最多能支援到2

日誌採集索引視覺監控報警rpc trace跟蹤-架構介紹

接下去的幾篇部落格將介紹如何從零開發出一套集零侵入的日誌採集、日誌索引及視覺化、基於日誌監控報警、基於日誌rpc trace跟蹤進行系統性能分析的系統,之後都會稱為監控中心繫統。經測試,該系統的採集以及

日誌採集索引視覺監控報警rpc trace跟蹤-日誌索引

之前說到日誌事件的設計、如何埋點以及基於jvm的程式如何對接我們的系統,接下去我們說下日誌如何進行索引。通過前三篇部落格可以知道資料通過LOGGER.info等列印日誌的函式就可以存入kafka,所以我們對日誌建立索引只需要實時讀kafka寫入es,為了提高實時索引的速率,我

日誌採集索引視覺監控報警rpc trace跟蹤-系統上下線監控

public class AppChildrenChangeListener implements PathChildrenCacheListener {    private static final Logger LOGGER = LoggerFactory.getLogger(AppChildrenCh

2017開始學可視數據分析師就業課程_數據分析師課程

數據分析2017從零開始學可視化數據分析師就業課程學習地址:http://www.xuetuwuyou.com/course/182課程出自學途無憂網:http://www.xuetuwuyou.com本課程由風舞煙老師團隊出品。分9個課程,26章,共計324課時! 第一階段、數據分析理論工具基礎篇課程一、數

資料視覺的發展前景商業/職業前景?

歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 視覺化分析已經成為一項流行的業務,電商、金融、物流、政府等很多行業都在使用視覺化技術來支撐業務優化、戰略決策。然而,從應用與設計的角度來看,本人更願意談敏捷 BI 的概念。 敏捷 BI 就是以業務人員為中心,讓業務人員更理解業務,瞭解需求,可以

Modbus 到 Web 資料視覺之 WebSocket 實時訊息

前言   工業物聯網是一個範圍很大的概念,本文從資料視覺化的角度介紹了一個最小化的工業物聯網平臺,從 Modbus 資料採集到前端資料視覺化呈現的基本實現思路。這裡面主要涉及基於 Modbus 通訊規約的資料採集、後臺實時資料處理、前端實時資料接收、前端實時資料視覺化顯示。物聯網平臺架構主要參考了圖撲物聯工業

scrapydweb:實現 Scrapyd 伺服器叢集監控和互動,Scrapy 日誌分析和視覺

Scrapyd 伺服器叢集監控和互動 支援通過分組和過濾選中特定伺服器節點 一次點選,批量執行 Scrapy 日誌分析 統計資訊展示 爬蟲進度視覺化 關鍵日誌分類 支援所有 Scrapyd API Deploy project, Run Spider, Stop job List pr

iOS 到一搭建元件專案框架

隨著公司業務需求的不斷迭代發展,工程的程式碼量和業務邏輯也越來越多,原始的開發模式和架構已經無法滿足我們的業務發展速度了,這時我們就需要將原始專案進行一次重構大手術了。這時我們應該很清晰這次手術的動刀口在哪,就是之前的高度耦合的業務元件和功能元件,手術的目的就是將這些耦合拆分成互相獨立的各個元件。 工程

大資料視覺第二天——HTMLCSSJavaScriptDOMSVG

要想使用D3.js進行資料視覺化,不懂HTML、CSS肯定是不行的,D3本身由JavaScript封裝而成,另外D3中還用到了比較多的DOM和SVG方法。全部掌握了這些東西基本就是一個合格的前端工程師了,顯然將花費大量的精力和時間;我學習D3的目的主要是為了進行資料的視覺化,而不是進行Web前端頁面

WebAPi的視覺輸出模式(RabbitMQ訊息補償相關)——所有webapi似乎都缺失的一個功能

public class BaseApiController : ApiController { public class ViewModel { public string Content { get; set; }

資料結構-基於鄰接矩陣實現圖的遍歷視覺及使用FloydDijkstra演算法求解最短路徑(JavaScript實現)

使用 JavaScript 基於鄰接矩陣實現了圖的深度、廣度遍歷,以及 Floyd、Dijkstra 演算法求解最短路徑。另外使用 SVG 實現圖的遍歷視覺化。一、輸入首先,輸入資料主要有兩個,一個是存放節點名的陣列,另一個是存放邊物件的陣列。例如://存放圖結點的陣列 va

Linux-centos下安裝hue視覺以及與hdfshivehbase和mysql的整合

1. Hue概述及版本下載 1)概述     Hue是一個開源的Apache Hadoop UI系統,最早是由Cloudera Desktop演化而來,由Cloudera貢獻給開源社群,它是基於Python Web框架Django實現的。通過使用Hue我們可以在瀏覽器端的W

Opencv影象識別到精通(33)----moravec角點harris角點

一、角點     影象處理和與計算機視覺領域,興趣點(interest points),或稱作關鍵點(keypoints)、特徵點(feature points) 被大量用於解決物體識別,影象識別、影象匹配、視覺跟蹤、三維重建等一系列的問題。我們不再觀察整幅圖,而是選擇某些

大資料視覺之Nginx伺服器日誌分析及視覺展示(Nginx+flume+HDFS+Spark+Highcharts)

專案說明: 本專案為一個web程式,能夠利用大資料技術,對nginx伺服器的訪問日誌進行圖形化展示。當訪問此程式時,可以看到nginx日誌中統計出來的全天分時網站點選量等資訊的圖表展示。每條Nginx日誌的平均大小為250位元組左右,假設每天產生1億條訪問日誌

Python資料視覺:Matplotlib 直方圖箱線圖條形圖熱圖折線圖散點圖。。。

介紹       使用Python進行資料分析,資料的視覺化是資料分析結果最好的展示方式,這裡從Analytic Vidhya中找到的相關資料,進行一系列圖形的展示,從中得到更多的經驗。      

資料結構-基於鄰接表實現圖的遍歷視覺及使用FloydDijkstra演算法求解最短路徑(JavaScript實現)

使用 JavaScript 基於鄰接表實現了圖的深度、廣度遍歷,以及 Floyd、Dijkstra 演算法求解最短路徑。另外使用 SVG 實現圖的遍歷視覺化。<!DOCTYPE html> <html lang="en"> <head>

開始搭建Android元件框架

問題 在已經開發過幾個專案的童鞋,如果這時需要重新開發一個新專案,是否需要自己重新搭建框架呢,還是從老專案中拷貝貼上? 我們是否可以封裝一個底層的lib庫,這個底層的公共基礎庫 包括了一些第三方庫(如: okhttp, retrofit2, glide 等)的初始化及簡單的封裝和一些

Python拉勾網資料採集視覺

Python中文社群Python中文開發者的精神部落全文簡介本文是先採集拉勾網上面的資料,採集的

Caffe 例項筆記 1 CaffeNet訓練到分類及視覺引數特徵 微調

本文主要分四部分 1. 在命令列進行訓練 2. 使用pycaffe進行分類及特徵視覺化 3. 進行微調,將caffenet使用在圖片風格的預測上 1 使用caffeNet訓練自己的資料集 1.1 建立lmdb 使用對應的資料集建立lmd