ELK日誌分析系統(實例!!!)

ELK日誌分析系統概述

ELK是Elasticsearch、Logstash、Kibana的簡稱
Elasticsearch是實時全文搜索和分析引擎
Logstash是一個用來蒐集、分析、過濾日誌的工具
Kibana是一個基於Web的圖形界面,用於搜索、分析和可視化存儲在 Elasticsearch指標中的日誌數據

日誌服務器

提高安全性
集中存放日誌
缺陷:對日誌的分析困難

ELK日誌分析系統

在這裏插入圖片描述

收集數據:LogstashAgent
數據存儲與建立索引:ElasticSearchCluster
數據可視化:KilbanaServer

日誌處理步驟

 1.將日誌進行集中化管理
 2.將日誌格式化( Logstash )並輸出到Elasticsearch
 3.對格式化後的數據進行索引和存儲( Elasticsearch )
 4.前端數據的展示( Kibana )

Elasticsearch介紹

Elasticsearch的概述

 提供了一個分佈式多用戶能力的全文搜索引擎

Elasticsearch的概念

 接近實時
 集羣
 節點
 索引:索引(庫)-->類型(表)-->文檔(記錄)
 分片和副本

Logstash介紹

 一款強大的數據處理工具,可以實現數據傳輸、格式處理、格式化輸出
 數據輸入、數據加工(如過濾,改寫等)以及數據輸出

LogStash主要組件

 Shipper
 Indexer
 Broker
 Search and Storage
 Web Interface

Kibana介紹

 一個針對Elasticsearch的開源分析及可視化平臺
 搜索、查看存儲在Elasticsearch索引中的數據
 通過各種圖表進行高級數據分析及展示

Kibana主要功能

 Elasticsearch無縫之集成
 整合數據,複雜數據分析
 讓更多團隊成員受益
 接口靈活,分享更容易
 配置簡單,可視化多數據源
 簡單數據導出

部署ELK日誌分析系統

需求描述

 配置ELK日誌分析羣集
 使用Logstash收集日誌
 使用Kibana查看分析日誌

安裝環境

 全部關閉防火牆
 Node1、Node2節點內存分配4G,Apache節點分配1G內存
 通過VMware虛擬網絡Vmnet8連接
主機名稱 IP地址 主要軟件
Node1服務器 192.168.142.152 Elasticsearch、Kibana
Node2服務器 192.168.142.153 Elasticsearch
Apache服務器 192.168.142.155 Logstash

第一步:配置ES節點1服務器

1.關閉防火牆及安全功能

systemctl stop firewalld.service  
setenforce 0

2.修改主機名配置文件

vim /etc/hosts
192.168.142.152 node1
192.168.142.153 node2

3.遠程掛載資源包

mount.cifs //192.168.142.1/elk /mnt

4.安裝軟件包

cd /mnt
rpm -ivh elasticsearch-5.5.0.rpm

5.加載系統服務

systemctl daemon-reload

6.開機自啓動服務

systemctl enable elasticsearch.service

7.備份配置文件

cd /etc/elasticsearch/
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak

8.修改elasticsearch主配置文件

vim /etc/elasticsearch/elasticsearch.yml

#第17行,取消註釋並修改集羣名稱
cluster.name: my-elk-cluster

#第23行,取消註釋修改節點名字
node.name: node1

#第33行,取消註釋修改數據存放路徑
path.data: /data/elk_data

#第37行,取消註釋修改日誌存放路徑
path.logs: /var/log/elasticsearch/

#第43行,取消註釋並修改,取消在不啓動時鎖定內存
bootstrap.memory_lock: false

#第55行,取消註釋並修改地址,放入所有的地址(0.0.0.0代表所有地址)
network.host: 0.0.0.0

#第59行,取消註釋,放開服務端口
http.port: 9200

#第68行,取消註釋修改節點名稱
discovery.zen.ping.unicast.hosts: ["node1", "node2"]

9.創建數據庫存放路徑

mkdir -p /data/elk_data

10.授權數據庫存放路徑

chown elasticsearch:elasticsearch /data/elk_data/

11.開啓elasticsearch服務

systemctl start elasticsearch.service 

12.查看端口服務狀態

netstat -ntap | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      96970/java     

13.安裝編譯環境

yum install gcc gcc-c++ make -y

14.解壓node節點軟件包

cd /mnt
tar zxvf node-v8.2.1.tar.gz -C /opt

15.配置node

cd /opt/node-v8.2.1/
./configure

16.編譯安裝

make && make install

第二步:安裝phantomjs前端框架

1.解壓phantomjs軟件包

cd /mnt
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src 

2.切換目錄查看phantomjs命令

cd /usr/local/src/phantomjs-2.1.1-linux-x86_64//bin
ls
phantomjs

3.複製目錄到系統目錄

cp phantomjs /usr/local/bin/

第三步:安裝elasticsearch-head數據可視化工具

1.解壓elasticsearch-head軟件包

cd /mnt
tar zxvf elasticsearch-head.tar.gz -C /usr/local/src

2.安裝elasticsearch-head數據可視化工具
cd /usr/local/src/elasticsearch-head/
npm install

3.修改elasticsearch主配置文件

vim /etc/elasticsearch/elasticsearch.yml
#末行添加以下內容
http.cors.enabled: true
http.cors.allow-origin: "*"

4.開啓elasticsearch服務

systemctl restart elasticsearch.service

5.啓動後臺運行

npm run start &

6.查看服務端口狀態

netstat -ntap | grep 9100

tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      50105/grunt         
[root@node1 elasticsearch-head]# netstat -ntap | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      96970/java   

第四步:ES節點2服務器 與節點1的配置一樣,重複執行上述操作即可!!!


第五步:使用瀏覽器輸入192.168.142.152:9100網址,並連接另一節點的地址,檢查羣集健康狀態在這裏插入圖片描述在這裏插入圖片描述


第六步:創建索引

在這裏插入圖片描述回到概覽即可看到創建好的索引!
在這裏插入圖片描述

第七步:配置Apache服務器,安裝 logstash 蒐集日誌蒐集

#安裝Apache服務
yum install -y httpd

#遠程掛載資源包
mount.cifs //192.168.142.1/elk /mnt

#切換到掛載點
cd /mnt

#安裝logstash
rpm -ivh logstash-5.5.1.rpm 

#開機自啓動logstash服務
systemctl enable logstash.service

#啓動logstash服務
systemctl start logstash.service

#建立命令軟鏈接到系統
ln -s /usr/share/logstash/bin/logstash /usr/local/bin


#切換日誌目錄
cd /var/log

#授予他人讀取權限
chmod o+r messages 

#查看權限
ll

#切入logstash配置目錄
cd /etc/logstash/conf.d/

#編輯文件
vim system.conf

#寫入以下內容,用以收集系統日誌
input {
        file{
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
        }
}
output {
        elasticsearch {
		#地址指向node1節點
        hosts => ["192.168.142.152:9200"]
        index => "system-%{+YYYY.MM.dd}"
        }
}

#重啓服務
systemctl restart logstash.service

第八步:查看收集到的日誌信息

在這裏插入圖片描述在這裏插入圖片描述


第九步:回到node1節點安裝kibana

#切入掛載點
cd /mnt

#安裝kibana
rpm -ivh kibana-5.5.1-x86_64.rpm 

#切入kibana目錄
cd /etc/kibana/

#備份kibana.yml文件
cp kibana.yml kibana.yml.bak

#修改kibana.yml文件
vim kibana.yml

#取消第2行的註釋,放開5601端口
server.port: 5601

#取消第7行的註釋並修改地址,放入所有的地址(0.0.0.0代表所有地址)
server.host: "0.0.0.0"

#取消第21行的註釋並指向node1節點的url
elasticsearch.url: "http://192.168.142.152:9200"

#取消第30行註釋,放開kibana首頁
kibana.index: ".kibana"

#啓動kibana服務
systemctl start kibana.service

第十步:測試kibana展現日誌數據,使用瀏覽器訪問192.168.142.152:5601

在這裏插入圖片描述
在這裏插入圖片描述


第十一步:對接Apache主機的所有Apache日誌文件(在Apache服務器上操作)

#編輯Apache日誌配置文件
vim 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 => ["192.168.142.152:9200"]
        index => "apache_access-%{+YYYY.MM.dd}"
        }
    }   
        if [type] == "error" {
        elasticsearch {
        hosts => ["192.168.142.152:9200"]
        index => "apache_error-%{+YYYY.MM.dd}"
        }
    }
}


#重啓服務,稍等片刻!
logstash -f apache_log.conf

第十二步:測試Apache日誌信息展現

在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述

以上就是ELK日誌分析系統的全部內容了,謝謝閱讀!!!

發佈了95 篇原創文章 · 獲贊 7 · 訪問量 6281
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章