ELK企業日誌分析系統部署實戰!理論+實戰!

前言

一:理論部分

1.1:什麼是ELK日誌分析系統?有什麼作用?

  • ELK日誌分析系統是Logstash、Elasticsearch、Kibana開源軟件的集合,對外是作爲一個日誌管理系統的開源方案,它可以從任何來源、任何格式進行日誌搜索、分析與可視化展示

1.2:什麼原因催生了ELK日誌分析系統?

  • 日誌分析是運維工程師解決系統故障,發現問題的主要手段。日誌主要包括系統日誌、應用程序日誌和安全日誌。
  • 系統運維和開發人員可以通過日誌瞭解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌
    可以瞭解服務器的負荷,性能安全性,從而及時採取措施糾正錯誤。
  • 通常,日誌被分散的儲存在不同的設備上。如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法
    查閱日誌,即繁瑣又效率低下。爲此,我們可以使用集中化的日誌管理,例如:開源的syslog,將所有服務器上的日誌收集彙總。集中化管理日誌後,日誌的統計和檢索又成爲一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實現檢索和統計,但是對於更高要求的查詢、排序和統計等,再加上龐大的機器數量,使用這樣的方法依然難免有點力不從心。
  • 開源實時日誌分析ELK平臺能夠完美的解決我們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。

1.3:ELK日誌分析系統的開源工具解析

  • ELK由Logstash、ElasticSearch和Kiabana三個開源工具組成。
1.3.1:Logstash解析
  • Logstash是一個完全開源的工具,它可以對你的日誌進行收集、過濾、格式處理、格式化輸出,並將其存儲,供以後使用(如,搜索)。

  • Logstash由JRuby語言編寫,基於消息(message-based)的簡單架構,並運行在Java虛擬機(JVM)上。不同於分離的代理端(agent)或主機端(server),LogStash可配置單一的代理端(agent)與其它開源軟件結合,以實現不同的功能。

  • Logstash的理念很簡單,它只做3件事情:

    • Collect:數據輸入
    • Enrich:數據加工,如過濾,改寫等
    • Transport:數據輸出
  • 1、LogStash的主要組件:

    • Shipper:日誌收集者 。負責監控本地日誌文件的變化,及時把日誌文件的最新內容收集起來。通常,遠程代理端(agent)只需要運行這個組件即可;

    • Indexer:日誌存儲者。負責接收日誌並寫入到本地文件。

    • Broker:日誌Hub。負責連接多個Shipper和多個Indexer

    • Search and Storage:允許對事件進行搜索和存儲;

    • Web Interface:基於Web的展示界面

    • 正是由於以上組件在LogStash架構中可獨立部署,才提供了更好的集羣擴展性

  • 2、LogStash主機分類:

    • 代理主機(agent host):作爲事件的傳遞者(shipper),將各種日誌數據發送至中心主機;只需運行Logstash 代理(agent)程序;

    • 中心主機(central host):可運行包括中間轉發器(Broker)、索引器(Indexer)、搜索和存儲器(Search and Storage)、Web界面端(Web Interface)在內的各個組件,以實現對日誌數據的接收、處理和存儲

1.3.2:ElasticSearch解析
  • Elasticsearch,基於RESTful web接口。

  • Elasticsearch是用Java開發的,提供了一個分佈式多用戶能力的全文搜索引擎,設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。

  • Elasticsearch的基礎核心概念:

    • 1、接近實時(NRT)
      lasticsearch是一個接近實時的搜索平臺,這意味着,從索引一個文檔直到這個文檔能夠被搜索到有一個輕微的延遲(通常是1秒)

    • 2、集羣(cluster)
      一個集羣就是由一個或多個節點組織在一起,它們共同持有你整個的數據,並一起提供索引和搜索功能。其中一個節點爲主節點,這個主節點是可以通過選舉產生的,並提供跨節點的聯合索引和搜索的功能。集羣有一個唯一性標示的名字,默認是elasticsearch,集羣名字很重要,每個節點是基於集羣名字加入到其集羣中的。因此,確保在不同環境中使用不同的集羣名字。
      一個集羣可以只有一個節點。強烈建議在配置elasticsearch時,配置成集羣模式。

    • 3、節點(node)
      節點就是一臺單一的服務器,是集羣的一部分,存儲數據並參與集羣的索引和搜索功能。像集羣一樣,節點也是通過名字來標識,默認是在節點啓動時隨機分配的字符名。當然,你可以自己定義。該名字也很重要,在集羣中用於識別服務器對應的節點。

      節點可以通過指定集羣名字來加入到集羣中。默認情況,每個節點被設置成加入到elasticsearch集羣。如果啓動了多個節點,假設能自動發現對方,他們將會自動組建一個名爲elasticsearch的集羣。

    • 4、索引(index)
      一個索引就是一個擁有幾分相似特徵的文檔的集合。比如說,你可以有一個客戶數據的索引,另一個產品目錄的索引,還有一個訂單數據的索引。一個索引由一個名字來標識(必須全部是小寫字母的),並且當我們要對對應於這個索引中的文檔進行索引、搜索、更新和刪除的時候,都要使用到這個名字。在一個集羣中,如果你想,可以定義任意多的索引。
      ●索引相對於關係型數據庫的庫。

    • 5、類型(type)
      在一個索引中,你可以定義一種或多種類型。一個類型是你的索引的一個邏輯上的分類/分區,其語義完全由你來定。通常,會爲具有一組共同字段的文檔定義一個類型。比如說,我們假設你運營一個博客平臺並且將你所有的數據存儲到一個索引中。在這個索引中,你可以爲用戶數據定義一個類型,爲博客數據定義另一個類型,當然,也可以爲評論數據定義另一個類型。
      ●類型相對於關係型數據庫的表

    • 6、文檔(document)
      一個文檔是一個可被索引的基礎信息單元。比如,你可以擁有某一個客戶的文檔,某一個產品的一個文檔,當然,也可以擁有某個訂單的一個文檔。文檔以JSON(Javascript Object Notation)格式來表示,而JSON是一個到處存在的互聯網數據交互格式。
      在一個index/type裏面,只要你想,你可以存儲任意多的文檔。注意,雖然一個文檔在物理上位於一個索引中,實際上一個文檔必須在一個索引內被索引和分配一個類型。
      ●文檔相對於關係型數據庫的列。

    • 7、分片和副本(shards & replicas)
      在實際情況下,索引存儲的數據可能超過單個節點的硬件限制。如一個10億文檔需1TB空間可能不適合存儲在單個節點的磁盤上,或者從單個節點搜索請求太慢了。爲了解決這個問題,elasticsearch提供將索引分成多個分片的功能。當在創建索引時,可以定義想要分片的數量。每一個分片就是一個全功能的獨立的索引,可以位於集羣中任何節點上。

      • 分片的兩個最主要原因:a. 水平分割擴展,增大存儲量 b. 分佈式並行跨分片操作,提高性能和吞吐量

      • 分佈式分片的機制和搜索請求的文檔如何彙總完全是由elasticsearch控制的,這些對用戶而言是透明的。

      • 網絡問題等等其它問題可以在任何時候不期而至,爲了健康性,強烈建議要有一個故障切換機制,無論何種故障以防止分片或者節點不可用。
        爲此,elasticsearch讓我們將索引分片複製一份或多份,稱之爲分片副本或副本。

      • 副本也有兩個最主要原因:

        a. 高可用性,以應對分片或者節點故障。出於這個原因,分片副本要在不同的節點上。
        b. ×××能,增大吞吐量,搜索可以並行在所有副本上執行。

      • 總之,每個索引可以被分成多個分片。一個索引也可以被複制0次(意思是沒有複製)或多次。一旦複製了,每個索引就有了主分片(作爲複製源的原來的分片)和複製分片(主分片的拷貝)之別。分片和副本的數量可以在索引創建的時候指定。

        在索引創建之後,你可以在任何時候動態地改變副本的數量,但是你事後不能改變分片的數量。
        默認情況下,Elasticsearch中的每個索引被分片5個主分片和1個副本,這意味着,如果你的集羣中至少有兩個節點,你的索引將會有5個主分片和另外5個副本分片(1個完全拷貝),這樣的話每個索引總共就有10個分片。

1.3.3:Kiabana解析
  • Kibana是一個針對Elasticsearch的開源分析及可視化平臺,用來搜索、查看交互存儲在Elasticsearch索引中的數據。

  • 使用Kibana,可以通過各種圖表進行高級數據分析及展示。Kibana讓海量數據更容易理解。它操作簡單,基於瀏覽器的用戶界面可以快速創建儀表板(dashboard)實時顯示Elasticsearch查詢動態。設置Kibana非常簡單。無需編寫代碼,幾分鐘內就可以完成Kibana安裝並啓動Elasticsearch索引監測。

  • 主要功能:

    • 1、Elasticsearch無縫之集成。Kibana架構爲Elasticsearch定製,可以將任何結構化和非結構化數據加入Elasticsearch索引。Kibana還充分利用了Elasticsearch強大的搜索和分析功能。

    • 2、整合你的數據。Kibana能夠更好地處理海量數據,並據此創建柱形圖、折線圖、散點圖、直方圖、餅圖和地圖。

    • 3、複雜數據分析。Kibana提升了Elasticsearch分析能力,能夠更加智能地分析數據,執行數學轉換並且根據要求對數據切割分塊。

    • 4、讓更多團隊成員受益。強大的數據庫可視化接口讓各業務崗位都能夠從數據集合受益。

    • 5、接口靈活,分享更容易。使用Kibana可以更加方便地創建、保存、分享數據,並將可視化數據快速交流。

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

    • 7、可視化多數據源。Kibana可以非常方便地把來自Logstash、ES-Hadoop、Beats或第三方技術的數據整合到Elasticsearch,支持的第三方技術包括Apache Flume、Fluentd等。

    • 8、簡單數據導出。Kibana可以方便地導出感興趣的數據,與其它數據集合並融合後快速建模分析,發現新結果。

1.4:ELK的日誌處理工作流程是怎樣的?

  • mark
  • 工作流程:
    • Logstash收集AppServer產生的Log,並存放到ElasticSearch集羣中,而Kibana則從ES集羣中查詢數據生成圖表,再返回給Browser。簡單來說,進行日誌處理分析,一般需要經過以下幾個步驟:
      1. 將日誌進行集中化管理(beats)
      2. 將日誌格式化(logstash)並輸出到ElasticSearch
      3. 對格式化後的數據進行索引和存儲(elasticsearch)
      4. 前端數據的展示(kibana)

二:ELK部署實戰

2.1:環境介紹

  • VMware虛擬機

  • 主機 操作系統 主機名 IP地址 主要軟件
    服務器 centos7.4 node1 192.168.233.129 Elasticsearch,Kibana
    服務器 centos7.4 node2 192.168.233.131 Elasticsearch
    服務器 centos7.4 apache 192.168.233.132 Logstash,Apache

2.2:實驗拓撲圖

  • 配置和安裝ELK日誌分析系統,安裝集羣方式,2個elasticsearch節點,並監控apache服務器日誌
  • mark

2.3:實驗過程

2.3.1:開局優化
  • 修改各節點主機名,三臺主機都要修改,此處僅展示apache主機的操作

    [root@localhost ~]# hostnamectl set-hostname apache
    [root@localhost ~]# su
    [root@apache ~]# 
    
    
  • 設置本地主機映射文件,node1和node2節點操作

    [root@node1 ~]# vi /etc/hosts
    192.168.233.129 node1
    192.168.233.131 node2
    
    
  • 關閉防火牆與核心防護,三臺主機都要做

    [root@node1 ~]# systemctl stop firewalld.service 
    [root@node1 ~]# systemctl disable firewalld.service 
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    [root@node1 ~]# setenforce 0
    [root@node1 ~]# vi /etc/sysconfig/selinux
    SELINUX=disabled	'//修改爲disabled'
    
    
  • 三臺主機都安裝Java環境

    [root@node1 ~]# yum install -y java-1.8.0	'//檢查Java環境,jdk不低於1.8'
    [root@node1 ~]# java -version
    openjdk version "1.8.0_242"
    OpenJDK Runtime Environment (build 1.8.0_242-b08)
    OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
    [root@node1 ~]# yum install gcc gcc-c++ make glibc-devel zlib-devel openssl-devel libidn-devel pcre-devel -y
    
    
2.3.2:node1與node2部署elasticsearch軟件
  • node1與node2操作相同,此處僅展示node1的操作

  • 1、上傳所需軟件包(軟件包三個主機都要上傳)

    mark

  • 2、安裝elasticsearch—rpm包

    [root@node1 ~]# cd /opt
    [root@node1 opt]# ls
    elasticsearch-5.5.0.rpm    kibana-5.5.1-x86_64.rpm  node-v8.2.1.tar.gz                    rh
    elasticsearch-head.tar.gz  logstash-5.5.1.rpm       phantomjs-2.1.1-linux-x86_64.tar.bz2
    [root@node1 opt]# rpm -ivh elasticsearch-5.5.0.rpm 
    
    
  • 3、更改elasticsearch主配置文件

    [root@node1 opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
    [root@node1 opt]# vi /etc/elasticsearch/elasticsearch.yml
    cluster.name: my-elk-cluster                   '//集羣名字'
    node.name: node1                                  '//節點名字,在node2節點上修改爲node2'
    path.data: /data/elk_data                       '//數據存放路徑'
    path.logs: /var/log/elasticsearch/           '//數據存放路徑'
    bootstrap.memory_lock: false                '//不在啓動的時候鎖定內存'
    network.host: 0.0.0.0                       '//提供服務綁定的IP地址,0.0.0.0代表所有地址'
    http.port: 9200                             '//偵聽端口爲9200'
    discovery.zen.ping.unicast.hosts: ["node1", "node2"]      '//集羣發現通過單播實現'
    
  • 4、創建數據存放路徑並授權

    [root@node1 opt]# mkdir -p /data/elk_data	'//創建存放路徑'
    [root@node1 opt]# chown elasticsearch:elasticsearch /data/elk_data/	'//設置數組和屬主'
    
    
  • 5、啓動elasticsearch

    [root@node1 opt]# systemctl daemon-reload  	'//加載系統服務'
    [root@node1 opt]# systemctl enable elasticsearch.service	'//設置開機自啓'
    Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
    [root@node1 opt]# systemctl start elasticsearch.service	'//啓動elasticsearch'
    [root@node1 opt]# netstat -antp |grep 9200	'//檢測是否開啓成功,此處會有一些延時,如果沒有可多刷新幾次查看'
    tcp6       0      0 :::9200                 :::*                    LISTEN      76161/java    
    

    使用宿主機瀏覽器訪問:node1和node2地址

    mark

    mark

  • 5、檢查集羣健康和狀態

    檢查健康:地址後方加入/_cluster/health?pretty

    檢查狀態:地址後方加入/_cluster/state?pretty

    以下僅展示node1的訪問結果

    mark

  • mark

2.3.3:node1和node2安裝elasticsearch-head插件
  • 上述安裝成功後查看非常不直觀,所以我們通過安裝elasticsearch-head插件的方式來更加直觀的查看集羣情況,方便管理,以下僅展示node1的操作

  • 1、編譯安裝node組件依賴包

    [root@node1 opt]# tar zxf node-v8.2.1.tar.gz 	'//軟件包剛剛已經上傳了'
    [root@node1 opt]# cd node-v8.2.1/
    [root@node1 node-v8.2.1]# ./configure 
    [root@node1 node-v8.2.1]# make -j3	'//編譯,指定4個線程數(根據自己CPU情況來),加快速度'
    全程大概半小時左右
    [root@node1 node-v8.2.1]# make install
    
  • 2、安裝phantomjs

    [root@node1 node-v8.2.1]# cd ..
    [root@node1 opt]# ls
    elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm  phantomjs-2.1.1-linux-x86_64.tar.bz2
    elasticsearch-head.tar.gz  node-v8.2.1         rh
    kibana-5.5.1-x86_64.rpm    node-v8.2.1.tar.gz
    [root@node1 opt]# cp phantomjs-2.1.1-linux-x86_64.tar.bz2 /usr/local/src	'//將軟件包複製到指定目錄'
    [root@node1 opt]# cd /usr/local/src
    [root@node1 src]# ls
    phantomjs-2.1.1-linux-x86_64.tar.bz2
    [root@node1 src]# tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2 	'//解壓'
    [root@node1 src]# cd phantomjs-2.1.1-linux-x86_64/
    [root@node1 phantomjs-2.1.1-linux-x86_64]# cd bin/
    [root@node1 bin]# cp phantomjs /usr/local/bin	'//將phantomjs命令讓系統可以識別'
    
    
  • 3、安裝elasticsearch-head

    [root@node1 bin]# cd ../..
    [root@node1 src]# cp /opt/elasticsearch-head.tar.gz ./	'//將剛剛上傳到/opt目錄下的tar包輔助到本目錄'
    [root@node1 src]# ls
    elasticsearch-head.tar.gz  phantomjs-2.1.1-linux-x86_64  phantomjs-2.1.1-linux-x86_64.tar.bz2
    [root@node1 src]# tar zxf elasticsearch-head.tar.gz 	'//解壓'
    [root@node1 src]# cd elasticsearch-head/
    [root@node1 elasticsearch-head]# npm install	'//初始化項目'
    
    
  • 4、重新修改主配置文件然後重啓服務

    [root@node1 elasticsearch-head]# vi /etc/elasticsearch/elasticsearch.yml
    http.cors.enabled: true		'//開啓跨域訪問支持,默認爲false'
    http.cors.allow-origin: "*"		'//跨域訪問允許的域名地址,支持使用正則'
    [root@node1 elasticsearch-head]# systemctl restart elasticsearch
    
    
  • 5、啓動elasticsearch-head並檢測端口是否開啓

    [root@node1 elasticsearch-head]# npm run start &	'//啓動項目,切換到後臺運行'
    [1] 109368
    [root@node1 elasticsearch-head]# 
    > [email protected] start /usr/local/src/elasticsearch-head
    > grunt server
    
    Running "connect:server" (connect) task
    Waiting forever...
    Started connect web server on http://localhost:9100
    [root@node1 elasticsearch-head]# netstat -ntap |grep 9100	'//檢測端口是否開啓'
    tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      88880/grunt         
    [root@node1 elasticsearch-head]# netstat -ntap |grep 9200	'//檢測端口是否開啓'
    tcp6       0      0 :::9200                 :::*                    LISTEN      108283/java         
    
    
  • 6、宿主機瀏覽器打開驗證:

    以node1爲例:輸入網址:192.168.233.129:9100

    mark

  • 7、回到node節點創建索引,登陸網頁測試

    [root@node1 ~]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'	'//創建索引'
    {
      "_index" : "index-demo",
      "_type" : "test",
      "_id" : "1",
      "_version" : 1,
      "result" : "created",
      "_shards" : {
        "total" : 2,
        "successful" : 2,
        "failed" : 0
      },
      "created" : true
    }
    
    

    mark

2.3.4:apache服務器部署logstash相關
  • 1、安裝httpd服務並啓動

    [root@apache ~]# yum -y install httpd
    [root@apache ~]# systemctl start httpd
    [root@apache ~]# netstat -ntap |grep httpd
    tcp6       0      0 :::80                   :::*                    LISTEN      11709/httpd   
    
  • 2、安裝logstash服務並啓動

    [root@apache ~]# cd /opt
    [root@apache opt]# ls
    elasticsearch-5.5.0.rpm    kibana-5.5.1-x86_64.rpm  node-v8.2.1.tar.gz                    rh
    elasticsearch-head.tar.gz  logstash-5.5.1.rpm       phantomjs-2.1.1-linux-x86_64.tar.bz2
    [root@apache opt]# rpm -ivh logstash-5.5.1.rpm 	'//因爲軟件包之前上傳過了,此處直接安裝即可'
    [root@apache opt]# systemctl start logstash.service 
    [root@apache opt]# systemctl status logstash.service 
    [root@apache opt]# systemctl enable logstash.service
    Created symlink from /etc/systemd/system/multi-user.target.wants/logstash.service to /etc/systemd/system/logstash.service.
    [root@apache opt]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/	'//創建命令軟連接'
    
    
  • 3、與elasticsearch(node)做對接測試

    Logstash這個命令測試
    字段描述解釋:
    ●	-f  通過這個選項可以指定logstash的配置文件,根據配置文件配置logstash
    ●	-e  後面跟着字符串 該字符串可以被當做logstash的配置(如果是” ”,則默認使用stdin做爲輸入、stdout作爲輸出)
    ●	-t  測試配置文件是否正確,然後退出
    '//輸入採用標準輸入 輸出採用標準輸出,進行測試'
    [root@apache opt]# logstash -e 'input { stdin{} } output { stdout{} }'
    ...省略內容
    08:13:58.036 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}	'//等待出現此API接口端口號'
    www.baidu.com	'//輸入網址'
    2020-03-26T00:14:22.175Z apache www.baidu.com
    www.sina.com.cn	'//輸入網址'
    2020-03-26T00:14:34.494Z apache www.sina.com.cn
    www.taobao.com	'//輸入網址'
    2020-03-26T00:15:02.934Z apache www.taobao.com
    '//都沒問題,可以Ctrl + c取消了'
    
    '//測試:使用rubydebug顯示詳細輸出,codec爲一種編解碼器'
    [root@apache opt]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
    ...省略內容
    08:18:02.693 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}	'//等待出現此API接口端口號'
    www.baidu.com	'//輸入網址'
    {
        "@timestamp" => 2020-03-26T00:18:36.377Z,
          "@version" => "1",
              "host" => "apache",
           "message" => "www.baidu.com"
    }
    '//沒問題,可以Ctrl + c取消了'
    
    '//使用logstash將信息寫入elasticsearch中'
    [root@apache opt]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.233.129:9200"] } }'
    ...省略內容
    08:20:49.817 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}	'//等待出現此API接口端口號'
    www.baidu.com 	'//輸入網址'
    www.sina.com.cn 	'//輸入網址'
    www.google.com.cn	'//輸入網址'
    '//沒問題,可以Ctrl + c取消了'
    
  • 4、宿主機瀏覽器訪問node1節點,查看索引信息

    mark

  • 5、做對接配置

    Logstash配置文件主要由三部分組成:input、output、filter(根據需要來處理)
    [root@apache opt]# chmod o+r /var/log/messages	'//給其他用戶讀的權限'
    [root@apache opt]# ll /var/log/messages
    -rw----r--. 1 root root 937039 3月  26 08:36 /var/log/messages
    [root@apache opt]# vi /etc/logstash/conf.d/system.conf	'//編輯配置文件'
    input {
           file{
            path => "/var/log/messages"
            type => "system"
            start_position => "beginning"
            }
          }
    output {
            elasticsearch {
              hosts => ["192.168.233.129:9200"]
              index => "system-%{+YYYY.MM.dd}"
              }
            }
    [root@apache opt]# systemctl restart logstash.service
    
    

    mark

2.3.4:node1主機安裝kibana
  • 1、安裝kibana

    [root@node1 ~]# cd /usr/local/src/
    [root@node1 src]# cp /opt/kibana-5.5.1-x86_64.rpm ./
    [root@node1 src]# rpm -ivh kibana-5.5.1-x86_64.rpm 
    [root@node1 src]# cd /etc/kibana/
    [root@node1 kibana]# cp kibana.yml kibana.yml.bak	'//備份配置文件'
    [root@node1 kibana]# vi kibana.yml	'//編輯配置文件'
    server.port: 5601                '//kibana打開的端口'
    server.host: "0.0.0.0"           '//kibana偵聽的地址'
    elasticsearch.url: "http://192.168.100.41:9200"     '//和elasticsearch建立聯繫'
    kibana.index: ".kibana"             '//在elasticsearch中添加.kibana索引'
    [root@node1 kibana]# systemctl start kibana.service
    [root@node1 kibana]# systemctl enable kibana.service
    Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /etc/systemd/system/kibana.service.
    
    
  • 2、宿主機登陸測試

    mark

    mark

  • 3、對接Apache主機的Apache 日誌文件(訪問的日誌、錯誤的日誌)

    [root@apache opt]# cd /etc/logstash/conf.d/
    [root@apache conf.d]# vi 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.233.129:9200"]
              index => "apache_access-%{+YYYY.MM.dd}"
              }
            }
            if [type] == "error" {
            elasticsearch {
              hosts => ["192.168.233.129:9200"]
              index => "apache_error-%{+YYYY.MM.dd}"
              }
            }
            }
    [root@apache conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf	'//指定配置文件做測試'
    
    
  • 4、訪問測試

    先訪問一下apache網站:192.168.233.132

    然後再訪問http://192.168.233.129:9100能發現兩個索引信息

    mark

  • 5、可以進入kibana界面創建索引

    mark

    mark

2.3.5:實驗成功結束!如有疑問可私信或評論區交流,謝謝觀看!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章