国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ELK(Elasticsearch+Logstash+Kibana)日志分析系統(tǒng)

這篇具有很好參考價值的文章主要介紹了ELK(Elasticsearch+Logstash+Kibana)日志分析系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

前言

一、ELK日志分析系統(tǒng)概述

1、三大組件工具介紹

1.1?Elasticsearch

1.1.1?Elasticsearch概念

1.1.2?關(guān)系型數(shù)據(jù)庫和ElasticSearch中的對應關(guān)系

1.1.3?Elasticsearch提供的操作命令

1.2?Logstash

1.2.1 Logstash概念

1.2.2 Logstash的主要組件

1.2.3?Logstash主機分類

1.2.4?Logstash工作過程

1.3?Kiabana

2、其他可替代Logstash組件介紹

2.1?Filebeat

2.2?緩存/消息隊列(redis、kafka、RabbitMQ等)

2.3?Fluentd

?3、為什么要使用ELK

4、完整日志系統(tǒng)的基本特征

5、ELK 的工作原理

二、搭建ELK日志分析系統(tǒng)

1、環(huán)境部署

2、ElasticSearch 集群部署

2.1?安裝 elasticsearch-rpm 包并加載系統(tǒng)服務

2.2?修改 elasticsearch 主配置文件

2.3?創(chuàng)建數(shù)據(jù)存放路徑并授權(quán)

2.4?啟動elasticsearch是否成功開啟

2.5?查看節(jié)點信息

3、安裝 Elasticsearch-head 插件

3.1?編譯安裝 node

3.2?安裝 phantomjs(前端的框架)

3.3?安裝 Elasticsearch-head 數(shù)據(jù)可視化工具

3.4?修改 Elasticsearch 主配置文件

3.5?啟動 elasticsearch-head 服務

3.6?通過 Elasticsearch-head 查看 Elasticsearch 信息

3.7?插入索引

4、ELK Logstash 部署

4.1?安裝Apahce服務(httpd)

4.2?安裝logstash

4.3 測試Logstash

4.4?定義 logstash 配置文件

5、ELK Kiabana 部署

1.1 安裝 Kiabana

1.2 設置 Kibana 的主配置文件并啟動服務

1.3 驗證 Kibana

1.4?將 Apache 服務器的日志(訪問的、錯誤的)添加到 Elasticsearch 并通過 Kibana 顯示

三、搭建ELFK(Filebeat+ELK?)

1、環(huán)境部署

2、ELFK Filebeat 部署

1.1?安裝 Filebeat

1.2 設置 filebeat 的主配置文件

1.3 在 Logstash 組件所在節(jié)點上新建一個 Logstash 配置文件

1.4 登錄到Kibana進行測試

四、總結(jié)

1、ELK日志分析系統(tǒng)

2、feilbeat + Logstash + Elasticsearch + Kibana模式

3、feilbeat + 緩存/消息隊列+ Logstash + Elasticsearch + Kibana 模式


前言

ELK 是一個流行的日志管理和分析平臺,由三個開源工具組成:Elasticsearch、Logstash 和 Kibana。這些工具結(jié)合在一起,為用戶提供了強大的日志收集、存儲、搜索和可視化功能

一、ELK日志分析系統(tǒng)概述

ELK平臺是一套完整的日志集中處理解決方案,將 ElasticSearch、Logstash 和 Kiabana 三個開源工具配合使用, 完成更強大的用戶對日志的查詢、排序、統(tǒng)計需求

1、三大組件工具介紹

1.1?Elasticsearch

Elastic中文官網(wǎng):https://www.elastic.co/cn/
1.1.1?Elasticsearch概念
  • Elasticsearch 是 ELK 系統(tǒng)的核心組件之一
  • 它是一個基于 Lucene(一個全文檢索引擎的架構(gòu))開發(fā)的分布式搜索和分析引擎,能夠快速地存儲、搜索和分析大量數(shù)據(jù)
  • Elasticsearch是一個實時的、分布式的可擴展的搜索引擎,允許進行全文、結(jié)構(gòu)化搜索,它通常用于索引和搜索大容量的日志數(shù)據(jù),也可用于搜索許多不同類型的文檔
  • Elasticsearch 是用 Java 開發(fā)的,可通過 RESTful Web 接口,讓用戶可以通過瀏覽器與 Elasticsearch 通信

Elasticsearch 的核心概念包括以下幾個關(guān)鍵要素:

  • 索引(Index)

一個索引就是一個擁有幾分相似特征的文檔的集合

一個索引由一個名字來標識(必須全部是小寫字母),并且當我們要對對應于這個索引中的文檔進行索引、搜索、更新和刪除的時候。都要使用到這個名字。在一個集群中,可以定義任意多的索引

索引(庫)-----> 類型(表)-----> 文檔(記錄)

  • 類型(Type)

在一個索引中,你可以定義一種或多種類型。一個類型是你的索引的一個邏輯上的分類/分區(qū),其語義完全由你來定

通常會為具有一組共同字段的文檔定義一個類型

  • 文檔(Document)

一個文檔是一個可被索引的基礎(chǔ)信息單元

在一個index/type里面,只要你想,你可以存儲任意多的文檔。注意,雖然一個文檔在物理上位于一個索引中,實際上一個文檔必須在一個索引內(nèi)被索引和分配一個類型

  • 集群(Cluster)

一個集群就是由一個或者多個節(jié)點組織在一起,它們共同持有你整個的數(shù)據(jù),并一起提供索引和搜索功能。其中一個為主節(jié)點,這個主節(jié)點是可以通過選舉產(chǎn)生的,并提供跨節(jié)點的聯(lián)合索引和搜索功能

集群有一個唯一性標示的名字,默認是Elasticsearch,集群的名字很重要,每個節(jié)點是基于集群名字加入到集群中的。因此,確保在不同的環(huán)境中使用不同的集群名字

一個集群可以只有一個節(jié)點,建議在配置Elasticsearch時,配置成集群模式

Elasticsearch具有集群機制,節(jié)點通過集群名稱加入到集群中,同時在集群中的節(jié)點會有一個自己唯一的身份標識(自己的名稱)

  • 接近實時(Near Real-Time)

Elasticsearch 被稱為 "接近實時" 是因為它能夠在文檔被索引后幾乎立即變得可搜索。當文檔被索引到 Elasticsearch 中時,它們會在不久之后就變得可搜索,通常只有一小段延遲。這意味著對于用戶來說,他們可以幾乎實時地獲取到最新的數(shù)據(jù),而無需等待長時間的索引過程完成

  • 節(jié)點(Node)

節(jié)點就是一臺單一的服務器,是集群的一部分,存儲數(shù)據(jù)并參與集群的索引和搜索功能。像集群一樣,節(jié)點也是通過名字來標識,默認是在節(jié)點啟動時隨機分配的字符名。也可自己定義,名字很重要,在集群中用于識別服務器對應的節(jié)點

節(jié)點可以通過指定集群名字來加入到集群中。默認情況下,每個節(jié)點被設置成加入到Elasticsearch集群。如果啟動了多個節(jié)點,假設能自動發(fā)現(xiàn)對方,他們將會自動組建一個名為Elasticsearch的集群

  • 分片和副本(Shards and Replicas)

Elasticsearch 使用分片將索引分成多個部分,每個部分稱為一個分片。這允許索引水平擴展到多個節(jié)點上。此外,每個分片還可以具有零個或多個副本,用于提高數(shù)據(jù)的冗余性和可用性

分片的主要原因:

①水平分割擴展,增大存儲量

②分布式并跨越分片操作,提高性能和吞吐量

③分布式分片機制和搜索請求的文檔如何火鬃完全是由Elasticsearch控制的,這些對用戶是完全透明的

④為了健壯性,建議有一個故障切換機制,為此,Elasticsearch讓我們將索引分片復制一份或多份,稱之為分片副本

分片副本的主要原因:

①高可用性,以應對分片或者節(jié)點故障。處于這個原因,分片副本要在不同的節(jié)點上

②增大吞吐量,搜索可以并行在所有副本上執(zhí)行

總之,每個索引可以被分成多個分片。一個索引可以被復制0次或者多次。一旦復制了,每個索引就有了主分片 (作為復制源的原來的分片)和復制分片(主分片的拷貝)之別。分片和副本的數(shù)量可以在索引創(chuàng)建的時候指定。在索引創(chuàng)建之后,你可以在指定任何時候動態(tài)的改變副本的數(shù)量,但是你事后不能改變分片的數(shù)量

?默認情況下,Elasticsearch中的每個索引被分片5個主分片和1個副本,這意味著,如果你的集群中至少有兩個節(jié)點,你的索引將會有5個主分片和另外的5個副本分片(一個完全拷貝),這樣的話每個索引總共有10個分片

1.1.2?關(guān)系型數(shù)據(jù)庫和ElasticSearch中的對應關(guān)系
關(guān)系型數(shù)據(jù)庫 Elasticserch
數(shù)據(jù)庫database 索引index,支持全文索引
表table 類型type
數(shù)據(jù)行row 文檔document。但不需要固定結(jié)構(gòu),不同文檔可以具有不同字段集合
數(shù)據(jù)列cloumn 字段field
模式schema 映像mapping
1.1.3?Elasticsearch提供的操作命令

Elasticsearch 通過 RESTful Web 接口提供了各種操作指令,主要包括以下幾種:?

操作指令 說明
GET 用于從 Elasticsearch 中檢索數(shù)據(jù)。例如,可以使用 GET 請求來獲取文檔、執(zhí)行搜索或獲取特定的統(tǒng)計信息
POST 用于執(zhí)行各種操作,如索引文檔、執(zhí)行搜索、更新文檔或執(zhí)行批量操作。POST 請求是一個通用的操作請求方式
PUT 用于在 Elasticsearch 中創(chuàng)建或更新文檔。通過 PUT 請求,您可以將新文檔添加到索引中,或者更新現(xiàn)有文檔的內(nèi)容
DELTET 用于從 Elasticsearch 中刪除文檔、索引或其他資源。DELETE 請求允許您刪除不再需要的數(shù)據(jù)
HEAD 用于獲取關(guān)于索引或文檔狀態(tài)的元數(shù)據(jù)信息,而不返回實際數(shù)據(jù)內(nèi)容。這對于檢查索引或文檔是否存在非常有用

1.2?Logstash

Logstash中文官網(wǎng):https://www.elastic.co/cn/logstash
1.2.1 Logstash概念
  • 作為數(shù)據(jù)收集引擎。它支持動態(tài)的從各種數(shù)據(jù)源搜集數(shù)據(jù),并對數(shù)據(jù)進行過濾、分析、豐富、統(tǒng)一格式等操作,然后存儲到用戶指定的位置,一般會發(fā)送給 Elasticsearch
  • Logstash 由 Ruby 語言編寫,運行在 Java 虛擬機(JVM)上,是一款強大的數(shù)據(jù)處理工具, 可以實現(xiàn)數(shù)據(jù)傳輸、格式處理、格式化輸出。Logstash 具有強大的插件功能,常用于日志處理
1.2.2 Logstash的主要組件
  • Shipper:Shipper 是指負責從不同來源(如服務器、應用程序、網(wǎng)絡設備等)收集日志數(shù)據(jù)的組件。它可以是 Logstash 的 Input 插件,負責實時收集和捕獲各種日志信息

  • Indexer:Indexer 負責接收 Shipper 收集到的原始日志數(shù)據(jù),并將其標準化、轉(zhuǎn)換為適當?shù)母袷?,并將其發(fā)送到存儲系統(tǒng)(比如 Elasticsearch)。在 Logstash 中,這一部分通常由 Filter 插件完成

  • Broker:Broker 通常用于將數(shù)據(jù)發(fā)送到消息隊列,以提供異步處理和緩沖功能。這使得系統(tǒng)能夠更好地處理突發(fā)的大量數(shù)據(jù),同時降低了對于 Indexer 的直接壓力

  • Search and Storage:這部分主要涉及將經(jīng)過處理的日志數(shù)據(jù)存儲到適當?shù)拇鎯ο到y(tǒng)中,通常是 Elasticsearch。Elasticsearch 提供了強大的搜索和分析功能,使用戶能夠快速查詢和分析大量的日志數(shù)據(jù)

  • Web Interface:Web Interface 提供了一個用戶友好的界面,用于監(jiān)控日志數(shù)據(jù)的收集、處理和存儲情況。Kibana 是一個常用的 Web 接口,它與 Elasticsearch 集成,提供了豐富的數(shù)據(jù)可視化和查詢功能,使用戶能夠直觀地理解日志數(shù)據(jù)。

這些組件共同構(gòu)成了一個典型的日志處理流水線,使得 Logstash 能夠有效地從多個來源收集日志數(shù)據(jù),進行處理和存儲,并提供用戶友好的界面來查詢和分析這些數(shù)據(jù)。

1.2.3?Logstash主機分類
  • 代理主機(agent host):作為事件的傳遞者(Shipper),將各種日志數(shù)據(jù)發(fā)送至中心主機,只需運行Logstash代理程序
  • 中心主機(central host):可運行包括中間轉(zhuǎn)發(fā)器(Broker)、索引器(Indexer)、搜索和存儲器(Search and Storage)、Web界面端(Web Interface)在內(nèi)的各個組件,以實現(xiàn)對日志數(shù)據(jù)的接收、處理和存儲
1.2.4?Logstash工作過程

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

  • Input(數(shù)據(jù)采集):通過 Input 插件從不同的來源收集數(shù)據(jù),這些來源可以包括日志文件、消息隊列、數(shù)據(jù)庫、網(wǎng)絡流量等。Input 插件負責將原始數(shù)據(jù)獲取并發(fā)送到 Logstash 進行處理
  • Filter(數(shù)據(jù)過濾):Filter 插件可以對數(shù)據(jù)進行加工處理過濾,可以做復雜的處理邏輯。這個步驟不是必須的
  • Output(數(shù)據(jù)輸出):Output 插件負責將數(shù)據(jù)發(fā)送到指定的目的地,比如 Elasticsearch、Kafka、Redis 等

1.3?Kiabana

  • Kibana 通常與 Elasticsearch 一起部署,Kibana 是 Elasticsearch 的一個功能強大的數(shù)據(jù)可視化 Dashboard,Kibana 提供圖形化的 web 界面來瀏覽 Elasticsearch 日志數(shù)據(jù),可以用來匯總、分析和搜索重要數(shù)據(jù)
  • Kibana 提供了豐富的圖表、儀表盤和報表功能,使用戶能夠創(chuàng)建定制的數(shù)據(jù)可視化界面
  • 這些可視化工具有助于用戶理解數(shù)據(jù)趨勢、發(fā)現(xiàn)異常情況,并監(jiān)控系統(tǒng)運行狀況
  • Kibana 還提供了強大的搜索功能,使用戶能夠快速查詢和分析日志數(shù)據(jù)

Kibana主要功能:

  • Elasticsearch無縫之集成

Kibana架構(gòu)為Elasticsearch定制,可以將任何結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)加入Elasticsearch索引。Kibana還充分利用了Elasticsearch強大的搜索和分析功能

  • 整合數(shù)據(jù)?

Kibana能夠更好地處理海量數(shù)據(jù),并據(jù)此創(chuàng)建柱形圖、折線圖、散點圖、直方圖、餅圖和地圖

  • 復雜數(shù)據(jù)分析

Kibana提升了Elasticsearch分析能力,能夠更加智能地分析數(shù)據(jù),執(zhí)行數(shù)學轉(zhuǎn)換并且根據(jù)要求對數(shù)據(jù)切割分塊

  • 讓更多團隊成員收益

強大的數(shù)據(jù)庫可視化接口讓各業(yè)務崗位都能夠從數(shù)據(jù)集合受益

  • 接口靈活,分享更容易

使用Kibana可以更加方便地創(chuàng)建、保存、分享數(shù)據(jù),并將可視化數(shù)據(jù)快速交流

  • 配置簡單

Kibana的配置和啟用非常簡單,用戶體驗非常友好。Kibana自帶Web服務器,可以快速啟動運行

  • 可視化多數(shù)據(jù)源

Kibana可以非常方便地把來自Logstash、ES-Hadoop、Beats或第三方技術(shù)的數(shù)據(jù)整合到Elasticsearch,支持的第三方技術(shù)包括Apache flume、 Fluentd 等

  • 簡單數(shù)據(jù)導出

Kibana可以方便地導出感興趣的數(shù)據(jù),與其它數(shù)據(jù)集合并融合后快速建模分析,發(fā)現(xiàn)新結(jié)果

2、其他可替代Logstash組件介紹

資源消耗高: Logstash 在處理大量數(shù)據(jù)時會占用大量內(nèi)存和CPU資源。特別是在進行復雜的數(shù)據(jù)轉(zhuǎn)換和過濾時,其資源消耗會更加明顯。這可能導致在資源受限的環(huán)境中出現(xiàn)性能下降或系統(tǒng)負載增加的問題

Java 虛擬機開銷: Logstash 是基于 Java 編寫的,因此在啟動時需要加載 Java 虛擬機(JVM),這會消耗一定的內(nèi)存和啟動時間

單線程處理: 在默認配置下,Logstash 是單線程處理數(shù)據(jù)的,這意味著它可能無法充分利用多核處理器,尤其是在處理大量數(shù)據(jù)時可能會成為瓶頸

綜上由于?logstash 太重量級的缺點,Logstash 性能低、資源消耗比較多等問題,就出現(xiàn)了以下三種可替代Logstash收集數(shù)據(jù)的三個組件工具

2.1?Filebeat

Filebeat:輕量級的開源日志文件數(shù)據(jù)搜集器。通常在需要采集數(shù)據(jù)的客戶端安裝 Filebeat,并指定目錄與日志格式,F(xiàn)ilebeat 就能快速收集數(shù)據(jù),并發(fā)送給 logstash 進或是直接發(fā)給Elasticsearch 存儲,性能上相比運行于 JVM 上的 logstash 優(yōu)勢明顯,是對它的替代。常應用于 EFLK 架構(gòu)當中。

filebeat 結(jié)合 logstash 帶來好處:

  • 通過 Logstash 具有基于磁盤的自適應緩沖系統(tǒng),該系統(tǒng)將吸收傳入的吞吐量,從而減輕 Elasticsearch 持續(xù)寫入數(shù)據(jù)的壓力
  • 從其他數(shù)據(jù)源(例如數(shù)據(jù)庫,S3對象存儲或消息傳遞隊列)中提取
  • 將數(shù)據(jù)發(fā)送到多個目的地,例如S3,HDFS(Hadoop分布式文件系統(tǒng))或?qū)懭胛募?/li>
  • 使用條件數(shù)據(jù)流邏輯組成更復雜的處理管道

2.2?緩存/消息隊列(redis、kafka、RabbitMQ等)

可以對高并發(fā)日志數(shù)據(jù)進行流量削峰和緩沖,這樣的緩沖可以一定程度的保護數(shù)據(jù)不丟失,還可以對整個架構(gòu)進行應用解耦

2.3?Fluentd

  • Fluentd:是一個流行的開源數(shù)據(jù)收集器。相比較 logstash,F(xiàn)luentd 更易用、資源消耗更少、性能更高,在數(shù)據(jù)處理上更高效可靠,受到企業(yè)歡迎,成為 logstash 的一種替代方案,常應用于 EFK 架構(gòu)當中。在 Kubernetes 集群中也常使用 EFK 作為日志數(shù)據(jù)收集的方案
  • 在 Kubernetes 集群中一般是通過 DaemonSet 來運行 Fluentd,以便它在每個 Kubernetes 工作節(jié)點上都可以運行一個 Pod
  • 它通過獲取容器日志文件、過濾和轉(zhuǎn)換日志數(shù)據(jù),然后將數(shù)據(jù)傳遞到 Elasticsearch 集群,在該集群中對其進行索引和存儲

?3、為什么要使用ELK

  • 日志主要包括系統(tǒng)日志、應用程序日志和安全日志。系統(tǒng)運維和開發(fā)人員可以通過日志了解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發(fā)生的原因。經(jīng)常分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤
  • 往往單臺機器的日志我們使用grep、awk等工具就能基本實現(xiàn)簡單分析,但是當日志被分散的儲存不同的設備上。如果你管理數(shù)十上百臺服務器,你還在使用依次登錄每臺機器的傳統(tǒng)方法查閱日志。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日志管理。

例如:開源的syslog,將所有服務器上的日志收集匯總。集中化管理日志后,日志的統(tǒng)計和檢索又成為一件比較麻煩的事情,一般我們使用 grep、awk和wc等Linux命令能實現(xiàn)檢索和統(tǒng)計,但是對于要求更高的查詢、排序和統(tǒng)計等要求和龐大的機器數(shù)量依然使用這樣的方法難免有點力不從心

  • 一般大型系統(tǒng)是一個分布式部署的架構(gòu),不同的服務模塊部署在不同的服務器上,問題出現(xiàn)時,大部分情況需要根據(jù)問題暴露的關(guān)鍵信息,定位到具體的服務器和服務模塊,構(gòu)建一套集中式日志系統(tǒng),可以提高定位問題的效率

4、完整日志系統(tǒng)的基本特征

  • 收集:能夠采集多種來源的日志數(shù)據(jù)
  • 傳輸:能夠穩(wěn)定的把日志數(shù)據(jù)解析過濾并傳輸?shù)酱鎯ο到y(tǒng)
  • 存儲:存儲日志數(shù)據(jù)
  • 分析:支持 UI 分析
  • 警告:能夠提供錯誤報告,監(jiān)控機制

5、ELK 的工作原理

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

  • 在所有需要收集日志的服務器上部署Logstash;或者先將日志進行集中化管理在日志服務器上,在日志服務器上部署 Logstash
  • Logstash 收集日志,將日志格式化并輸出到 Elasticsearch 群集中
  • Elasticsearch 對格式化后的數(shù)據(jù)進行索引和存儲
  • Kibana 從 ES 群集中查詢數(shù)據(jù)生成圖表,并進行前端數(shù)據(jù)的展示

總結(jié):logstash作為日志搜集器,從數(shù)據(jù)源采集數(shù)據(jù),并對數(shù)據(jù)進行過濾,格式化處理,然后交由Elasticsearch存儲,kibana對日志進行可視化處理?

二、搭建ELK日志分析系統(tǒng)

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

數(shù)據(jù)流向:?apache下的/etc/httpd/logs/* ---->? logstash ---->?ElasticSearch ----> Kibana

1、環(huán)境部署

服務器 配置(越高性能越好) 主機名 ip地址 主要軟件
es_node1節(jié)點 2C/4G es_node1 172.16.12.12 ElasticSearch、Kibana
es_node2節(jié)點 2C/4G es_node2 172.16.12.13 ElasticSearch
logstash節(jié)點 / logstash 172.16.12.10

Logstash、Apache

(1)關(guān)閉所有設備的防火墻和核心防護

[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0

(2)修改三臺設備的主機名

[root@localhost ~]#hostnamectl set-hostname es_node1
[root@localhost ~]#bash
 
[root@localhost ~]#hostnamectl set-hostname es_node2
[root@localhost ~]#bash
 
[root@localhost ~]#hostnamectl set-hostname logstash
[root@localhost ~]#bash

(3)es_node節(jié)點1和es_node節(jié)點2都要配置本地的/etc/hosts文件

echo "172.16.12.12 es_node1" >> /etc/hosts
echo "172.16.12.13 es_node2" >> /etc/hosts

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

(3)三臺設備都需部署java環(huán)境,安裝oraclejdk

java -version    #不建議使用openjdk,所以三臺設備都需安裝oraclejdk

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

# rpm安裝oraclejdk

#yum install或rpm -ivh安裝oraclejdk
cd /opt    #將rpm軟件包傳至/opt目錄下
rpm -ivh jdk-8u291-linux-x64.rpm

#將openjdk更換至oraclejdk
vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64    #輸出定義java的工作目錄
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar   #輸出指定java所需的類文件
export PATH=$JAVA_HOME/bin:$PATH   #輸出重新定義環(huán)境變量,$PATH一定要放在$JAVA_HOME的后面,讓系統(tǒng)先讀取到工作目錄中的版本信息

source /etc/profile.d/jdk.sh  #執(zhí)行配置文件
java -version
----------------------------------------------------------------------------------------
# 二進制包安裝oraclejdk

cd /opt   #將二進制包傳至/opt目錄下
tar zxvf jdk-8u291-linux-x64.tar.gz -C /usr/local
ln -s /usr/local/jdk1.8.0_291/ /usr/local/jdk
 
vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
 
source /etc/profile.d/jdk.sh
java -version

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

2、ELK ElasticSearch 集群部署

需要安裝部署在es_node1節(jié)點和es_node2節(jié)點上

2.1?安裝 elasticsearch-rpm 包并加載系統(tǒng)服務

#安裝elasticsearch-rpm 包
cd /opt    #上傳elasticsearch-5.5.0.rpm到/opt目錄下
rpm -ivh elasticsearch-5.5.0.rpm

#加載系統(tǒng)服務
systemctl daemon-reload    
systemctl enable elasticsearch.service  

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

?2.2?修改 elasticsearch 主配置文件

cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml
--17--取消注釋,指定集群名字
cluster.name: my-elk-cluster
--23--取消注釋,指定節(jié)點名字:Node1節(jié)點為node1,Node2節(jié)點為node2
node.name: node1
--33--取消注釋,指定數(shù)據(jù)存放路徑
path.data: /data/elk_data
--37--取消注釋,指定日志存放路徑
path.logs: /var/log/elasticsearch/
--43--取消注釋,改為在啟動的時候不鎖定內(nèi)存
bootstrap.memory_lock: false
--55--取消注釋,設置監(jiān)聽地址,0.0.0.0代表所有地址
network.host: 0.0.0.0
--59--取消注釋,ES 服務的默認監(jiān)聽端口為9200
http.port: 9200
--68--取消注釋,集群發(fā)現(xiàn)通過單播實現(xiàn),指定要發(fā)現(xiàn)的節(jié)點 es_node1、es_node2
discovery.zen.ping.unicast.hosts: ["es_node1", "es_node2"]

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

grep -v "^#" /etc/elasticsearch/elasticsearch.yml
#過濾到能生效的語句,檢查修改的是否正確

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

2.3?創(chuàng)建數(shù)據(jù)存放路徑并授權(quán)

mkdir -p /data/elk_data
chown elasticsearch:elasticsearch /data/elk_data/

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

2.4?啟動elasticsearch是否成功開啟

systemctl start elasticsearch.service
ss -antp | grep 9200

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

綜上,兩個es_node節(jié)點都部署安裝完elasticsearch

2.5?查看節(jié)點信息

瀏覽器訪問:http://172.16.12.12:9200 ?、 http://172.16.12.13:9200 來查看節(jié)點 es_node1、es_node2 的信息

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

瀏覽器訪問:http://172.16.12.12:9200/_cluster/health?pretty ?、 http://172.16.12.12:9200/_cluster/health?pretty 來查看群集的健康情況,可以看到 status 值為 green(綠色), 表示節(jié)點健康運行

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

綠色:健康,數(shù)據(jù)和副本,全都沒有問題
紅色:數(shù)據(jù)都不完整
黃色:數(shù)據(jù)完整,但副本有問題

使用上述方式查看群集的狀態(tài)對用戶并不友好,下面可以通過安裝 Elasticsearch-head 插件,可以更方便地管理群集

3、安裝 Elasticsearch-head 插件

需要安裝部署在es_node1節(jié)點上

(可根據(jù)需要部署在es_node2節(jié)點上,我這就不部署在es_node2節(jié)點上了)

Elasticsearch 在 5.0 版本后,Elasticsearch-head 插件需要作為獨立服務進行安裝,需要使用npm工具(NodeJS的包管理工具)安裝

安裝 Elasticsearch-head 需要提前安裝好依賴軟件 node 和 phantomjs

  • node:是一個基于 Chrome V8 引擎的 JavaScript 運行環(huán)境
  • phantomjs:是一個基于 webkit 的JavaScriptAPI,可以理解為一個隱形的瀏覽器,任何基于 webkit 瀏覽器做的事情,它都可以做到

3.1?編譯安裝 node

yum install gcc gcc-c++ make -y   #安裝依賴包

cd /opt       #上傳軟件包 node-v8.2.1.tar.gz 到/opt
tar zxvf node-v8.2.1.tar.gz

#到安裝包目錄進行編譯安裝
cd node-v8.2.1/
./configure
make && make install

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

3.2?安裝 phantomjs(前端的框架)

cd /opt  #上傳軟件包 phantomjs-2.1.1-linux-x86_64.tar.bz2 到/opt

#無需安裝,解壓使用即可
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

3.3?安裝 Elasticsearch-head 數(shù)據(jù)可視化工具

cd /opt     #上傳軟件包 elasticsearch-head.tar.gz 到/opt

#安裝elasticsearch-head
tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/
cd /usr/local/src/elasticsearch-head/
npm install

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

3.4?修改 Elasticsearch 主配置文件

vim /etc/elasticsearch/elasticsearch.yml
......
--末尾添加以下內(nèi)容--
http.cors.enabled: true?? ??? ??? ??? ?#開啟跨域訪問支持,默認為 false
http.cors.allow-origin: "*"?? ??? ??? ?#指定跨域訪問允許的域名地址為所有

systemctl restart elasticsearch   #重啟elasticsearch服務

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

3.5?啟動 elasticsearch-head 服務

#必須在解壓后的 elasticsearch-head 目錄下啟動服務,進程會讀取該目錄下的 gruntfile.js 文件,否則可能啟動失敗
cd /usr/local/src/elasticsearch-head/
npm run start &

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

ss -natp |grep 9100       #elasticsearch-head 監(jiān)聽的端口是 9100

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

3.6?通過 Elasticsearch-head 查看 Elasticsearch 信息

通過瀏覽器訪問 http://172.16.12.12:9100/ 地址并連接群集。如果看到群集健康值為 green 綠色,代表群集很健康

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

3.7?插入索引

#通過命令插入一個測試索引,索引為 index-demo,類型為 test
curl -X PUT 'localhost:9200/index-demo1/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"lisi","mesg":"hello world"}'

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

瀏覽器再次訪問 http://172.16.12.12:9100/ 查看索引信息,可以看見索引默認被分片5個,并且有一個副本?

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

點擊“數(shù)據(jù)瀏覽”,會發(fā)現(xiàn)在es_node1上創(chuàng)建的索引為 index-demo,類型為 test 的相關(guān)信息

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

4、ELK Logstash 部署

需要安裝部署在logstash節(jié)點服務器上(本身也是apache服務器)

Logstash 一般部署在需要監(jiān)控其日志的服務器。在本案例中,Logstash 部署在 Apache 服務器上,用于收集 Apache 服務器的日志信息并發(fā)送到 Elasticsearch

4.1?安裝Apahce服務(httpd)

#安裝apache服務,等會會收集apache服務的日志文件
[root@logstash ~]#yum -y install httpd
[root@logstash ~]#systemctl start httpd

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

4.2?安裝logstash

[root@logstash ~]#cd /opt   #上傳軟件包 logstash-5.5.1.rpm 到/opt目錄下
[root@logstash opt]#rpm -ivh logstash-5.5.1.rpm? ? ? ? ? ?
[root@logstash opt]#systemctl enable --now logstash.service
[root@logstash opt]#ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

4.3 測試Logstash

Logstash 命令常用選項:

常用選項 說明
-f 通過這個選項可以指定 Logstash 的配置文件,根據(jù)配置文件配置 Logstash 的輸入和輸出流
-e 從命令行中獲取,輸入、輸出后面跟著字符串,該字符串可以被當作 Logstash 的配置(如果是空,則默認使用 stdin 作為輸入,stdout 作為輸出)
-t 測試配置文件是否正確,然后退出

定義輸入和輸出流:

(1)輸入采用標準輸入,輸出采用標準輸出(類似管道)

#輸入采用標準輸入,輸出采用標準輸出(類似管道)
[root@logstash opt]#logstash -e 'input { stdin{} } output { stdout{} }'

......
www.baidu.com										#鍵入內(nèi)容(標準輸入)
2024-04-11T05:50:42.684Z logstash www.baidu.com		#輸出結(jié)果(標準輸出)
www.google.com										#鍵入內(nèi)容(標準輸入)
2024-04-11T05:51:07.295Z logstash www.google.com	#輸出結(jié)果(標準輸出)

//執(zhí)行 ctrl+c 退出

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

(2)?使用 rubydebug 輸出詳細格式顯示,codec 為一種編解碼器

#使用 rubydebug 輸出詳細格式顯示,codec 為一種編解碼器
[root@logstash opt]#logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'

......
www.baidu.com										#鍵入內(nèi)容(標準輸入)
{
    "@timestamp" => 2024-04-11T05:54:11.432Z,       #輸出結(jié)果(處理后的結(jié)果)
      "@version" => "1",
          "host" => "logstash",
       "message" => "www.baidu.com"
}

//執(zhí)行 ctrl+c 退出

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

(3)?使用 Logstash 將信息寫入 Elasticsearch 中

#使用 Logstash 將信息寫入 Elasticsearch 中
[root@logstash opt]#logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["172.16.12.13:9200"] } }'
			  輸入				輸出	    對接

......
www.baidu.com										#鍵入內(nèi)容(標準輸入)
www.sina.com.cn										#鍵入內(nèi)容(標準輸入)
www.google.com										#鍵入內(nèi)容(標準輸入)

//執(zhí)行 ctrl+c 退出

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

結(jié)果不在標準輸出顯示,而是發(fā)送至 Elasticsearch 中,可瀏覽器訪問 http://172.16.12.12:9100/ 查看索引信息和數(shù)據(jù)瀏覽

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

4.4?定義 logstash 配置文件

Logstash 配置文件基本由三部分組成:input、output 以及 filter(可選,根據(jù)需要選擇使用)

  • input:表示從數(shù)據(jù)源采集數(shù)據(jù),常見的數(shù)據(jù)源如Kafka、日志文件等
  • filter:表示數(shù)據(jù)處理層,包括對數(shù)據(jù)進行格式化處理、數(shù)據(jù)類型轉(zhuǎn)換、數(shù)據(jù)過濾等,支持正則表達式
  • output:表示將Logstash收集的數(shù)據(jù)經(jīng)由過濾器處理之后輸出到Elasticsearch。
#格式:
input {...}
filter {...}
output {...}
#在每個部分中,也可以指定多個訪問方式。例如,若要指定兩個日志來源文件,則格式如下:
input {
?? ?file { path =>"/var/log/messages" type =>"syslog"}
?? ?file { path =>"/var/log/httpd/access.log" type =>"apache"}
}

修改 Logstash 配置文件,讓其收集系統(tǒng)日志/var/log/messages,并將其輸出到 elasticsearch 中

[root@logstash opt]#chmod +r /var/log/messages?? ???#讓其他用戶Logstash可以讀取日志

[root@logstash opt]#vim /etc/logstash/conf.d/system.conf
input {
    file{
        path =>"/var/log/messages"        #指定要收集的日志的位置
        type =>"system"                   #自定義日志類型標識
        start_position =>"beginning"      #表示從開始處收集
    }
}
output {
    elasticsearch {                       #輸出到 elasticsearch
        hosts => ["172.16.12.12:9200"]    #指定 elasticsearch 服務器的地址和端口
        index =>"system-%{+YYYY.MM.dd}"   #指定輸出到 elasticsearch 的索引格式
    }
}
[root@logstash opt]#systemctl restart logstash.service

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

瀏覽器訪問 http://172.16.12.12:9100/ 查看索引信息

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

5、ELK Kiabana 部署

安裝部署在es_node1節(jié)點上

1.1 安裝 Kiabana

[root@es_node1 ~]#cd /opt      #上傳軟件包 kibana-5.5.1-x86_64.rpm 到/opt目錄
[root@es_node1 opt]#rpm -ivh kibana-5.5.1-x86_64.rpm

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

1.2 設置 Kibana 的主配置文件并啟動服務

[root@es_node1 opt]#vim /etc/kibana/kibana.yml
--2--取消注釋,Kiabana 服務的默認監(jiān)聽端口為5601
server.port: 5601
--7--取消注釋,設置 Kiabana 的監(jiān)聽地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"
--21--取消注釋,設置和 Elasticsearch 建立連接的地址和端口
elasticsearch.url: "http://172.16.12.12:9200"?
--30--取消注釋,設置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"

[root@es_node1 opt]#systemctl enable --now kibana.service
[root@es_node1 opt]#netstat -natp | grep 5601      #查看5601端口進程

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

1.3 驗證 Kibana

瀏覽器訪問 http://172.16.12.12:5601
第一次登錄需要添加一個 Elasticsearch 索引:
Index name or pattern
//輸入:system-*?? ??? ??? ?#在索引名中輸入之前配置的 Output 前綴“system”

單擊 “create” 按鈕創(chuàng)建,單擊 “Discover” 按鈕可查看圖表信息及日志信息。

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

數(shù)據(jù)展示可以分類顯示,在“Available Fields”中的“選項”,然后單擊 “add”按鈕,可以看到按照“選項”篩選后的結(jié)果

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

1.4?將 Apache 服務器的日志(訪問的、錯誤的)添加到 Elasticsearch 并通過 Kibana 顯示

在logstash節(jié)點服務器上操作:

[root@logstash ~]#vim /etc/logstash/conf.d/apache_log.conf
input {
    file{
        path => "/etc/httpd/logs/access_log"
        type => "access"
        start_position => "beginning"
    }
    file{
        path => "/etc/httpd/logs/error_log"
        type => "error"
        start_position => "beginning"
    }
}
output {
    if [type] == "access" {
        elasticsearch {
            hosts => ["172.16.12.12:9200"]
            index => "apache_access-%{+YYYY.MM.dd}"
        }
    }
        if [type] == "error" {
        elasticsearch {
            hosts => ["172.16.12.12:9200"]
            index => "apache_error-%{+YYYY.MM.dd}"
        }
    }
}

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

[root@logstash ~]#cd /etc/logstash/conf.d/
[root@logstash conf.d]#logstash -f apache_log.conf

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

客戶端測試:?

瀏覽器先訪問apache服務器,否則訪問 http://172.16.12.12:9100無法有apache_access-2024.04.11索引

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

瀏覽器訪問 http://172.16.12.12:9100 查看索引是否創(chuàng)建

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

瀏覽器訪問 http://192.168.10.13:5601 登錄 Kibana,單擊“Create Index Pattern”按鈕添加索引, 在索引名中輸入之前配置的 Output 前綴 apache_access-*,并單擊“Create”按鈕。在用相同的方法添加 apache_error-*索引

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

選擇“Discover”選項卡,在中間下拉列表中選擇剛添加的 apache_access-* 、apache_error-* 索引, 可以查看相應的圖表及日志信息

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

三、搭建ELFK(Filebeat+ELK?)

filebeat + Logstash + Elasticsearch + Kibana模式

  • 這是一種更加完善和靈活的架構(gòu),適合處理復雜的日志數(shù)據(jù)
  • 在這種模式下,filebeat(beats)負責收日志文件,并將其發(fā)送到Logstash進行處理
  • logstash可以對日志數(shù)據(jù)進行更多的過濾、轉(zhuǎn)換和增強的操作并將其發(fā)送到Elasticsearch進行索引
  • kibana則可以用來查看和分析日志數(shù)據(jù)

1、環(huán)境部署

?在上面ELK搭建成功的環(huán)境下,只需要部署安裝filebeat?

服務器 配置(越高性能越好) 主機名 ip地址 主要軟件
es_node1節(jié)點 2C/4G es_node1 172.16.12.12 ElasticSearch、Kibana
es_node2節(jié)點 2C/4G es_node2 172.16.12.13 ElasticSearch
logstash節(jié)點 / logstash 172.16.12.10

Logstash、Apache

filebeat / filebeat 172.16.12.15 filebeat

?(1)關(guān)閉filebeat?服務器的防火墻和核心防護

[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0

(2)修改filebeat的主機名

[root@localhost ~]#hostnamectl set-hostname filebeat
[root@localhost ~]#bash

數(shù)據(jù)流向:?filebeat ---->? logstash ---->?ElasticSearch ----> Kibana?

2、ELFK Filebeat 部署

1.1?安裝 Filebeat

[root@filebeat ~]#cd /opt #上傳軟件包 filebeat-6.6.1-x86_64.rpm 到/opt目錄
[root@filebeat opt]#rpm -ivh filebeat-6.6.1-x86_64.rpm

1.2 設置 filebeat 的主配置文件

[root@filebeat opt]#vim /etc/filebeat/filebeat.yml
filebeat.prospectors:
- type: log          #指定 log 類型,從日志文件中讀取消息
  enabled: true
  paths:
    - /var/log/messages       #指定監(jiān)控的日志文件
    - /var/log/*.log
  fields:            #可以使用 fields 配置選項設置一些參數(shù)字段添加到 output 中
    service_name: filebeat
    log_type: log
    service_id: 172.16.12.15

--------------Elasticsearch output-------------------
(全部注釋掉)

----------------Logstash output---------------------
output.logstash:
  hosts: ["172.16.12.10:5044"]      #指定 logstash 的 IP 和端口

#啟動filebeat
[root@filebeat opt]#systemctl start filebeat.service 
[root@filebeat opt]#filebeat -e -c  /etc/filebeat/filebeat.yml

#-e: 這是一個參數(shù),表示以交互式模式(interactive mode)啟動 Filebeat。在交互式模式下,F(xiàn)ilebeat 會將日志輸出打印到控制臺,方便用戶查看實時日志信息
#-c filebeat.yml: 這也是一個參數(shù),指定了 Filebeat 的配置文件。通過指定這個配置文件,F(xiàn)ilebeat 將會加載其中定義的配置選項和設置

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

1.3 在 Logstash 組件所在節(jié)點上新建一個 Logstash 配置文件

[root@logstash ~]#cd /etc/logstash/conf.d
[root@logstash conf.d]#vim logstash.conf
input {
    beats {
        port => "5044"
    }
}
output {
    elasticsearch {
        hosts => ["172.16.12.12:9200"]
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}

[root@logstash conf.d]#logstash -f logstash.conf   #啟動logstash

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

1.4 登錄到Kibana進行測試

瀏覽器訪問 http://172.16.12.12:9100 查看索引是否創(chuàng)建

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

瀏覽器訪問 http://172.16.12.12:5601 登錄 Kibana,單擊“Create Index Pattern”按鈕添加索引“filebeat-*”,單擊 “create” 按鈕創(chuàng)建,單擊 “Discover” 按鈕可查看圖表信息及日志信息

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

elk日志分析系統(tǒng),elk,elasticsearch,大數(shù)據(jù),數(shù)據(jù)庫,運維

四、總結(jié)

1、ELK日志分析系統(tǒng)

一套基于Elasticsearch、Logstash、Kibana三個開源的日志收集、存儲、檢索和可視化的解決方案

ELK可以幫助用戶快速定位和分析應用程序的故障,監(jiān)控應用程序的性能和安全性,以及提供豐富的數(shù)據(jù)分析和展示功能

  • Elasticsearch:是一個分布式和搜索和分析引擎,它可以對各種類型的數(shù)據(jù)進行近實時的索引和査詢,支持高可用和水平擴展性
  • logstash:是一個數(shù)據(jù)處理管道,它可以從多個來源采集數(shù)據(jù),對數(shù)據(jù)進行過濾、轉(zhuǎn)換和增強,然后將數(shù)據(jù)發(fā)送到Elasticsearch或者其他的目的地
  • Kibana:是一個針對glasticsearch的數(shù)據(jù)可視化平臺,它可以通過各種圖表、儀表盤和地圖來展示和探索Elasticsearch中的數(shù)據(jù)

2、feilbeat + Logstash + Elasticsearch + Kibana模式

這是一種更加完善和靈活的架構(gòu),適合處理復雜的日志數(shù)據(jù)。

在這種模式下,filebeat(beats)負責收日志文件,并將其發(fā)送到Logstash進行處理。

logstash可以對日志數(shù)據(jù)進行更多的過濾、轉(zhuǎn)換和增強的操作并將其發(fā)送到Elasticsearch進行索引。

kibana則可以用來查看和分析日志數(shù)據(jù)

3、feilbeat + 緩存/消息隊列+ Logstash + Elasticsearch + Kibana 模式

這是一種加健壯高效的架構(gòu),適合處理海量復雜的日志數(shù)據(jù)。

在這種模式下,filebeat和iogstach之間加入緩存或消息隊列組件,如redis、kafka或RabbitMQ等。

這樣可以降低對目志源主機的影響 ,提高目志傳輸?shù)姆€(wěn)定性和可靠性,以及實現(xiàn)負載均衡和高可用文章來源地址http://www.zghlxwxcb.cn/news/detail-857698.html

到了這里,關(guān)于ELK(Elasticsearch+Logstash+Kibana)日志分析系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • ELK日志平臺(elasticsearch+logstash+kibana)搭建

    ELK日志平臺(elasticsearch+logstash+kibana)搭建

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 為了實現(xiàn)分布式日志數(shù)據(jù)統(tǒng)一收集,實現(xiàn)集中式查詢和管理 故障排查 安全信息和事件管理 ELK 是三個開源項目的首字母縮寫,這三個項目分別是: Elasticsearch 、 Logstash 和 Kibana 。 ? Elasticsearch 是一個搜索

    2024年02月03日
    瀏覽(22)
  • elk(elasticsearch+logstash+kibana)搭建日志監(jiān)控平臺

    elk(elasticsearch+logstash+kibana)搭建日志監(jiān)控平臺

    目錄 elk架構(gòu)原理 安裝部署elasticsearch 什么是elasticsearch 創(chuàng)建elasticserch docker容器 ?安裝部署kibana 什么是Kinana 創(chuàng)建Kibana docker容器 ? ? ? ? 拉取鏡像 ? ? ? ? 創(chuàng)建配置文件:D:Programsdockerkibanakibana.yml ? ? ? ? ?創(chuàng)建并運行kibana容器 ? ? ? ? 驗證登錄kibana 安裝部署logstash 什么

    2024年02月04日
    瀏覽(51)
  • ELK 企業(yè)級日志分析系統(tǒng)(ElasticSearch、Logstash 和 Kiabana 詳解)

    ELK 企業(yè)級日志分析系統(tǒng)(ElasticSearch、Logstash 和 Kiabana 詳解)

    目錄 一.ELK簡介 1.1ELK的概述 ?1.2ELK的組成 1.2.1?ElasticSearch ?1.2.2 Logstash 1.2.3 Kibana? ?1.2.4 小總結(jié) ?1.3可以添加其他組件 ?1.4filebeat 結(jié)合 logstash 帶來好處 1.5日志處理的步驟? ?二.Elasticsearch 2.1Elasticsearch概述 ?2.2Elasticsearch核心概念 2.2.1接近實時(NRT) 2.2.2cluster集群,ES是一個分布式

    2024年02月13日
    瀏覽(19)
  • 1-ELK+ Elasticsearch+head+kibana、企業(yè)內(nèi)部日志分析系統(tǒng)

    1-ELK+ Elasticsearch+head+kibana、企業(yè)內(nèi)部日志分析系統(tǒng)

    ELK由ElasticSearch、Logstash和Kibana三個開源工具組成: 概念圖? ? 1、Elasticsearch: ElasticSearch是一個基于Lucene的開源分布式搜索服務。 只搜索和分析日志 特點:分布式,零配置,自動發(fā)現(xiàn),索引自動分片,索引副本機制,多數(shù)據(jù)源等。它提供了一個分布式多用戶能力的全文搜索引

    2024年02月06日
    瀏覽(21)
  • 2-ELK+ Elasticsearch+head+kibana、企業(yè)內(nèi)部日志分析系統(tǒng)

    2-ELK+ Elasticsearch+head+kibana、企業(yè)內(nèi)部日志分析系統(tǒng)

    在一臺新的虛擬機 系統(tǒng)類型:Centos7.5 節(jié)點IP: 192.168.246.235 軟件版本:nginx-1.14.2、kibana-6.5.4-linux-x86_64.tar.gz 安裝配置Kibana (1)安裝 安裝包看上篇怎么下載的 (2)配置 在文件最后面,加上即可 配置項含義: 其他配置項可參考: (3)啟動 安裝配置Nginx反向代理 (1)配置

    2023年04月09日
    瀏覽(24)
  • ELK(ElasticSearch, Logstash, Kibana)

    ELK(ElasticSearch, Logstash, Kibana)

    ELK簡介 ELK是三個開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟件。新增了一個FileBeat,它是一個輕量級的日志收集處理工具(Agent),F(xiàn)ilebeat占用資源少,適合于在各個服務器上搜集日志后傳輸給Logstash,官方也推薦此工具。 Elasticsearch是個開源分布式搜

    2023年04月09日
    瀏覽(26)
  • ELK(elasticsearch+logstash+kibana+beats)

    ELK(elasticsearch+logstash+kibana+beats)

    Elasticsearch :Elasticsearch(以下簡稱ES) 是一個分布式、RESTful 風格的搜索和數(shù)據(jù)分析引擎,能夠解決不斷涌現(xiàn)出的各種用例。 ES是 Elastic Stack 的核心,采用集中式數(shù)據(jù)存儲,可以通過機器學習來發(fā)現(xiàn)潛在問題。ES能夠執(zhí)行及合并多種類型的搜索(結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、地

    2024年02月16日
    瀏覽(27)
  • docker安裝elk(Elasticsearch+logstash+kibana)

    docker安裝elk(Elasticsearch+logstash+kibana)

    1. 安裝Docker 如果您還沒有安裝Docker,請先安裝Docker。您可以按照官方文檔進行安裝:https://docs.docker.com/engine/installation/ 安裝 docker-ce [root@k8s-master ~]# yum install docker-ce -y [root@k8s-master ~]# systemctl start docker systemctl enable docker.service ? 配置 docker 鏡像加速器和驅(qū)動 [root@k8s-master ~]#vi

    2024年01月20日
    瀏覽(98)
  • springboot整合elk(Elasticsearch+Logstash+Kibana)

    功能介紹 ELK 是軟件集合Elasticsearch、Logstash、Kibana的簡稱,由這三個軟件及其相關(guān)的組件可以打造大規(guī)模日志實時處理系統(tǒng)。 Elasticsearch 是一個基于 Lucene 的、支持全文索引的分布式存儲和索引引擎,主要負責將日志索引并存儲起來,方便業(yè)務方檢索查詢。 Logstash是一個日志收

    2024年02月06日
    瀏覽(25)
  • Elasticsearch,Logstash和Kibana安裝部署(ELK Stack)

    Elasticsearch,Logstash和Kibana安裝部署(ELK Stack)

    前言 當今數(shù)字化時代,信息的快速增長使得各類組織和企業(yè)面臨著海量數(shù)據(jù)的處理和分析挑戰(zhàn)。在這樣的背景下,ELK Stack(Elasticsearch、Logstash 和 Kibana)作為一套強大的開源工具組合,成為了解決數(shù)據(jù)管理、搜索和可視化的首選方案。無論是監(jiān)控日志、實時數(shù)據(jù)分析,還是構(gòu)

    2024年02月10日
    瀏覽(51)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包