1. 程式人生 > 其它 >單機ELK服務搭建

單機ELK服務搭建

ELK是三個開源軟體的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟體。

以上三款軟體依賴jdk1.8,請自行安裝,不再贅述。

廢話不多說,直接開始安裝,此次使用版本

Logstash:7.17.1  (https://artifacts.elastic.co/downloads/logstash/logstash-7.17.1-linux-x86_64.tar.gz

Elasticsearch:7.17.1  (https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-linux-x86_64.tar.gz

Kibana:7.17.1  (https://artifacts.elastic.co/downloads/kibana/kibana-7.17.1-linux-x86_64.tar.gz

 

一、下載軟體安裝包至/usr/local下,並依次解壓

cd /usr/local

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-linux-x86_64.tar.gz wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.1-linux-x86_64.tar.gz wget https://
artifacts.elastic.co/downloads/kibana/kibana-7.17.1-linux-x86_64.tar.gz

tar -zxvf elasticsearch-7.17.1-linux-x86_64.tar.gz
tar -zxvf logstash-7.17.1-linux-x86_64.tar.gz
tar -zxvf kibana-7.17.1-linux-x86_64.tar.gz

二、安裝Elasticsearch(Logstash和Kibana都需要配置其地址,故優先安裝)

1、因Elasticsearch、Kibana不支援用root啟動,故新建使用者elk,並將Elasticsearch所在資料夾的屬組和屬主都賦權給elk,並切換使用者至elk

useradd elk
chown -R elk:elk elasticsearch-7.17.1
su elk

2、在config中修改elasticsearch.yml

ingest.geoip.downloader.enabled: false  
xpack.security.enabled: true
xpack.security.authc.api_key.enabled: true
xpack.security.transport.ssl.enabled: true
cluster.name: es-cluster
node.name: node-1
path.data: /usr/local/elasticsearch-7.17.1/data  ##此data資料夾預設無,需要用elk使用者建立
path.logs: /usr/local/elasticsearch-7.17.1/logs
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.initial_master_nodes: ["node-1"]

3、在bin目錄下啟動Elasticsearch。初始搭建建議前臺啟動,能隨時看到錯誤。除錯無誤後後臺啟動命令 ./elasticsearch -d

[elk@data-anal bin]$ ./elasticsearch

出現如下報錯,原因為每個進城同時開啟的檔案數太小

退回至root使用者,使用root使用者修改/etc/security/limits.conf,新增如下內容,此檔案修改完成後需退出使用者重新登入

* soft nofile 65536
* hard nofile 65536

出現如下報錯,原因為

 

使用root使用者修改 /etc/sysctl.conf ,新增如下內容

vm.max_map_count=262144

/sbin/sysctl -p #執行此命令立即生效

重新切換回elk使用者重新啟動

4、啟動成功後使用其埠訪問http://192.168.2.34:9200,顯示如下,此時需要設定ELK相關使用者密碼。

5、在bin目錄下,出現如圖下所示,依次設定密碼即可!

[elk@data-anal bin]$ ./elasticsearch-setup-passwords interactive

 

 6、在瀏覽其中輸入賬號(elastic)密碼,出現如下圖,則安裝成功。

三、安裝Logstash(在需要收集日誌的伺服器)

1、使用root使用者編輯  

cd /usr/local/logstash-7.17.1
vim config/logstash.yml

2、修改如下內容

node.name: logstash-node-1
path.data: /usr/local/logstash-7.17.1/data
config.reload.automatic: true
config.reload.interval: 3s

3、在config下建立日誌收集配置檔案

cp logstash-sample.conf logstash.conf

4、新增如下內容

input {
  file {
    path => "/opt/logs/2022-03-17/*.log"
        start_position => beginning
        sincedb_path => "/dev/null"
        codec => multiline {
          pattern => "^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"
          negate => true
          auto_flush_interval => 3
          what => previous
        }
  }
}

filter {
  if [path] =~ "info" {
    mutate { replace => { type => "sys-info" } }
    grok {
      match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
    date {
      match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    }
  } else if [path] =~ "error" {
    mutate { replace => { type => "sys-error" } }
  } else {
    mutate { replace => { type => "random_logs" } }
  }
}

output {
  elasticsearch {
    hosts => '192.168.2.34:9200'
    user  => 'elastic'
    #password => 'changeme'
  }
  stdout { codec => rubydebug }
}

5、啟動Logstash,這裡啟動較慢,出現如下圖所示,表示啟動成功。後臺啟動

./logstash -f ../config/logstash.conf

 

 6、啟動成功後,Logstash就會將監聽的檔案內容傳送至 Elasticsearch 

四、安裝Kibana(elk使用者)

1、因 Kibana 不允許用root使用者啟動,先設定Kibana所在資料夾屬主與屬組,再切換至elk使用者,

chown -R elk:elk /usr/local/kibana-7.17.1-linux-x86_64
su elk

2、修改kibana.yml

cd /usr/local/kibana-7.17.1-linux-x86_64
vim config/kibana.yml

3、修改如下內容

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.2.34:9200"]
kibana.index: ".kibana"
elasticsearch.username: "kibana_system"
elasticsearch.password: "changeme"
i18n.locale: "zh-CN"

 4、啟動 kibana,後臺啟動 nohup ./kibana & 

[elk@data-anal bin]$ ./kibana

5、通過http://192.168.2.34:5601訪問kibana服務,出現如下圖則 Kibana 安裝成功。

 

 6、使用elastic+密碼登入後,新增整合

Management -> Stack Management ->  索引模式 -> 新增整合  -> 搜尋 Elasticsearch -> 新增 Elasticsearch 

 7、建立索引,此條資料來源即為從Logstash收集的日誌資訊儲存到了 Elasticsearch 上。

 

8、建立完索引,即可在Analytics -> Discover 中檢視日誌資訊