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 的配置了,因為他的存在意義在於提