1. 程式人生 > >ELK+Filebeat 集中式日誌解決方案詳解

ELK+Filebeat 集中式日誌解決方案詳解

ELK Stack 簡介

ELK 不是一款軟體,而是 Elasticsearch、Logstash 和 Kibana 三種軟體產品的首字母縮寫。這三者都是開源軟體,通常配合使用,而且又先後歸於 Elastic.co 公司名下,所以被簡稱為 ELK Stack。根據 Google Trend 的資訊顯示,ELK Stack 已經成為目前最流行的集中式日誌解決方案。

  • Elasticsearch:分散式搜尋和分析引擎,具有高可伸縮、高可靠和易管理等特點。基於 Apache Lucene 構建,能對大容量的資料進行接近實時的儲存、搜尋和分析操作。通常被用作某些應用的基礎搜尋引擎,使其具有複雜的搜尋功能;
  • Logstash:資料收集引擎。它支援動態的從各種資料來源蒐集資料,並對資料進行過濾、分析、豐富、統一格式等操作,然後儲存到使用者指定的位置;
  • Kibana:資料分析和視覺化平臺。通常與 Elasticsearch 配合使用,對其中資料進行搜尋、分析和以統計圖表的方式展示;
  • Filebeat:ELK 協議棧的新成員,一個輕量級開源日誌檔案資料蒐集器,基於 Logstash-Forwarder 原始碼開發,是對它的替代。在需要採集日誌資料的 server 上安裝 Filebeat,並指定日誌目錄或日誌檔案後,Filebeat 就能讀取資料,迅速傳送到 Logstash 進行解析,亦或直接傳送到 Elasticsearch 進行集中式儲存和分析。

如果您對 ELK Stack 還尚不瞭解,或是想了解更多,請點選集中式日誌系統 ELK 協議棧詳解,檢視具體介紹。

ELK 常用架構及使用場景介紹

在這個章節中,我們將介紹幾種常用架構及使用場景。

最簡單架構

在這種架構中,只有一個 Logstash、Elasticsearch 和 Kibana 例項。Logstash 通過輸入外掛從多種資料來源(比如日誌檔案、標準輸入 Stdin 等)獲取資料,再經過濾外掛加工資料,然後經 Elasticsearch 輸出外掛輸出到 Elasticsearch,通過 Kibana 展示。詳見圖 1。

圖 1. 最簡單架構

這種架構非常簡單,使用場景也有限。初學者可以搭建這個架構,瞭解 ELK 如何工作。

Logstash 作為日誌蒐集器

這種架構是對上面架構的擴充套件,把一個 Logstash 資料蒐集節點擴充套件到多個,分佈於多臺機器,將解析好的資料傳送到 Elasticsearch server 進行儲存,最後在 Kibana 查詢、生成日誌報表等。詳見圖 2。

圖 2. Logstash 作為日誌搜尋器

這種結構因為需要在各個伺服器上部署 Logstash,而它比較消耗 CPU 和記憶體資源,所以比較適合計算資源豐富的伺服器,否則容易造成伺服器效能下降,甚至可能導致無法正常工作。

Beats 作為日誌蒐集器

這種架構引入 Beats 作為日誌蒐集器。目前 Beats 包括四種:

  • Packetbeat(蒐集網路流量資料);
  • Topbeat(蒐集系統、程序和檔案系統級別的 CPU 和記憶體使用情況等資料);
  • Filebeat(蒐集檔案資料);
  • Winlogbeat(蒐集 Windows 事件日誌資料)。

Beats 將蒐集到的資料傳送到 Logstash,經 Logstash 解析、過濾後,將其傳送到 Elasticsearch 儲存,並由 Kibana 呈現給使用者。詳見圖 3。

圖 3. Beats 作為日誌蒐集器

這種架構解決了 Logstash 在各伺服器節點上佔用系統資源高的問題。相比 Logstash,Beats 所佔系統的 CPU 和記憶體幾乎可以忽略不計。另外,Beats 和 Logstash 之間支援 SSL/TLS 加密傳輸,客戶端和伺服器雙向認證,保證了通訊安全。

因此這種架構適合對資料安全性要求較高,同時各伺服器效能比較敏感的場景。

引入訊息佇列機制的架構

到筆者整理本文時,Beats 還不支援輸出到訊息佇列,所以在訊息佇列前後兩端只能是 Logstash 例項。這種架構使用 Logstash 從各個資料來源蒐集資料,然後經訊息佇列輸出外掛輸出到訊息佇列中。目前 Logstash 支援 Kafka、Redis、RabbitMQ 等常見訊息佇列。然後 Logstash 通過訊息佇列輸入外掛從佇列中獲取資料,分析過濾後經輸出外掛傳送到 Elasticsearch,最後通過 Kibana 展示。詳見圖 4。

圖 4. 引入訊息佇列機制的架構

這種架構適合於日誌規模比較龐大的情況。但由於 Logstash 日誌解析節點和 Elasticsearch 的負荷比較重,可將他們配置為叢集模式,以分擔負荷。引入訊息佇列,均衡了網路傳輸,從而降低了網路閉塞,尤其是丟失資料的可能性,但依然存在 Logstash 佔用系統資源過多的問題。

基於 Filebeat 架構的配置部署詳解

前面提到 Filebeat 已經完全替代了 Logstash-Forwarder 成為新一代的日誌採集器,同時鑑於它輕量、安全等特點,越來越多人開始使用它。這個章節將詳細講解如何部署基於 Filebeat 的 ELK 集中式日誌解決方案,具體架構見圖 5。

圖 5. 基於 Filebeat 的 ELK 叢集架構

因為免費的 ELK 沒有任何安全機制,所以這裡使用了 Nginx 作反向代理,避免使用者直接訪問 Kibana 伺服器。加上配置 Nginx 實現簡單的使用者認證,一定程度上提高安全性。另外,Nginx 本身具有負載均衡的作用,能夠提高系統訪問效能。

系統資訊

平臺

筆者試驗平臺為 RHEL 6.x。注意,目前 ELK(包括 Beats)不支援 AIX。具體對平臺的支援請檢視這裡

JDK

JDK 是 IBM Java 8。ELK 需要 Oracle 1.7(或者是 OpenJDK 1.7) 及以上,如果是 IBM Java,則需要 8 及以上的版本。具體資訊

瀏覽器

Kibana 4.x 不支援 IE9 及以下;Kibana 3.1 雖然支援 IE9,但是不支援 Safari(iOS)和 Chrome(Android)。具體對瀏覽器的支援,請看這裡

軟體版本

  • Filebeat:1.2.3;
  • Logstash:2.3.4;
  • Elasticsearch:2.3.4;
  • Kibana:4.5.4;
  • Nginx:1.8.1。

Filebeat + ELK 安裝

安裝步驟

ELK 官網對於每種軟體提供了多種格式的安裝包(zip/tar/rpm/DEB),以 Linux 系列系統為例,如果直接下載 RPM,可以通過rpm -ivh path_of_your_rpm_file 直接安裝成系統 service。以後就可以使用 service 命令啟停。比如 service elasticsearch start/stop/status。很簡單,但缺點也很明顯,就是不能自定義安裝目錄,相關檔案放置比較分散。

實際使用中更常用是使用 tar 包安裝。每種軟體產品的安裝過程非常相似,所以下面僅以 Elasticsearch 為例簡述安裝過程。

  • 建立 elk 使用者和使用者組;
    groupadd elk          # 新增使用者組 useradd -g elk elk    # 新增使用者到指定使用者組 passwd elk            # 為指定使用者設定密碼

    切換到新建立的 elk 使用者做如下操作。

  • 下載安裝包;

    如果待安裝機器能訪問外網,可以直接用以下命令下載安裝包。

    wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.4/elasticsearch-2.3.4.tar.gz

    否則下載好後用 ftp 客戶端等工具把包傳過去。

  • 解壓到指定目錄;
    tar xzvf elasticsearch-2.3.4.tar.gz -C /opt

    這時就能在/opt 下看到剛才解壓出來的 elasticsearch-2.3.4 資料夾。

  • 執行;
    ./Path_of_elasticsearch/bin/elasticsearch
  • 驗證是否啟動;
    curl 'http://localhost:9200'

    如果看到如下類似資訊,就說明 Elasticsearch 正常啟動了。

    1 2 3 4 5 6 7 8 9 10 11 12 { "name" : "node-235", "cluster_name" : "elasticsearch_cms", "version" : {

    相關推薦

    ELK+Filebeat 中式日誌解決方案

    ELK Stack 簡介 ELK 不是一款軟體,而是 Elasticsearch、Logstash 和 Kibana 三種軟體產品的首字母縮寫。這三者都是開源軟體,通常配合使用,而且又先後歸於 Elastic.co 公司名下,所以被簡稱為 ELK Stack

    ELK+Filebeat中式日誌解決方案(centos7)

    一.ELK Stack 概述 ELK是一組開源軟體的簡稱,其包括Elasticsearch、Logstash 和 Kibana。ELK最近幾年發展迅速,已經成為目前最流行的集中式日誌解決方案。 Elasticsearch: 能對大容量的資料進行接近

    Filebeat,Redis和ELK6.x中式日誌解決方案

    簡介  ELK 不是一款軟體,而是 Elasticsearch、Logstash 和 Kibana 三種軟體產品的首字母縮寫。這三者都是開源軟體,通常配合使用,而且又先後歸於 Elastic.co

    前端模塊化開發解決方案

    暴露 可見 返回 異步加載 def 今天 htm 硬盤 業務邏輯 一、模塊化開發方案 前端發展到今天,已經有不少模塊化的方案,比如 CommonJS(常用在服務器端,同步的,如nodejs) AMD(常用在瀏覽器端,異步的,如requirejs)(Asynchronous

    電商購物直播app開發解決方案

    分享 進入 發的 購物平臺 發出 阿裏巴巴 通過 出了 內嵌 最近有很多小夥伴咨詢電商直播app開發,在傳統的秀場直播競爭力逐漸下降的今天,“直播+”爆發出了無窮的“小宇宙”。在眾多“直播+”解決方案中,“直播+電商”是目前比較完善的解決方案,像阿裏巴巴旗下的淘寶直播,以及

    高併發架構系列:Redis併發競爭key的解決方案

    需求由來 1.Redis高併發的問題 Redis快取的高效能有目共睹,應用的場景也是非常廣泛,但是在高併發的場景下,也會出現問題:快取擊穿、快取雪崩、快取和資料一致性,以及今天要談到的快取併發競爭。 這裡的併發指的是多個redis的client同時set key引起的併發問題。

    智慧地產專題 | 機智雲智慧公寓解決方案

                                            機智雲智慧公寓&智慧社群解決方案         機智雲提供的智慧公寓解決方案覆蓋技術生態、應用生態和產業共享合作,基於機智雲平臺接入的成熟家電產品通過智慧場景化構建,搭載機智雲成熟的運

    【Angular】angular 跨域解決方案

    瀏覽器對於javascript的同源策略的限制,例如a.cn下面的js不能呼叫b.cn中的js,物件或資料(因為a.cn和b.cn是不同域),所以跨域就出現了: 簡單的解釋就是相同域名,埠相同,協議相同 同源策略: 請求的url地址,必須與瀏覽器上

    區域網內基於WEB的檔案傳輸解決方案(ZT)

    環境說明: 區域網內的兩臺伺服器,一臺當作主WEB伺服器,一臺作檔案伺服器,兩伺服器作業系統為win2000 professional(或win2000 server)主WEB伺服器 區域網內部URL:http://main:8080   外部URL  伺服器計算機名為:main  WEB站點的埠為808

    ELK構建MySQL慢日誌收集平臺

    exclude ember 就是 elastic agent add dex tinc esc 轉載自:https://mp.weixin.qq.com/s/umH7ImZZVhdfgMdZ3Hz5fA ELK介紹 ELK最早是Elasticsearch(以下簡稱ES)

    ELK + Filebeat +Nginx 中式日誌分析平臺(一)

    文檔 bili cti put tin grok NPU puts term 一、環境準備 本次我們采用 yum 官方倉庫進行安裝,之前采用 rpm 包安裝的文檔大家請看 http://blog.51cto.com/wzlinux/2175836 。 1、軟件版本 File

    ELK打造視覺化中式日誌

    Elk是Elastic search, Logstash和Kibana三者的簡稱。 Elastic search顧名思義是致力於搜尋,它是一個彈性搜尋的技術平臺,與其相似的有Solr,二者的對比可參考下面這篇文章: Elastic search與Solr選型

    centos7搭建ELK Cluster日誌分析平臺(四):簡單測試

    -1 簡單測試 logs ima .tar.gz 分析 -c cluster images 續之前安裝好的ELK集群   各主機:es-1 ~ es-3 :192.168.1.21/22/23       logstash:  192.168.1.24       ki

    Ultimus BPM - ERP成整合解決方案

    BPM軟件 ERP集成 Ultimus BPM - ERP集成整合解決方案 整合方案簡介 ERP+Ultimus最好的“ERP+BPM”解決方案 在眾多的業務和技術的驅動下,兩個不同種類的產品結合在一起,提供給

    實戰案例:構建docker容器群 (解決方案一:使用自定義網橋連接跨主機容器)

    docker一、實驗環境虛擬機a兩塊網卡 eth0 eth1 (IP地址static或者dhcp)虛擬機b兩塊網卡 eth0 eth1 (IP地址static或者dhcp)二、在兩臺虛擬機上配置網橋虛擬機a操作:apt-get install bridge-utilsvim /etc/ne

    再次升級!阿裏雲Kubernetes日誌解決方案

    日誌摘要: 今天阿裏雲Kubernetes日誌解決方案再次升級,為您帶來以下改進: 1、極致部署體驗:只需一條命令一個參數即可完成整個K8S集群的日誌解決方案部署。 2、支持更多配置方式:除原生控制臺、SDK配置方式外,支持通過CRD方式進行配置(kubectl、控制臺、K8S openapi)。背景針對K8

    雲搜索服務在日誌解決方案的應用

    AD 智能 應用 如何 數字 開始 解決 follow href 在整體行業趨於數字化的今天,各種業務軟件每時每刻都在產生日誌數據。因為大數據的爆發,大家開始重視如何利用這些日誌,去解決業務上的難題。不可否認的是,隨著對數據資產的觀念興起,越來越多的運營人員和運維人員開始使

    Keras載入mnist數據出錯問題解決方案

    內容 ret href 斜杠 cal call abs anaconda 目錄 找到本地keras目錄下的mnist.py文件 通常在這個目錄下。 ..\Anaconda3\Lib\site-packages\keras\datasets 下載mnist.npz文件到本地

    中式日誌分析平臺 Elastic Stack(介紹)

    喜歡 存儲 轉換成 redis 版本 個數 將他 報表 ash 一、ELK 介紹 ELK 構建在開源基礎之上,讓您能夠安全可靠地獲取任何來源、任何格式的數據,並且能夠實時地對數據進行搜索、分析和可視化。 最近查看 ELK 官方網站,發現新一代的日誌采集器 Filebeat,

    中式日誌分析平臺 Elastic Stack(部署)

    usr sts 組件 stat emp clust table java watermark 一、環境準備 1、架構選型 接下來我們進行初步的探視,利用測試環境體驗下ELK Stack + Filebeat,測試環境我們就不進行 Kafka 的配置了,因為他的存在意義在於提