1. 程式人生 > >使用Kafka、Elasticsearch、Grafana搭建業務監控系統(一)技術選擇

使用Kafka、Elasticsearch、Grafana搭建業務監控系統(一)技術選擇

系列目錄

一、背景

為了更好的對埋點資料進行視覺化分析,專案組決定開發一套自己的監控系統

二、技術選擇

  1. Kafka or mq?

Kafka是LinkedIn開源的分散式釋出-訂閱訊息系統,目前歸屬於Apache定級專案。Kafka主要特點是基於Pull的模式來處理訊息消費,追求高吞吐量,一開始的目的就是用於日誌收集和傳輸。0.8版本開始支援複製,不支援事務,對訊息的重複、丟失、錯誤沒有嚴格要求,適合產生大量資料的網際網路服務的資料收集業務

RabbitMQ是使用Erlang語言開發的開源訊息佇列系統,基於AMQP協議來實現。AMQP的主要特徵是面向訊息、佇列、路由(包括點對點和釋出/訂閱)、可靠性、安全。AMQP協議更多用在企業系統內,對資料一致性、穩定性和可靠性要求很高的場景,對效能和吞吐量的要求還在其次。

各自的優劣勢很明顯,其中Kafka的吞吐量遠遠大於RabbitMQ,但是沒有事務。
由於線上埋點資料量很大,並且我們對於監控資料的精確性沒有非常嚴格的要求,所以毫無疑問,Kafka是該專案的首選。(另外大資料方提供的埋點資料就是儲存在Kafka的,我們還能用其他的嗎 哈哈

  1. Mysql or Elasticsearch?
    分析一下我們的業務場景:
    - 對於埋點資料來說,有太多太多的格式,並且隨時可能水平擴充套件。不適合關係型資料庫
    - 無事務要求
    - 海量資料,並且需要對多欄位模糊查詢

很明顯,這種場景下用mysql簡直是自尋死路,elasticsearch可以當做nosql使用,並且如果有特定的查詢需求還可以使用es的分詞外掛。

  1. Kibana or Grafana?

Kibana 是一款開源的資料分析和視覺化平臺,它是 Elastic Stack 成員之一,設計用於和 Elasticsearch 協作。您可以使用 Kibana 對 Elasticsearch 索引中的資料進行搜尋、檢視、互動操作。您可以很方便的利用圖表、表格及地圖對資料進行多元化的分析和呈現。

Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data driven culture.

在這裡插入圖片描述

在這裡插入圖片描述

其中Kibana 是和Es配套的(ELK),由於專案組採用的都是Grafana,所以這裡我並沒有對比兩者優劣。不過對於喜歡科技風格的我來說,Grafana還是大愛啊!

三、架構圖

技術框架選擇好後就是搭建專案了,java專案由spring-kafka監聽(多執行緒),spring-es寫入,中間穿插spring定時任務(建立索引、刪除索引),具體見下圖:
在這裡插入圖片描述

四、結語

相關推薦

使用KafkaElasticsearchGrafana搭建業務監控系統技術選擇

系列目錄 一、背景 為了更好的對埋點資料進行視覺化分析,專案組決定開發一套自己的監控系統 二、技術選擇 Kafka or mq? Kafka是LinkedIn開源的分散式釋出-訂閱訊息系統,目前歸屬於Apache定級專案。Kafka主要特點是基於Pull

使用KafkaElasticsearchGrafana搭建業務監控系統Elasticsearch

系列目錄 一、Elasticsearch是什麼 如果之前學習過ES基礎知識可以跳過,直接看spring整合ES Elasticsearch是一個基於Apache Lucene™的開源搜尋引擎。無論在開源還是專有領域,Lucene可以被認為是迄今為止最先進、效

Prometheus+Grafana搭建監控系統

基本概念Prometheus時間序列化資料庫,我的理解就是將資料打上標籤,以時間維度儲存。後面有機會在深入研究。GrafanaPrometheus中儲存的資料,通過Grafana很優美的展現出來。 好就講這麼多,多了我也不懂。。軟體安裝Prometheus官網下載(https://prometheus.io/

react搭建後臺管理系統

管理系 for menu port 文件中 segment 後臺管理 ans create 先準備工具:  yarn安裝:    npm install -g yarn #yarn也是包管理工具,只不過它構建效率更高    官方使用教程:https://yarnpkg.

輕松部署Zabbix集中監控系統

定制 fonts 登錄 yum disable base 日誌 onf pre Zabbix簡介 zabbix概念 zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供柔

Zabbix監控系統:初識Zabbix

一、Zabbix簡介 Zabbix 是由 Alexei Vladishev 開發的一種網路監視、管理系統,基於 Server-Client 架構。可用於監視各種網路服務、伺服器和網路機器等狀態。 使用各種 Database-end 如 MySQL, PostgreSQL, SQLite, O

vue從入門到女裝??:從零開始搭建後臺管理系統安裝框架

安裝及執行都是基於node的,不會node的可以自行百度,網上教程很多,也不難 專案效果預覽: demo1 demo2 原始碼下載 開始安裝框架: vue element-ui   注意如果報錯安裝失敗就重新安裝,不然雖然本地有element的依賴包但是可能會出一些奇怪的錯誤 另外element-ui

influxdb+grafana搭建業務監控平臺前篇-相關環境搭建

引言 在介紹具體的業務監控搭建之前還是現在介紹介紹influxdb和grafana。 時間序列資料庫 在開始介紹Influxdb之前先簡要介紹一下時間序列資料庫。 何謂時間序列資料庫? 什麼是時間序列資料庫,最簡單的定義就是資料格式裡包含Timestamp欄位的資料,比

Influxdb+collectd+grafana搭建現代化監控系統

在此採用centos+Influxdb+collectd+grafana搭建監控系統,特此說明下influxdb的0.9,0.10,0.11,0.12均不支援delect功能,0.8和0.13支援delect功能,其實最主要的區別是0.9版本和0.10版本,0.

C# ZXing.Net生成二維碼識別二維碼生成帶Logo的二維碼

tree bit 字符串 單位 images j2se lba 支付 .net 一.ZXing.Net 源代碼地址:http://zxingnet.codeplex.com/ 也可以使用Nuget包管理,添加如圖: 說明:ZXing是一個開源Java類庫用於解析多種格式的

jquery中appendprepend, before和after方法的區別

mod serve com oos 兄弟節點 sha pos 插入 5% 原文:http://blog.csdn.net/woosido123/article/details/64439490 在 jquery中append() 與 prepend()是在元素內插

Java中StringStringBuilderStringBuffer常用源碼分析及比較:String源碼分析

array string類 都是 epo sys 匹配字符串 bound 地址 簡單 String: 一、成員變量: /** The value is used for character storage. */ private final char value[

rsync文件同步工具介紹常用選項及rsync通過ssh同步

20180514一、rsync工具介紹(文件同步工具)1?實現a目錄保存到b目錄下,但是a目錄的數據一直在更新。用cp命令很浪費時間。這時我們就要用到rsync命令了。它可以實現增量拷貝,也支持遠程同步。本地拷貝:rsync -av /etc/passwd /tmp/1.txt遠程拷貝:rsync -av

聯盛德WIFI模組 山景語音Codec 智慧音箱開發板智慧語音玩具開發板 上手教程

新板子除錯步驟 接線如圖: 連線JLINK,開啟板子, 開啟keil工程:e:\work\智慧硬體\軟硬體\聯盛德-wifi模組\音訊AP8048c\MVs18_01_07\Examples\SpiFlash\SpiFlashExample.uvproj 之後點

沃趣微講堂 | PXCMGC&MGR原理與實踐對比

本期課程:PXC、MGC&MGR初相識 講師 | 羅小波·沃趣科技高階資料庫技術專家 出品 | 沃趣科技     七月份,波多老師線下作了一場題為“PXC、MGC&MGR原理與實踐對比”的精彩分享,整場下來,乾貨滿滿,現場的童鞋都聽得灰常

Zabbix監控平臺搭建部署與概述。

Zabbix監控平臺(一)搭建部署與概述 Zabbix監控平臺   一,Zabbix架構 zabbix 是一個基於 WEB 介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。zabbix 能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統

1224JMeterPostmanRequests介面測試經驗分享-POST請求

在分享這篇部落格前,吐槽下最近爬過的坑:你們是和我有仇嗎?是不是折磨我這個小白有快感? 因為是自學,也沒人帶,所以很簡單很基礎的事情,就得多看幾次;實踐時,體會多次【爬很久的坑】,才能用清楚,搞明白。爬坑雖然不爽,但爬過後會很喜悅。 (一)POST請求-application/x-www

Zabbix監控平臺搭建部署與概述

一、Zabbix架構 zabbix 是一個基於 WEB 介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。zabbix 能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。 Zabbix 的執行架構如下圖所示: 1.1

使用HAL庫STM32CubeMX和Keil 5開發入門教程:點亮盞LED燈NUCLEO-F411RE

本教程以點亮一盞LED燈為目的為大家演示用STM32CubeMX、Keil、ST-Link開發STM32程式的一般方法。 一、學習前的準備工作 硬體:一塊STM32開發板,一個ST-Link;(我使用的開發板是NUCLEO-F411RE) 軟體:裝好ST-

SpringCloud整合ElasticSearch,Logstash,Kibana,ELK,Kafka分散式日誌系統

ELK ElasticSearch介紹 在 《Elasticsearch : The Definitive Guide》裡,這樣介紹Elasticsearch,總的來說,Elasticsearch 是一個分散式的搜尋和分析引擎,可以用於全文檢索、結構化檢索和分析,並能