日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

CentOs 7.2下ELK日志分析系统搭建

發布時間:2025/4/16 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOs 7.2下ELK日志分析系统搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

系統環境
為了安裝時不出錯,建議選擇這兩者選擇一樣的版本,本文全部選擇5.3版本。

System: Centos release 7.2
Java: openjdk version "1.8.0_144"
ElasticSearch: 5.5.1
Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。

Logstash: 5.5.1
Logstash是一個完全開源的工具,他可以對你的日志進行收集、過濾,并將其存儲供以后使用(如,搜索)。

Kibana: 5.5.1
Kibana 也是一個開源和免費的工具,它Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。

ELK 關系:

LEK:logstatsh 收集日志,存到elasticserach (存儲,產生索引,搜索) 到kibana展現(view)

在官網首頁下載tar源碼包
將以上的源碼包上傳至centos服務器上/usr/local/src目錄下
tips: Logstash 的運行依賴于 Java 運行環境,在 Oracle 官方下載新版 jdk。

一、準備

  • 下載jdk-8u144-linux-x64.tar,上傳至CentOS上。

  • 解壓源碼包
    通過終端新建java文件夾,并解壓至/usr/local/java文件夾下
    # mkdir -pv /usr/local/java
    # tar -zxvf /usr/local/src/jdk-8u144-linux-x64.tar.gz -C /usr/local/java

  • 設置jdk環境變量
    這里采用全局設置方法,就是修改etc/profile,它是是所有用戶的共用的環境變量
    # vi /etc/profile
    在末尾添加如下:
    export JAVA_HOME=/usr/local/java/jdk1.8.0_144
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

    然后保存使profile生效
    source /etc/profile

  • 檢驗是否安裝成功
    java -version

  • 二、Elasticsearch安裝配置

  • 解壓elasticsearch-5.5.1.tar源碼包

  • 下載鏈接:https://artifacts.elastic.co/...
    解壓至/usr/local/目錄下

    tar -zxvf /usr/local/src/elasticsearch-5.5.1.tar.gz -C /usr/local/
  • 修改配置文件
    以下供參考配置,實際以需求為準:
    vi /usr/local/elasticsearch-5.5.1/config/elasticsearch.yml

  • # 這里指定的是集群名稱,需要修改為對應的,開啟了自發現功能后,ES會按照此集群名稱進行集群發現

    cluster.name: skynet_es_cluster node.name: skynet_es_cluster_dev1 # 數據目錄 path.data: /data/elk/data# log 目錄 path.logs: /data/elk/logs# 修改一下ES的監聽地址,這樣別的機器也可以訪問 network.host: 0.0.0.0# 默認的端口號 http.port: 9200
  • 修改系統參數
    確保系統有足夠資源啟動ES
    設置內核參數
    vi /etc/sysctl.conf

    # 增加以下參數
    vm.max_map_count=655360
    執行以下命令,確保生效配置生效:
    sysctl -p
    設置資源參數
    vi /etc/security/limits.conf

    # 修改

    • soft nofile 65536

    • hard nofile 131072

    • soft nproc 65536

    • hard nproc 131072
      設置用戶資源參數

    vi /etc/security/limits.d/20-nproc.conf
    # 設置elk用戶參數
    elk soft nproc 65536

    4.添加啟動用戶,設置權限
    啟動ElasticSearch5版本要非root用戶,需要新建一個用戶來啟動ElasticSearch
    useradd elk #創建用戶elk
    groupadd elk #創建組elk
    useradd elk -g elk #將用戶添加到組
    mkdir -pv /data/elk/{data,logs} # 創建數據和日志目錄

  • 修改文件所有者

    chown -R elk:elk /data/elk/
    chown -R elk:elk /usr/local/elasticsearch-5.5.1/

  • 啟動ES

  • 查看內存剩余

    free -g
    使用elk用戶啟動elasticsearch服務
    切換至elk用戶

    su elk
    /usr/local/elasticsearch-5.5.1/bin/elasticsearch
    檢查elasticsearch服務,如下圖所示,即成功開啟服務了,這就意味著你現在已經啟動并運行一個Elasticsearch節點了。

    tips:

    單個節點可以作為一個運行中的Elasticsearch的實例。而一個集群是一組擁有相同cluster.name的節點,(單獨的節點也可以組成一個集群)可以在elasticsearch.yml配置文件中修改cluster.name,該節點啟動時加載(需要重啟服務后才會生效)。

    客戶端網頁訪問:
    服務器要關閉防火墻

    systemctl stop firewalld.service

    三、安裝 Logstash
    下載并安裝 Logstash ,安裝 logstash 只需將它解壓的對應目錄即可,例如: /usr/local 下:
    官網下載地址:https://artifacts.elastic.co/...

    1.解壓源碼包

    tar /usr/local/src/logstash-5.5.1.tar.gz -C /usr/local/
    首先,我們通過運行最基本的Logstash管道來測試您的Logstash安裝。
    Logstash管道有兩個必需的元素,input并且output,以及一個可選的元素,filter。輸入插件消耗來自源的數據,過濾器插件會按照您指定的方式修改數據,并且輸出插件將數據寫入到目的地。

    2.安裝完成后運行如下命令:
    /usr/local/logstash-5.5.1/bin/logstash -e 'input { stdin { } } output { stdout {} }'
    Sending Logstash's logs to /usr/local/logstash-5.5.1/logs which is now configured via log4j2.properties
    2017-04-25T06:07:10,900[logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>1, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>125}
    The stdin plugin is now waiting for input:
    2017-04-25T06:07:10,968[logstash.pipeline ] Pipeline main started
    2017-04-25T06:07:11,064[logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
    hello world
    2017-04-25T10:07:41.447Z yyp hello world
    我們可以看到,我們輸入什么內容logstash按照某種格式輸出,其中-e參數參數允許Logstash直接通過命令行接受設置。這點尤其快速的幫助我們反復的測試配置是否正確而不用寫配置文件。使用ctrl-c命令可以退出之前運行的Logstash。

    使用-e參數在命令行中指定配置是很常用的方式,不過如果需要配置更多設置則需要很長的內容。這種情況,我們首先創建一個簡單的配置文件,并且指定logstash使用這個配置文件。 例如:在 logstash 安裝目錄下(/usr/local/logstash-5.5.1/config)創建一個“基本配置”測試文件 logstash-simple.conf。

    3.創建配置文件
    vi logstash-simple.conf

    input { stdin { } } output {stdout { codec=> rubydebug } }

    Logstash 使用 input 和 output 定義收集日志時的輸入和輸出的相關配置,本例中 input 定義了一個叫 "stdin" 的 input , output 定義一個叫 "stdout" 的 output 。無論我們輸入什么字符, Logstash 都會按照某種格式來返回我們輸入的字符,其中 output 被定義為 "stdout" 并使用了 codec 參數來指定 logstash 輸出格式。

    使用logstash的-f參數來讀取配置文件,執行如下開始進行測試:

    4.啟動
    /usr/local/logstash-5.5.1/bin/logstash -f /usr/local/logstash-5.5.1/config/logstash-simple.conf

    Sending Logstash's logs to /usr/local/logstash-5.5.1/logs which is now configured via log4j2.properties
    2017-04-25T06:18:43,294[logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>1, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>125}
    2017-04-25T06:18:43,939[logstash.pipeline ] Pipeline main started
    The stdin plugin is now waiting for input:
    2017-04-25T06:18:44,674[logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
    hello world!
    {
    "@timestamp" => 2017-04-25T12:21:21.526Z,
    "@version" => "1",
    "host" => "yyp",
    "message" => "hello world!"
    }
    如上顯示,說明成功了。

    4.測試Elasticsearch 和 Logstash 來收集日志數據

    接下來我們在 logstash 安裝目錄下創建一個用于測試 logstash 使用 elasticsearch 作為 logstash 的后端的測試文件 logstash-test.conf,該文件中定義了stdout和elasticsearch作為output,這樣的“多重輸出”即保證輸出結果顯示到屏幕上,同時也輸出到elastisearch中。
    前提要保證elasticsearch和logstash都正常啟動(需要先啟動elasticsearch,再啟動logstash)

    vi logstash-test.conf

    input { stdin { } } output {elasticsearch {hosts => "192.168.30.132:9200" } #elasticsearch服務地址stdout { codec=> rubydebug } }

    開啟服務,執行如下命令:

    /usr/local/logstash-5.5.1/bin/logstash -f /usr/local/logstash-5.5.1/config/logstash-test.conf
    我們可以使用 curl 命令發送請求來查看 ES 是否接收到了數據:

    curl 'http://192.168.30.132:9200/_s...'
    返回結果:

    {"took" : 13,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"failed" : 0},"hits" : {"total" : 1,"max_score" : 1.0,"hits" : [{"_index" : ".kibana","_type" : "config","_id" : "5.5.1","_score" : 1.0,"_source" : {"buildNum" : 14844}}]} }

    至此,你已經成功利用 Elasticsearch 和 Logstash 來收集日志數據了。

    四、kibana的安裝

  • 解壓kibana-5.5.1-linux-x86_64源碼包

  • 下載地址:https://artifacts.elastic.co/...

    解壓至/usr/local/下
    tar -zxvf /usr/local/src/kibana-5.5.1-linux-x86_64.tar.gz -C /usr/local/
    2.配置kibana

    編輯kibana.yml配置文件
    vi /usr/local/kibana-5.5.1-linux-x86_64/config/kibana.yml

    修改以下參數:
    server.port: 5601 #開啟默認端口5601
    server.host: “192.168.30.132” #站點地址
    elasticsearch.url: http://192.168.30.132:9200 #指向elasticsearch服務的ip地址
    kibana.index: “.kibana”
    3.啟動

    執行以下命令啟動:
    /usr/local/kibana-5.5.1-linux-x86_64/bin/kibana
    4.測試瀏覽器訪問

    訪問:http://192.168.30.132:5601
    如下圖所示,說明成功訪問了

    5.配置ES索引

    kibana第一次使用時,會要求創建index,只要按照默認值即可。

    注意:
    首次會提示沒有索引。。。。

    首先需要加上我們剛剛建立的索引index => "logstash--%{+YYYY-MM}" 點擊setting->indices, 在這里我們可以Configure an index pattern, 也就是說可以配置 正則匹配的index,

    vi logstash-simple.conf

    input {stdin{} } output {elasticsearch {action => "index" # 在ES上操作indexhosts => "192.168.30.132:9200" # ES地址index => "logstash-%{+YYYY-MM}" #索引名} }

    可以看到默認的index是"logstash-*", 默認是從logstash導出的數據, 因為我們在logstash中配置的索引就是logstash開頭的,所以這里我們保持默認不變.

    下面還有一個Time-field name, 一般來說time都是一個必要的字段, 并且這個字段的類型是date類型! 不是string!!! 如果沒有時間字段, 那么將上面的" Index contains time-based events" 取消就OK.

    問題
    1、出現Configure an index pattern create是灰色的的問題

    這個問題是配置文件的問題,修改logstash的配置文件,使其輸出到elasticsearch,其中的index選項配置為kibana上的index,比如我是index => "logstash-%{+YYYY-MM}" ,這個時候重啟logstash,kibana就保持默認的logstash-*索引既可,應該能夠看到Create按鈕了

    總結

    以上是生活随笔為你收集整理的CentOs 7.2下ELK日志分析系统搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。