EFK日誌蒐集demo
以前的一些東西整理下。
E:Elasticsearch
F:Flume
K:Kafka
Flume是一個分散式的日誌聚合收集工具,可以從多個且不同型別的日誌源頭收集日誌。Flume的模型如下:
Source代表資料的源頭,channel暫存資料,sink為資料的流向。如下:
多個flume代理的情況下,資料可以匯聚到同一個地方,如下:
資料量多的時候,可能終端的資料處理壓力比較大,為了平衡資料生產的速度和處理速度,最好在資料生產和資料處理之間增加一個緩衝,為此使用Kafka。
Apache Kafka是一種分散式釋出-訂閱訊息系統。
Kafka的設計初衷是希望作為一個統一的資訊收集平臺,能夠實時的收集反饋資訊,並需要能夠支撐較大的資料量,且具備良好的容錯能力。
Kafka是一個典型的生產者消費者模型,生產者消費者模型的主要功能就是提供緩衝,平衡資料生產和使用的速率。
Kafka的模型如下:
所以Flume負責收集資料,Kafka作為緩衝,消費者從kafka中取資料。就像是多個水管同時向池子中注水,水管從哪取水可以自己決定;同時也有多個水管從池子裡取水,水要流向哪裡也可以自己決定。
Elasticsearch是一個基於Lucene的搜尋伺服器,提供了分散式的全文搜尋引擎,傳統的資料庫如果資料在PB(1024TB)級別的,搜尋會非常慢,而Elasticsearch支援PB級別的搜尋。
Elasticsearch的幾個概念:
Cluster:叢集,一個叢集下有多個節點。
Node:相同的叢集名的節點是一個叢集。
Index:Elasticsearch用來儲存資料的邏輯區域。
Document:文件,資料實體。
Document Type:文件的型別。
所以可以為了搜尋的方便,可以把kafka的資料存入Elasticsearch。
模型如下:
現在建立一個簡單的日誌收集搜尋的demo:
jdk要求版本:1.7
①先簡單的捕獲異常並記錄,規範異常的記錄格式如下:記錄異常的各種資訊。因為elasticsearch的文件都採用json的格式,所以異常規範了扔到Elasticsearch裡。
{
"localizedMessage": "分頁查詢Activity物件",
"cause": "java.lang.NullPointerException",
"mac": "",
"type": "java.lang.RuntimeException",
"extendedStackTrace ": [
{
"author": "風中追風",
"file": "ActivityManagerAction.java",
"traceSeat": 1,
"line": 202,
"class": "com.cairh.xpe.coupons.backend.action.ActivityManagerAction",
"method": "getActivityList"
}
],
"ip": "127.0.0.1",
"message": "分頁查詢Activity物件",
"time": "2017-10-19 09:25:07",
"questParams": {
"page": [
"1"
],
"rtQryPage": [
"1"
],
"activity_type": [
"2"
]
},
"serverPort": 80,
"thread": "http-apr-8080-exec-10",
"remotePort": 55192,
"URL": "http://hcsisap.xpe.com/xpe-products-coupons-backend/coupons/getActivityList.json",
"timemillis": 1508376307761,
"URI": "/xpe-products-coupons-backend/coupons/getActivityList.json"
}
②匯入sapling-component-logstandard專案,且在要使用異常記錄的專案的pom檔案新增依賴:
<dependency>
<groupId>com.btp</groupId>
<artifactId>sapling-component-logstandard</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
③啟動Flume例項:
在bin目錄下執行cmd:flume-ng.cmd agent -conf ../conf -conf-file ../conf/flumeToKafka.conf -name a1
flumeToKafka.conf為啟動一個flume代理的配置檔案,可以配置flume的source、channel和sink,a1為代理名稱。比如
配置source:代表從44444埠獲取資料。
配置sink,傳資料到kafka的名為test的topic下。
配置channel:本地的flume資料快取。
啟動代理之後:
檢查一下上面配置的44444埠是否開啟:telnet localhost 44444,如果不是報未開啟,則說明flume代理成功啟動。
④啟動zookeeper,因為kafka依賴zookeeper,所以先啟動zookeeper:
執行zookeeper-3.4.9\bin\zkServer.cmd
⑤啟動kafka:
Kafka目錄下啟動:.\bin\windows\kafka-server-start.bat .\config\server.properties
上面的flume的sink的9092埠配置在producer.properties。
啟動一個消費者:
消費者(Kafka目錄下啟動):.\bin\windows\kafka-console-consumer.bat –zookeeper localhost:2181 –topic test
消費topic為test的資料:
然後記錄日誌:
檢視kafka消費端視窗:已經有異常訊息了。
⑥準備將訊息送到elasticsearch中:
在backend的web.xml增加
`
<servlet-name>action</servlet-name>
<servlet-class>com.btp.logstandard.autoTask.KafkaComsumer</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
啟動elasticsearch:elasticsearch-2.1.0\bin\elasticsearch.bat
elasticsearch-2.1.0\config\elasticsearch.yml可以配置叢集名稱和節點名稱。
開啟網頁:輸入:http://localhost:9200/?pretty`
說明啟動成功。
啟動kibana:kibana-4.3.0-windows\bin\kibana.bat
開啟網頁輸入:http://localhost:5601/app/sense
表示啟動kinaba成功。
⑦啟動web.xml改變的專案:
如果如下說明啟動成功,現在可以往elasticsearch中放資料了。
再次呼叫
Kafka消費視窗可看到:
Console下(預設存到myexceptions索引下,型別定義為exception):
說明資料存到elasticsearch中成功。
現在是要kinaba進行查詢:GET /myexceptions/exception/_search
說明資料儲存成功。
也可以從elasticsearch中將資料查出來:
注:桌面上建立一個資料夾如下:用來存放flume的資料和kafka的日誌,配置檔案可配:
相關推薦
EFK日誌蒐集demo
以前的一些東西整理下。 E:Elasticsearch F:Flume K:Kafka Flume是一個分散式的日誌聚合收集工具,可以從多個且不同型別的日誌源頭收集日誌。Flume的模型如下: Source代表資料的源頭,channel暫存資料
Docker(三十二)k8s EFK日誌蒐集
兩個檔案 1,fluentd-ed-configmap.yaml kind: ConfigMap apiVersion: v1 metadata: name: fluentd-es-config-v0.1.6 namespa
日誌蒐集系統從ELK到EFK
為什麼做日誌系統 首先,什麼是日誌? 日誌就是程式產生的,遵循一定格式(通常包含時間戳)的文字資料。 通常日誌由伺服器生成,輸出到不同的檔案中,一般會有系統日誌、 應用日誌、安全日誌。這些日誌分散地儲存在不同的機器上。 通常當系統發生故障時,工程師需要登入到各個伺服器上,使用 grep
CentOS7 安裝EFK(elasticsearch、fluent、kibana)進行Docker下日誌蒐集
Fluentd並非是專用於日誌檔案收集的,而是一個通用的資訊收集、整理、轉發的流式資料處理工具,日誌收集只是它十分典型的一個運用場景。重要的是,Fluentd的日誌收集功能對容器支援十分完備,遠遠勝於Logstash等傳統日誌收集工具。一方面得益於Fluentd社群開發
OpenShift-EFK日誌管理
1.準備工作 思路: 在OpenShift容器平臺上以daemonset方式部署Fluentd收集各節點中的日誌。更改其配置讓日誌輸出到外部Elasticsearch中,最終通過Kibana展示。 資料: Fluentd官方配置文件:https://docs.fl
ELK6.5 Nginx 日誌蒐集-03 kibana 安裝
node1:elasticsearch、kibana、logstash node2:filebeat 1、如前文,下載 kibana 6.5.0 版 安裝 # rpm -ivh kibana-6.5.0-x86_64.rpm 進入配置檔案目錄,修改配置檔案 #&
ELK6.5 Nginx 日誌蒐集-02 elasticsearch 安裝
node1:elasticsearch、kibana、logstash node2:filebeat 1,下載 elasticsearch 6.5.0 版本 (吐槽一下,我們線上部署的時候是6.5.0,寫文件的時候已經是6.5.2了,官網更新速度實在是太快了。) 2,安裝 #&
ELK6.5 Nginx 日誌蒐集-04 logstash 安裝
node1:elasticsearch、kibana、logstash node2:filebeat 1、如前文,下載 logstash 6.5.0 版 安裝 # rpm -ivh logstash-6.5.0-x86_64.rpm 進入配置檔案目錄,修改配置檔案
ELK6.5 Nginx 日誌蒐集-05 filebeat 安裝
node1:elasticsearch、kibana、logstash node2:filebeat 1、如前文,下載 filebeat 6.5.0 版 在 node2 節點安裝 filebeat 的安裝,執行,是不需要 jdk 環境的 # rpm -ivh fi
基於Fluentd的EFK日誌收集方案
關於系統日誌收集處理方案,其實有很多種,因為之前使用ES比較多,所以也認為ELK是一個不錯的解決方案,ELK(Elasticsearch + Logstash + Kibana)來管理日誌。Logstash是一個具有實時渠道能力的資料收集引擎,但和fluentd相比,它在效能
EFK 日誌實踐
一、前言 一提到日誌收集方案,大家第一個想到的肯定是ELK(Elasticsearch、Logstash、Kibana ),但Logstash依賴於JVM不管是效能還是簡潔性,都不是日誌收集agent的首選。 個人感覺一個好的agent應
kubernetes叢集EFK日誌框架部署
目標:在現有Kubernetes叢集中搭建EFK日誌框架,實現叢集日誌的儲存與展示環境:Kubernetes叢集(kubeadm方式部署)步驟:Kubernetes日誌架構概述->Fluentd日誌收集容器部署->Elasticsearch日誌儲存容器部署->
kubernetes 1.14安裝部署EFK日誌收集系統
closed display yam tab configMap .gz class fluent border 簡單介紹: EFK 組合插件是k8s項目的一個日誌解決方案,它包括三個組件:Elasticsearch, Fluentd, Kibana。相對於ELK這樣的架
android日誌蒐集原理及方案比較
說明: 本文只討論Log日誌,而不是應用的埋點日誌。 Android 日誌架構 用一張圖來了解Android Log的架構: 這裡涉及到三個程序: APP程序: 呼叫Log的介面打日誌,最終通過soctket通訊傳送給Logd程序 Logd程序:有一個緩衝區用於儲存日誌(環形緩衝區,當滿時會沖掉舊的日誌)
Kubernetes 中 搭建 EFK 日誌搜尋中心
簡介 Elastic 官方已經發布了Elasticsearch Operator ,簡化了 elasticsearch 以及 kibana的部署與升級,結合 fluentd-kubernetes-daemonset,現在在kubernetes 部署 EFK 已經非常方便。
Spark日誌分析項目Demo(9)--常規性能調優
array ack 不一定 集合類型 -s 如果 一次 puts cluster 一 分配更多資源 分配更多資源:性能調優的王道,就是增加和分配更多的資源,性能和速度上的提升,是顯而易見的;基本上,在一定範圍之內,增加資源與性能的提升,是成正比的;寫完了一個復雜的spark
vue日誌demo,增刪改查的練習
日誌組 sum 必須 創建 pre 方法 prev 文件夾 edit # 安裝### 1. 確定電腦已裝node和npm``` node -v ``` ``` npm -v```出現版本號則說明電腦已經安裝好node和npm### 2. 創建一個基於webpack的項目 `
EFK收集Kubernetes應用日誌
mark grace 修改 info mode 選項 進度 pri ng- 本節內容: EFK介紹 安裝配置EFK 配置efk-rbac.yaml文件 配置 es-controller.yaml 配置 es-service.yaml 配置 fluentd-es-ds.y
OpenShift實戰(六):OpenShift日誌監控EFK
con check comment fig .net release api pull kibana 1、鏡像下載 為了防止安裝過程中由於鏡像下載緩慢導致自動部署失敗,所以首先提前下載好EFK鏡像。 docker pull openshift/origin-logging
springboot+ELK+logback日誌分析系統demo
之前寫的有點亂,這篇整理了一下搭建了一個簡單的ELK日誌系統 借鑑此部落格完成:https://blog.csdn.net/qq_22211217/article/details/80764568 準備環境: centos7系統 安裝jdk1.8 去官網下載ELK,ELK