在分散式系統底下我們需要查詢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 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
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
|
server.port: 5601
server.host: "0.0.0.0"
server.name: "elk_kibana"
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
|
測試
測試網址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
|
input { beats { port => 5044 } }
output { elasticsearch { hosts => ["http://localhost:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }
|
檢查設定檔
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使用方式