0%

Elasticsearch+Kibana+Logstash環境安裝

在分散式系統底下我們需要查詢log紀錄
總不可能需要一台一台機器上去查看紀錄
這個時候我們就會需要有個服務幫我們達成這個目的

elasticsearch就很適合來幫我們完成這個任務

elasticsearch官網

安裝JDK

請參考之前的文章

elasticsearch佈署

elasticsearch是一個分散式的儲存系統,屬於NoSQL資料庫的一種
elasticsearch介紹

1
2
3
4
5
6
7
8
#下載安裝檔
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-amd64.deb
#下載驗證檔
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-amd64.deb.sha512
#檢查檔案
$ shasum -a 512 -c elasticsearch-7.4.0-amd64.deb.sha512
#執行安裝
$ sudo dpkg -i elasticsearch-7.4.0-amd64.deb

修改配置檔案

首先我們要先修改elasticsearch記憶體的使用量
修改elasticsearch使用的記憶體,設定為主機的50%記憶體

1
2
3
#/etc/elasticsearch/jvm.options
-Xms1g # Xms 記憶體使用下限
-Xmx1g # Xmx 記憶體使用上限

修改設定檔

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#/etc/elasticsearch/elasticsearch.yml
#設置服務名稱
cluster.name: elk_elasticsearch
#設置節點名稱
node.name: elk_node
#設置為主要結點
node.master: true
#允許節點儲存數據
node.data: true
#
path.data: /var/lib/elasticsearch
#
path.logs: /var/log/elasticsearch
#綁定來源
network.bind_host: 0.0.0.0
#綁定對外服務端口
http.port: 9200
#綁定節點通信端口
transport.tcp.port: 9300
#啟用資料壓縮
transport.tcp.compress: true
#集群發現節點列表
discovery.seed_hosts: ["127.0.0.1:9300"]
#設置主要節點列表
cluster.initial_master_nodes: ["127.0.0.1"]

測試

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#啟動服務
$ service elasticsearch start
#測試
$ curl http://127.0.0.1:9200
{
"name" : "elk_node",
"cluster_name" : "elk_service",
"cluster_uuid" : "SRb6b1RaTaewA_OK2C7fMA",
"version" : {
"number" : "7.4.0",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
"build_date" : "2019-09-27T08:36:48.569419Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

kibana佈署

kibana是elasticsearch可視化的重要元件
kibana介紹

1
2
3
4
5
6
7
8
#下載安裝檔
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.4.0-amd64.deb
#下載驗證檔
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.4.0-amd64.deb.sha512
#檢查檔案
$ shasum -a 512 -c kibana-7.4.0-amd64.deb.sha512
#執行安裝
$ sudo dpkg -i kibana-7.4.0-amd64.deb

修改配置檔案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#/etc/kibana/kibana.yml
#綁定對外服務端口
server.port: 5601
#綁定來源
server.host: "0.0.0.0"
#設置服務名稱
server.name: "elk_kibana"
#設置elasticsearch節點列表
elasticsearch.hosts: ["http://127.0.0.1:9200"]
#設置索引
kibana.index: ".kibana"
設置log路徑
logging.dest: /var/log/kibana/kibana.log
設置中文化
i18n.locale: "zh-CN"

建立log目錄

1
2
3
4
#建立目錄
$ mkdir /var/log/kibana
#修改使用者權限
$ chown kibana:kibana /var/log/kibana

測試

1
2
#啟動服務
$ service kibana start

測試網址http://127.0.0.1:5601

logstash佈署

logstash是負責幫我們收集各種log資料的收集器
logstash介紹

1
2
3
4
5
6
7
8
#下載安裝檔
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.deb
#下載驗證檔
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.deb.sha512
#檢查檔案
$ shasum -a 512 -c logstash-7.4.0.deb.sha512
#執行安裝
$ sudo dpkg -i logstash-7.4.0.deb

修改配置檔案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#/etc/logstash/conf.d/30-log.conf
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
beats {
port => 5044
}
}

output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}

檢查設定檔

1
2
3
4
5
$ /usr/share/logstash/bin/logstash --config.test_and_exit -f /etc/logstash/conf.d/30-log.conf

...

Configuration OK

啟動服務

1
2
#啟動服務
$ service logstash start

基本上elk環境安裝就到這裡
之後有空再補上log server使用方式