Elastic Stack(ELK)介紹及相關示例實驗

Elastic Stack是一套支持數據采集、存儲、分析、展現的全流程數據分析工具,舊時稱作ELK(Elasticsearch,Logstash,Kibana的縮寫,)。Elastic Stack由一系列的工具集組成,Logstash & Beats:數據采集工具,logstash適合大批量數據的采集,其結構較重,消耗資源較大,適合集群化部署。

本節索引:

一、Elastic Stack介紹

二、核心組件之ElasticSearch

三、核心組件之Logstash

四、核心組件之Kibana

五、核心組件之Filebeat

 

一、Elastic Stack介紹

官方網站:https://www.elastic.co/products

主要功能:

(1)日志存儲和分析

如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法查閱日志。這樣是不是感覺很繁

瑣和效率低下。當務之急我們使用集中化的日志管理,例如:開源的syslog,將所有服務器上的日志收集

匯總。

集中化管理日志后,日志的統計和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux

命令能實現檢索和統計,但是對于要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的

方法難免有點力不從心。

開源實時日志分析elastic stack平臺能夠完美的解決我們上述的問題

 

(2)站內內容搜索

大型搜索引擎需用到實時計算

中小型企業站內搜索不需要實時計算,過去的解決方案一般為:Solr

ElasticSearch出現后,由于其支持彈性搜索引擎,分布式運行,可運行在多個節點上的優勢,逐漸占領

了站內搜索領域,Solr解決方案慢慢被淘汰

1

 

搜索引擎一般由兩部分組成:搜索組件與索引組件

搜索組件:提供用戶友好的搜索界面,接入用戶搜索信息

索引組件:分析、改造原始數據成為適合搜索引擎搜索的數據結構

 

早期ELK:核心組成由ElasticSearch、LogstashKibana三個開源工具組成

1、Logstash是一個完全開源的工具,他可以對你的日志進行收集、分析,并將其存儲供以后使用(如,搜

索)

2、ElasticSearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索

引副本機制,restful風格接口,多數據源,自動搜索負載等

3、Kibana也是一個開源和免費的工具,它可以為Logstash和ElasticSearch提供的日志分析友好的Web界

面,可以幫助你匯總、分析和搜索重要數據日志

 

后期在ELK的基礎上加入了filebeat,并且改名為Elastic Stack

Filebeat是一個日志文件托運工具,在你的服務器上安裝客戶端后,filebeat會監控日志目錄或者指定的日

志文件,追蹤讀取這些文件(追蹤文件的變化,不停的讀),并且轉發這些信息到elasticsearch或者

logstash中存放。

 

二、核心組件之ElasticSearch

ElasticSearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索

引副本機制,restful風格接口,多數據源,自動搜索負載等

監聽端口:

? ? 9200:對客戶端提供服務

? ? 9300:集群內部事務,選舉誰是主節點

官網下載:https://www.elastic.co/downloads/past-releases

版本說明:ElasticSearch早期生產環境中由于ELK各核心版本不統一,以2版本居多,5版本之后各組件版

本進行了統一

本文實驗均已ELK 5.6.8版本為準

 

實驗:安裝ElasticSearch集群

前期準備:

虛擬機3臺

node1:192.168.30.10

node2:192.168.30.18

node3:192.168.30.27

 

具體步驟:

node1,node2,node3端操作:

安裝jdk開發環境

yum install java-1.8.0-openjdk-devel -y

下載elasticsearch安裝包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.rpm

安裝elasticsearch

rpm -ivh elasticsearch-5.6.8.rpm

主要配置文件:

[root@node1 ~]#ls /etc/elasticsearch/

elasticsearch.yml ? jvm.options ? log4j2.properties ? scripts

vim jvm.options

-Xms1g? ???????????????? #修改初始內存大小

-Xmx1g

1

vim elasticsearch.yml

—————- Cluster ——————

cluster.name:wxlinux????????????? #集群名稱,橋接環境下注意修改

————— Network —————–

network.host:本機IP地址

—————– Node ——————–

node.name:node1 or 2 or 3

—————– Paths ——————-

path.data:/myels/data

path.logs:/mysles/logs

————— Discovery —————

discovery.zen.ping.unicast.hosts: [“192.168.30.10”, “192.168.30.18”,”192.168.30.27″]

discovery.zen.minimum_master_nodes: 2

 

創建數據與日志目錄:

mkdir -pv /myels/{data,logs}

chown elasticsearch.elasticsearch? /myels/*

啟動elasticsearch服務

systemctl start elasticsearch

查看對應端口是否處于監聽狀態

ss -ntl

2

判定集群是否正常啟動生效

curl -XGET http://192.168.30.18:9200/

3

 

三、核心組件之Logstash

Logstash是一個完全開源的工具,他可以對你的日志進行收集、分析,并將其存儲供以后使用(如,搜

索)

Logstash有三類插件:

1、輸入插件:input,從指定的數據源抽取數據

2、過濾器插件:ouput,在本地進行格式轉換

3、輸出插件:filter,將處理后的結果保留在指定數據庫

官方文檔:https://www.elastic.co/guide/en/logstash-versioned-plugins/current/index.html

 

配置文件:

/etc/logstash.conf

/etc/logstash/conf.d/

注意:logstash配置conf.d目錄不要求后綴,任意格式均生效

 

示例1:安裝logstash

yum Install java-1.8.0-openjdk-devel

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.8.rpm

rpm -ivh logstash-5.6.8.rpm

添加到環境變量:

vim /etc/profile.d/logstash.sh

PATH=/usr/share/logstash/bin:$PATH

 

. /etc/profile.d/logstash.sh

 

配置測試:

vim test1.conf

1

語法檢查

logstash -f test1.conf -t

加載運行配置

logstash -f test1.conf

2

 

示例2:實現標準輸出美觀化

3

加載運行配置

logstash -f test2.conf

4

 

 

示例3:Logstash實現結構化日志輸出

客戶端模擬隨機IP進行訪問,在logstash端創建200個測試頁面:

[root@logstash ~]#for i in {1..200};do echo “Test Page $i” > /var/www/html/test$i.html;done

修改http配置文件中的日志格式

5

[root@client ~]#while true;do client=$[$RANDOM%254+1];curl –header “X-Forwarded-For: 192.30.0.$client” http://192.168.30.10/test$client.html;sleep 1;done

6

Logstash端:

修改配置文件:

7

當客戶端進行訪問時,logstash將日志進行結構化輸出

8

 

示例4:引入grok過濾器插件

功能:使非結構化日志轉化為結構化日志格式

9

加載運行配置

logstash -f test4.conf

10

 

示例5:引用grok內置變量

11

加載運行配置

logstash -f test5.conf

12

當日志來源有多個時,可加判斷語句:

13

 

示例6:date filter插件示例

功能:將@timestamp的時間替換為timestamp字段,原@timestamp時間移除

14

加載運行配置

logstash -f test5.conf

15

 

示例7:Geoip插件

功能:根據ip地址定位來自哪個地區或城市

下載IP地址信息庫

16

查看配置

17

vim test6.conf

18

加載運行配置

logstash -f test6.conf

19

 

 

 

四、核心組件之Kibana

Kibana是一個開源和免費的工具,它可以為Logstash和ElasticSearch提供的日志分析友好的Web界面,可

以幫助你匯總、分析和搜索重要數據日志

默認監聽5601端口,工作于http協議

 

示例:安裝kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.8-x86_64.rpm

rpm -ivh kibana-5.6.8-x86_64.rpm

 

修改kibana配置文件

vim kibana.conf

server.port:5601

server.host:”0.0.0.0″???????????????????????????????? #5601監聽的本地地址

server.name:”master.wxlinux.com”

elasticsearch.url:”http://node1:9200″

 

查看5601端口已處于監聽狀態

1

瀏覽器訪問http://localhost:5601

 

進行一些相關設置即可正常使用

2

輸入關鍵詞可進行搜索

3

可根據狀態碼進行范圍查詢

4

生成統計表圖結構

5

也可根據geoip信息生成位置訪問統計

6

 

五、核心組件之Filebeat

Filebeat是一個日志文件托運工具,在你的服務器上安裝客戶端后,filebeat會監控日志目錄或者指定的日

志文件,追蹤讀取這些文件(追蹤文件的變化,不停的讀),并且轉發這些信息到elasticsearch或者

logstash中存放。

早期部署ELK時,需要將Logstatsh安裝于每臺需要收集日志的服務器上,但由于Logstash屬于重量級應

用。為了減少服務器的性能消耗,在filebeat出現后,一般利用filebeat用來替代過去logstash的收集、讀取

日志功能,而將logstash分離出來做成集群專門來負責轉換格式使用。

 

官網介紹:輕量級的數據搬用工具

1

 

 

示例:實現由filebeat收集服務器日志,轉發給elasticsearch

前期準備:

虛擬機三臺

filebeat:192.168.30.10

elasticsearch 1:192.168.30.18

elasticsearch 2:192.168.30.27

其中elasticsearch 1與elasticsearch 2組成一個elasticsearch集群

 

具體步驟

安裝filebeat:

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.8-x86_64.rpm

rpm -ivh filebeat-5.6.8-x86_64.rpm

修改配置文件:

vim /etc/filebeat/filebeat.yml

修改輸入類型為log,文件路徑為httpd訪問日志

2

輸出到elasticsearch,指定主機IP地址

3

啟動filebeat服務

systemctl start filebeat

查看filebeat文件已在elasticsearch端生成,且不斷增加中

4

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/104311

(6)
wangxczwangxcz
上一篇 2018-07-31 20:54
下一篇 2018-08-01 00:12

相關推薦

  • 第一周-Linux基礎

    一、計算機的組成及其功能 由上圖可知,計算機由硬件系統和軟件系統組成: ? 1. 計算機硬件系統從邏輯上主要由運算器、控制器、存儲器、輸入設備、輸出設備這五部分組成。 ● 存儲器:實現記憶功能的部件用來存放計算程序及參與運算的各種數據;● 運算器:負責數據的算術運算和邏輯運算即數據的加工處理;● 控制器:負責對程序規定的控制信息進行分析,控制并協調輸入,輸出…

    Linux筆記 2018-05-11
  • linux救援模式使用方法

    漂亮的小哥哥小姐姐進來看看嘍

    2018-04-20
  • 如何在VMware下安裝CentOS7

    圖文詳解安裝Centos7系統

    2018-07-20
  • 第三周筆記

    Linux的文本處理三劍客> grep:文本過濾(模式:pattern)工具> grep, egrep, fgrep(不支持正則表達式搜索)> sed:stream editor,文本編輯工具> awk:Linux上的實現gawk,文本報告生成器– ### grep作用是根據“pattern”對目標文件進行搜索,并且顯示匹…

    Linux筆記 2018-04-15
  • LINUX 進程管理

    #### hostname hostname [OPTION] [HOSTNAME] 默認選項:修改主機名為[HOSTNAME] 備注:臨時生效如果想永久生效則需要修改文件/etc/sysconfig/network文件 選項 -I :取出本機上所有的非回環地址 示例 “` [root@zhangxiao network-scripts]#hos…

    Linux筆記 2018-05-06
  • 淺析網絡IO模型

    物是人非事事休,欲語淚先流。

    2018-04-09
欧美性久久久久