<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ELK超詳細(xì)配置

          共 12295字,需瀏覽 25分鐘

           ·

          2021-08-09 01:31

          點(diǎn)擊“程序員面試吧”,選擇“星標(biāo)??”

          下拉至文末”查看更多


          ELK日志分析系統(tǒng)簡介


          ELK日志分析系統(tǒng)是Logstash、Elasticsearch、Kibana開源軟件的集合,對外是作為一個日志管理系統(tǒng)的開源方案,它可以從任何來源、任何格式進(jìn)行日志搜索、分析與可視化展示。

          ELK日志分析系統(tǒng)組成

          • Elasticsearch(es):通過搭建群集;存儲日志數(shù)據(jù),索引日志數(shù)據(jù)

          • Logstash :收集日志,收集到了后給es存儲

          • Kibana :視圖形式展現(xiàn)日志信息,更加人性化


          日志處理步驟

          • 將日志進(jìn)行集中化管理

          • 將日志格式化(Logstash)并輸出到Elasticsearch

          • 對格式化后的數(shù)據(jù)進(jìn)行索引和存儲(Elasticsearch)

          • 前端數(shù)據(jù)的展示(Kibana)



          三款軟件各自概念


          Elasticsearch介紹

          Elasticsearch的概述

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

          Elasticsearch核心概念

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

          • 集群(cluster),一個集群就是由一個或多個節(jié)點(diǎn)組織在一起,它們共同持有你整個的數(shù)據(jù),并一起提供索引和搜索功能。其中一個節(jié)點(diǎn)為主節(jié)點(diǎn),這個主節(jié)點(diǎn)是可以通過選舉產(chǎn)生的,并提供跨節(jié)點(diǎn)的聯(lián)合索引和搜索的功能。集群有一個唯一性標(biāo)示的名字,默認(rèn)是Elasticsearch,集群名字很重要,每個節(jié)點(diǎn)是基于集群名字加入到其集群中的。因此,確保在不同環(huán)境中使用不同的集群名字。一個集群可以只有一個節(jié)點(diǎn)。強(qiáng)烈建議在配置Elasticsearch時,配置成集群模式。

          • 節(jié)點(diǎn)(node),節(jié)點(diǎn)就是一臺單一的服務(wù)器,是集群的一部分,存儲數(shù)據(jù)并參與集群的索引和搜索功能。像集群一樣,節(jié)點(diǎn)也是通過名字來標(biāo)識,默認(rèn)是在節(jié)點(diǎn)啟動時隨機(jī)分配的字符名。當(dāng)然,你可以自己定義。該名字也很重要,在集群中用于識別服務(wù)器對應(yīng)的節(jié)點(diǎn)。節(jié)點(diǎn)可以通過指定集群名字來加入到集群中。默認(rèn)情況,每個節(jié)點(diǎn)被設(shè)置成加入到Elasticsearch集群。如果啟動了多個節(jié)點(diǎn),假設(shè)能自動發(fā)現(xiàn)對方,他們將會自動組建一個名為Elasticsearch的集群。

          • 索引(type),在一個索引中,你可以定義一種或多種類型。一個類型是你的索引的一個邏輯上的分類/分區(qū),其語義完全由你來定。通常,會為具有一組共同字段的文檔定義一個類型。比如說,我們假設(shè)你運(yùn)營一個博客平臺并且將你所有的數(shù)據(jù)存儲到一個索引中。在這個索引中,你可以為用戶數(shù)據(jù)定義一個類型,為博客數(shù)據(jù)定義另一個類型,當(dāng)然,也可以為評論數(shù)據(jù)定義另一個類型。


          類型相對于關(guān)系型數(shù)據(jù)庫的表

          索引(庫)–》類型(表)–》文檔(記錄)

          分片和副本(shards&replicas)

          在實(shí)際情況下,索引存儲的數(shù)據(jù)可能超過單個節(jié)點(diǎn)的硬件限制。如一個10億文檔需1TB空間可能不適合存儲在單個節(jié)點(diǎn)的磁盤上,或者從單個節(jié)點(diǎn)搜索請求太慢了。為了解決這個問題,Elasticsearch提供將索引分成多個分片的功能。當(dāng)在創(chuàng)建索引時,可以定義想要分片的數(shù)量。每一個分片就是一個全功能的獨(dú)立的索引,可以位于集群中任何節(jié)點(diǎn)上。

          每個索引可以被分成多個分片。一個索引也可以被復(fù)制0次(意思是沒有復(fù)制)或多次。一旦復(fù)制了,每個索引就有了主分片(作為復(fù)制源的原來的分片)和復(fù)制分片(主分片的拷貝)之別。分片和副本的數(shù)量可以在索引創(chuàng)建的時候指定。

          在索引創(chuàng)建之后,你可以在任何時候動態(tài)地改變副本的數(shù)量,但是你事后不能改變分片的數(shù)量。

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

          Logstash介紹

          • 一款強(qiáng)大的數(shù)據(jù)處理工具

          • 可實(shí)現(xiàn)數(shù)據(jù)傳輸、格式處理、格式化輸出

          • 數(shù)據(jù)輸入(從業(yè)務(wù)輸入)、數(shù)據(jù)加工(如過濾、改寫等)以及數(shù)據(jù)輸出(輸出到Elasticsearch群集)

          • Logstash的主要組件:

            • shipper:日志收集者,負(fù)責(zé)監(jiān)控本地日志文件的變化,及時把日志文件的最新內(nèi)容收集起來。通常,遠(yuǎn)程代理端(agent)只需要運(yùn)行這個組件即可

            • indexer:日志存儲者,負(fù)責(zé)接收日志并寫入到本地文件

            • broker:日志hub,負(fù)責(zé)連接多個shipper和多個indexer

            • search and storage:允許對事件進(jìn)行搜索和存儲

            • web interface:基于Web的展示界面


          Kibana介紹

          • 一個針對Elasticsearch的開源分析及可視化平臺

          • 搜索、查看存儲在Elasticsearch索引中的數(shù)據(jù)

          • 通過各種圖表進(jìn)行高級數(shù)據(jù)分析及展示

          • 主要功能:

            • Elasticsearch無縫之集成

            • 整合數(shù)據(jù),復(fù)雜數(shù)據(jù)分析

            • 讓更多團(tuán)隊(duì)成員收益

            • 接口靈活,分享更容易

            • 配置簡單,可視化多數(shù)據(jù)源

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


          ELK日志分析系統(tǒng)部署


          實(shí)驗(yàn)環(huán)境及準(zhǔn)備

          [root@localhost ~]# hostnamectl set-hostname elk-1
          [root@localhost ~]# bash
          [root@elk-1 ~]# vim /etc/hosts   ###添加本地解析,識別集群主機(jī)名
          192.168.73.40 elk-1
          192.168.73.50 elk-2


          實(shí)驗(yàn)步驟

          elk-1和elk-2中部署Elasticsearch

          1、上傳密鑰,部署yum源,安裝Elasticsearch及Java(兩臺節(jié)點(diǎn))

          [root@elk-1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

          [root@elk-1 ~]# vim /etc/yum.repos.d/elasticsearch.repo
          [elasticsearch-2.x]
          name=Elasticsearch repository for 2.x packages
          baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
          gpgcheck=1
          gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
          enable=1

          [root@elk-1 ~]# yum install -y elasticsearch java

          [root@elk-1 ~]# java -version  ###查看Java版本
          openjdk version "1.8.0_262"
          OpenJDK Runtime Environment (build 1.8.0_262-b10)
          OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)


          2、修改Elasticsearch主配置文件

          [root@elk-1 ~]# vim /etc/elasticsearch/elasticsearch.yml
          17行 集群名稱 ###兩個節(jié)點(diǎn)一致
          cluster.name: abner

          23行 節(jié)點(diǎn)名稱 ###兩個節(jié)點(diǎn)不同
          node.name: elk-1

          33行 工作目錄
          path.data: /data/es-data
          path.logs: /var/log/elasticsearch/

          43行 防止交換swap分區(qū)
          bootstrap.memory_lock: true

          54行 監(jiān)聽網(wǎng)絡(luò)
          network.host: 0.0.0.0

          58行 端口
          http.port: 9200

          68行:discovery.zen.ping.unicast.hosts: ["elk-1""elk-2"]    #集群發(fā)現(xiàn)通過單播實(shí)現(xiàn),單播的主機(jī)名為"elk-1","elk-2"


          3、創(chuàng)建工作目錄并更改屬主及屬組,開啟服務(wù)

          [root@elk-1 ~]# mkdir -p /data/es-data
          [root@elk-1 ~]# chown -R elasticsearch.elasticsearch /data/es-data
          [root@elk-1 ~]# systemctl start elasticsearch.service
          [root@elk-1 ~]# netstat -anpt | grep 9200
          tcp6       0      0 :::9200                 :::*                    LISTEN      46814/java


          4、測試



          5、兩種方法和ES進(jìn)行交互

          • 第一種:Java API

          • 第二種:RESTful API (通過json格式交互)


          [root@elk-1 ~]# curl -i -XGET 'http://192.168.73.40:9200/_count?pretty' -d '{
          "query": {
          >     "match_all": {}
          > }
          > }'
          HTTP/1.1 200 OK
          Content-Type: application/json; charset=UTF-8
          Content-Length: 95

          {
            "count" : 0,
            "_shards" : {
              "total" : 0,
              "successful" : 0,
              "failed" : 0
            }
          }


          6、兩個節(jié)點(diǎn)安裝elasticsearch-head插件(安裝插件可以更加人性化的管理集群)

          [root@elk-1 ~]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
          ……省略內(nèi)容
          Installed head into /usr/share/elasticsearch/plugins/head ###安裝位置


          7、測試——輸入192.168.73.40:9200/_plugin/head/


          8、復(fù)合查詢



          9、刪除


          10、node-01和node-02日志提示不讓鎖內(nèi)存


          [root@elk-1 ~]# less /var/log/elasticsearch/abner.log
          # allow user 'elasticsearch' mlockall
                  elasticsearch soft memlock unlimited
                  elasticsearch hard memlock unlimited


          [root@elk-1 ~]# vim /etc/security/limits.conf  ###末尾插入
          [root@elk-1 ~]# systemctl stop elasticsearch.service
          [root@elk-1 ~]# systemctl start elasticsearch.service


          11、安裝監(jiān)控組件

          [root@elk-1 ~]# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
          ……省略內(nèi)容
          Installed kopf into /usr/share/elasticsearch/plugins/kopf  ###安裝路徑



          Apache主機(jī)中安裝Logstash并做日志搜集

          1、修改主機(jī)名

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


          2、安裝apache服務(wù)

          [root@apache ~]# yum install -y httpd
          [root@apache ~]# systemctl start httpd


          3、安裝Java環(huán)境,沒有自帶安裝使用yum -y install java安裝

          [root@apache ~]# yum install -y java
          已加載插件:fastestmirror, langpacks
          Loading mirror speeds from cached hostfile
          軟件包 1:java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 已安裝并且是最新版本
          無須任何處理
          [root@apache ~]# java -version
          openjdk version "1.8.0_131"
          OpenJDK Runtime Environment (build 1.8.0_131-b12)
          OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)


          4、上傳密鑰,部署yum源,安裝Logstash

          [root@apache ~]# vi /etc/yum.repos.d/logstash.repo
          [logstash-2.1]
          name=Logstash repository for 2.1.x packages
          baseurl=http://packages.elastic.co/logstash/2.1/centos
          gpgcheck=1
          gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
          enable=1

          [root@apache ~]# yum install -y logstash
          [root@apache ~]# ln -s /opt/logstash/bin/* /usr/local/bin ###優(yōu)化執(zhí)行路徑


          5、Logstash(apache)與Elasticsearch(node)功能是否正常,做對接測試

          Logstash命令選項(xiàng)解釋:
          -f:指定logstash的配置文件,根據(jù)配置文件配置logstash
          -e:后面跟著字符串,該字符串可以被當(dāng)做logstash的配置(如果是“ ”,則默認(rèn)使用stdin做輸入,stdout為輸出)
          -t:測試配置文件是否正確,然后退出
          #輸入采用標(biāo)準(zhǔn)輸入,輸出采用標(biāo)準(zhǔn)輸出

          定義輸入和輸出流,類似管道
          [root@apache ~]# logstash -e 'input { stdin{} } output { stdout{} }'


          6、使用rubydebug顯示詳細(xì)輸出,codec為一種編解碼器

          [root@apache ~]# logstash -e 'input { stdin{} } output { stdout{ codec => rubydeb


          7、使用Logstash將信息輸出給Elasticsearch

          [root@apache ~]# logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.73.40:9200"] } }'
          Settings: Default filter workers: 1
          Logstash startup completed

          abc123
          tom456
          123jerry


          8、打開瀏覽器輸入http://192.168.73.40:9100/,查看索引信息,顯示新的數(shù)據(jù)信息說明輸出到Elasticsearch成功


          9、在Apache主機(jī)中做對接配置

          [root@apache ~]# chmod o+r /var/log/messages  ###允許其他用戶訪問
          [root@apache ~]# ll /var/log/messages
          -rw----r--. 1 root root 439103 11月 18 15:20 /var/log/messages

          [root@apache ~]# vim /etc/logstash/conf.d/system.conf
          input {                       ###Logstash輸入:從/var/log/messages輸入,類型為system,起始位
                  file {
                    path => "/var/log/messages"
                    type => "system"
                    start_position => "beginning"
                  }
                }

          output {                      ###Logstash輸出:輸出給Elasticsearch(以IP地址指定位置)
                  elasticsearch {
                  hosts => ["192.168.73.40:9200"]
                  index => "system-%{+YYY.MM.dd}"
                  }
                }
               
          [root@apache ~]# systemctl restart logstash


          10、打開瀏覽器輸入http://192.168.73.40:9100/,查看索引信息,顯示新的索引信息代表Logstash搜集到的日志信息成功輸出給Elasticsearch


          在node1主機(jī)安裝Kibana

          1、在node1主機(jī)安裝Kibana

          [root@elk-1 ~]# tar zxf kibana-4.3.1-linux-x64.tar.gz
          [root@elk-1 ~]# vim kibana-4.3.1-linux-x64/config/kibana.yml
          //2行 
          server.port: 5601

          //5行
          server.host: "0.0.0.0"


          //12行 ES地址
          elasticsearch.url: "http://192.168.73.40:9200"

          //20行
          kibana.index: ".kibana"

          yum install screen -y


          [root@elk-1 ~]# kibana-4.3.1-linux-x64/bin/kibana  ###啟動監(jiān)聽
            log   [15:43:45.084] [info][status][plugin:kibana] Status changed from uninitialized to green - Ready
            log   [15:43:45.105] [info][status][plugin:elasticsearch] Status changed from uninitialized to yellow - Waiting for Elasticsearch
            log   [15:43:45.113] [info][status][plugin:kbn_vislib_vis_types] Status changed from uninitialized to green - Ready
            log   [15:43:45.119] [info][status][plugin:markdown_vis] Status changed from uninitialized to green - Ready
            log   [15:43:45.123] [info][status][plugin:metric_vis] Status changed from uninitialized to green - Ready
            log   [15:43:45.125] [info][status][plugin:spyModes] Status changed from uninitialized to green - Ready
            log   [15:43:45.132] [info][status][plugin:statusPage] Status changed from uninitialized to green - Ready
            log   [15:43:45.135] [info][status][plugin:table_vis] Status changed from uninitialized to green - Ready
            log   [15:43:45.136] [info][status][plugin:elasticsearch] Status changed from yellow to green - Kibana index ready
            log   [15:43:45.146] [info][listening] Server running at http://0.0.0.0:5601


          2、瀏覽器中登錄http://192.168.73.40:5601,首次登錄提示創(chuàng)建一個索引名字:填入system-*,即對接系統(tǒng)日志文件名。



          原文鏈接:https://blog.csdn.net/weixin_47403060/article/details/109758406
          轉(zhuǎn)自:分布式實(shí)驗(yàn)室




          瀏覽 67
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人内射生活片 | 骚婷婷色五月 | 亚洲综合 p | 日韩黄色电影免费观看 | 影音先锋亚洲一区 |