Centos7.5搭建ELK-6.5.0日誌分析平臺

Centos7.5搭建ELK-6.5.0日誌分析平臺

1. 簡介

工做工程中,不管是開發仍是運維,都會遇到各類各樣的日誌,主要包括系統日誌、應用程序日誌和安全日誌,對於開發人員來講,查看日誌,能夠實時查看程序的運行錯誤,以及性能分析,一般,一個大中型的應用程序會被部署到多臺服務器,那日誌文件也會分散到不一樣的機器上,這樣查看日誌難道要一臺一臺去查看?顯然是太麻煩了,開源的日誌分析系統 ELK 完美的解決了這個問題。
ELK 並非一個獨立的系統,她是由 ElasticSearch、Logstash、Kibana 三個開源的工具組成。node

  • ElasticSearchlinux

    ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java開發的,並做爲Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。設計用於雲計算中,可以達到實時搜索,穩定,可靠,快速,安裝使用方便。web

  • Logstashredis

    Logstash 是一個開源的日誌分析、收集工具,並將日誌存儲以供之後使用。shell

  • Kibana數據庫

    Kibana 是一個爲 Logstash 和 ElasticSearch 提供的日誌分析的 Web 接口。可以使用它對日誌進行高效的搜索、可視化、分析等各類操做。vim

2. 安裝

  1. 下載elk的三個組建,es,logstash,kibanacentos

    https://artifacts.elastic.co/downloads/logstash/logstash-6.5.0.tar.gz
    https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.tar.gz
    https://artifacts.elastic.co/downloads/kibana/kibana-6.5.0-linux-x86_64.tar.gz
  2. 設置參數安全

    • 設置內核參數服務器

      vim /etc/sysctl.conf   # 添加下面一行
      vm.max_map_count = 262144
      systcl -p    ## 加載配置
    • 修改系統最大文件打開數

      vim /etc/security/limits.conf   ##添加以下兩行,保存後從新登錄用戶及生效
      * soft nofile 65536
      * hard nofile 65536
    • 關閉防火牆

      service firewalld stop
  3. 解壓並移動

    ## 新建目錄
    mkdir /usr/local/elk
    ## 解壓
    tar -vxzf elasticsearch-6.5.0.tar.gz
    tar -vxzf kibana-6.5.0-linux-x86_64.tar.gz 
    tar -vxzf logstash-6.5.0.tar.gz 
    ## 移動
    mv elasticsearch-6.5.0 /usr/local/elk/
    mv kibana-6.5.0-linux-x86_64 /usr/local/elk/
    mv logstash-6.5.0 /usr/local/elk/
  4. 安裝elasticsearch數據存儲器,用於數據存儲

    vim /usr/local/elk/elasticsearch-6.5.0/config/elasticsearch.yml
    # ---------------------------------- Cluster -----------------------------------
    cluster.name: ES-cluster    ##設置集羣名稱,集羣內的節點都要設置相同,可自定義
    # ------------------------------------ Node ------------------------------------
    node.name: node-1     ## 節點名稱,自定義,各個節點不可相同
    # ----------------------------------- Paths ------------------------------------
    path.data: /usr/local/elk/elasticsearch-6.5.0/data
    path.logs: /usr/local/elk/elasticsearch-6.5.0/logs
    # ---------------------------------- Network -----------------------------------
    network.host: 192.168.9.90    ## 本機IP
    http.port: 9200    ## 端口,默認9200
    # --------------------------------- Discovery ----------------------------------
    discovery.zen.ping.unicast.hosts: ["192.168.9.89","192.168.9.90"]     ## 此集羣內全部節點的IP地址,這裏沒有使用自動發現,而是指定地址發現,由於規模較小
    discovery.zen.minimum_master_nodes: 1
  5. 添加用戶,不能使用root用戶啓動

    groupadd -g 1008 elasticsearch
    useradd -g 1008 -u 1008 elasticsearch
    chown -R elasticsearch:elasticsearch /usr/local/elk/elasticsearch-6.5.0/
  6. 啓動elasticsearch

    su elasticsearch
    ./elasticsearch
    ## 驗證是否啓動成功
    ps -ef | grep elasticsearch
  7. 安裝kibana

    vim /usr/local/elk/kibana-6.5.0-linux-x86_64/config/kibana.yml 
    server.port: 5601     ## kibana默認端口
    server.host: "192.168.9.90"    ## 服務的host,直接填本機IP便可。
    elasticsearch.url: "http://192.168.9.89:9200"   ## elasticsearch的鏈接地址,集羣時,鏈接其中一臺節點便可。
  8. 啓動kibana

    cd bin
    ./kibana
  9. 安裝logstash

    vim /usr/local/elk/logstash-6.5.0/config/logstash.yml 
    ##修改host爲0.0.0.0,這樣別的電腦就能夠鏈接整個logstash,否則只能本機鏈接。
    http.host: "0.0.0.0"
  10. 配置logstash配置文件,保存在elk/conf/all.conf

    input {                                      ## input爲輸入口
            redis {
                    data_type => "list"          ## 隊列輸入,默認輸入類型爲list
                    db => 10                     ## 指定redis庫
                    key => "redis-pipeline"      ## redis是key-value式的內存數據庫,指定key便是指定隊列的標識key的大概意思
                    host => "192.168.9.79"       ## 下面是鏈接信息,若是有密碼則須要添加password這一項
                    port => "6379"                
                    threads => 5                 ## 線程數
            }
    }
    
    filter {        ## 過濾器filter
            grok {    ## grok插件,能夠經過正則匹配,將日誌的message進行格式化轉換。
                    match => ["message","%{YEAR:YEAR}-%{MONTHNUM:MONTH}-%{MONTHDAY:DAY} %{HOUR:HOUR}:%{MINUTE:MIN}:%{SECOND:SEC},(?<MSEC>([0-9]*)) %{LOGLEVEL:loglevel} \[(?<Classname>(.*))\] - (?<Content>(.*))"]
            }
    }
    
    output {      ## 輸出elasticsearch
            elasticsearch {
                    hosts => ["192.168.9.89:9200","192.168.9.90:9200"]    ## 輸出的elasticsearch的數據節點IP
                    index => "logstash-test"      ## 索引值
                    #user => "elastic"            ## elasticsearch 的用戶密碼,須要安裝x-pack纔會有,這裏先不用
                    #password => "changeme"
            }
    }
  11. 啓動logstash

    cd /usr/local/elk/logstash-6.5.0/bin
    ./logstash -f /usr/local/elk/conf/all.conf

到如今,elk的三個組建就所有啓動了。

相關文章
相關標籤/搜索