快速搭建ELK日誌分析系統

官網地址:https://www.elastic.co/cn/
官網權威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
安裝指南:https://www.elastic.co/guide/en/elasticsearch/reference/5.x/rpm.html

ELK是Elasticsearch、Logstash、Kibana的簡稱,這三者是核心套件,但並非全部。

Elasticsearch是實時全文搜索和分析引擎,提供蒐集、分析、存儲數據三大功能;是一套開放REST和JAVA API等結構提供高效搜索功能,可擴展的分佈式系統。它構建於Apache Lucene搜索引擎庫之上。

Logstash是一個用來蒐集、分析、過濾日誌的工具。它支持幾乎任何類型的日誌,包括系統日誌、錯誤日誌和自定義應用程序日誌。它可以從許多來源接收日誌,這些來源包括 syslog、消息傳遞(例如 RabbitMQ)和JMX,它能夠以多種方式輸出數據,包括電子郵件、websockets和Elasticsearch。

Kibana是一個基於Web的圖形界面,用於搜索、分析和可視化存儲在 Elasticsearch指標中的日誌數據。它利用Elasticsearch的REST接口來檢索數據,不僅允許用戶創建他們自己的數據的定製儀表板視圖,還允許他們以特殊的方式查詢和過濾數據

主要解決思路:建立集中式日誌收集系統,將所有節點上的日誌統一收集,管理,訪問。ELK提供了一整套解決方案,並且都是開源軟件,之間互相配合使用,完美銜接,高效的滿足了很多場合的應用。目前主流的一種日誌系統。
在這裏插入圖片描述
環境準備:

關閉防火牆、關閉 selinux
systemctl stop firewalld.service 
setenforce
服務器 安裝部署
10.0.0.21 jdk環境、elasticsearch、kibana
10.0.0.22 jdk環境、logstash

所需安裝包(可下載):
jdk-8u131-linux-x64_.rpm
elasticsearch-6.6.2.rpm
鏈接
kibana-6.6.2-x86_64.rpm
鏈接
logstash-6.6.0.rpm
鏈接

開始部署

1.安裝 jdk 環境

[root@fp-22 ELK]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

2.安裝 elasticsearch

[root@fp-21 ELK]# yum -y install elasticsearch-6.6.2.rpm
Loaded plugins: fastestmirror
……
Installed:
  elasticsearch.noarch 0:6.6.2-1                                                                               
Complete!

修改配置文件,打開主機IP和端口的註釋,將主機IP修改爲自己的IP,我這裏是10.0.0.21

[root@fp-21 elasticsearch]# vim elasticsearch.yml
 54 #
 55 network.host: 10.0.0.21
 56 #
 59 http.port: 9200
 60 #

保存退出,啓動服務

[root@fp-21 elasticsearch]# vim elasticsearch.yml

此時可以通過看日誌來判斷服務是否啓動

[root@fp-21 ~]# tail -f /var/log/elasticsearch/elasticsearch.log
……
[2020-02-12T22:22:32,409][INFO ][o.e.n.Node               ] [9ITBrSO] started
[2020-02-12T22:22:33,905][INFO ][o.e.l.LicenseService     ] [9ITBrSO] license [da7afc9e-0e8f-435c-b861-0e2d60a8fec5] mode [basic] - valid

通過查看,日誌顯示已經啓動,便可以去查端口是否啓動

[root@fp-21 elasticsearch]# ss -lntp |grep java
LISTEN     0      128       ::ffff:10.0.0.21:9200                    :::*                   users:(("java",pid=9525,fd=191))
LISTEN     0      128       ::ffff:10.0.0.21:9300                    :::*                   users:(("java",pid=9525,fd=183))

配置 elasticsearch,啓動完畢

3.安裝 logstash

[root@fp-22 ELK]# yum -y install logstash-6.6.0.rpm
Loaded plugins: fastestmirror
……
Installed:
  logstash.noarch 1:6.6.0-1                                                                                                          
Complete!

logstash 核心功能是存儲日誌、搜索日誌,所以我們要在配置文件中寫入一些主要信息

[root@fp-22 ELK]# cd /etc/logstash/conf.d/
[root@fp-22 conf.d]# vim messages.conf
input {
        file {
                path => "/var/log/messages"	# 日誌的路徑
                type => "messages-log"	# 日誌的類型
                start_position => "beginning"	# 日誌收集的位置
        }
}

output {
        elasticsearch {
                hosts => "10.0.0.21:9200"	# 日誌的主機 
                index => "messages_log-%{+YYYY.MM.dd}"	# 顯示的格式
        }
}

保存退出,啓動服務

[root@fp-22 conf.d]# systemctl start logstash.service

我們用日誌進行查看是否成功

[root@fp-22 ~]# tail -f /var/log/logstash/logstash-plain.log
……
[2020-02-12T22:37:25,312][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
[2020-02-12T22:37:25,429][WARN ][filewatch.tailmode.handlers.createinitial] failed to open /var/log/messages: #<Errno::EACCES: Permission denied - /var/log/messages>, ["org/jruby/RubyFile.java:366:in `initialize'", "org/jruby/RubyIO.java:1154:in `open'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-file-4.1.9/lib/filewatch/watched_file.rb:198:in `open'"]
1234

可以看到,啓動成功,但是有一個問題,沒有打開目錄的權限,所以此時,應該授權並重新啓動

[root@fp-22 conf.d]# chmod 755 -R /var/log/*
[root@fp-22 conf.d]# systemctl restart logstash.service

再次查看日誌

[root@fp-22 ~]# tail -f /var/log/logstash/logstash-plain.log
……
[2020-02-12T22:44:46,575][INFO ][filewatch.observingtail  ] START, creating Discoverer, Watch with file and sincedb collections
[2020-02-12T22:44:47,250][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

啓動成功,沒有問題,便可以去查看端口時候啓動成功

[root@fp-22 conf.d]# ss -lntp |grep 9600
LISTEN     0      50      [::ffff:127.0.0.1]:9600                  [::]:*                   users:(("java",pid=52665,fd=86))

配置 logstash,啓動完畢

4.安裝 kibana

[root@fp-21 ELK]# yum -y install kibana-6.6.2-x86_64.rpm
Loaded plugins: fastestmirror
……
Installed:
  kibana.x86_64 0:6.6.2-1                                                                                                            
Complete!

修改配置文件,將端口號、主機IP、elasticsearch IP修改並打開註釋

[root@fp-21 kibana]# vim kibana.yml
  2 server.port: 5601
  3 
  7 server.host: "10.0.0.21"
  8 
 28 elasticsearch.hosts: ["http://10.0.0.21:9200"]
 29 

保存退出,啓動服務

[root@fp-21 kibana]# systemctl start kibana.service 

查看端口是否啓動成功

[root@fp-21 kibana]# ss -lntp |grep 5601
LISTEN     0      128    10.0.0.21:5601                     *:*                   users:(("node",pid=11228,fd=18))

配置 kibana,啓動完畢

5.訪問頁面

在這裏插入圖片描述
添加索引,如下:

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
出現此頁面,添加索引成功
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述

6.給日誌添加可視化圖形

在這裏插入圖片描述
這裏我選擇的是線程圖
在這裏插入圖片描述
選擇索引
在這裏插入圖片描述在這裏插入圖片描述點擊便可查看
在這裏插入圖片描述
準備服務器–>安裝軟件–>搭建ELK環境–>收集日誌–>添加索引–>可視化圖形顯示

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