基於docker安裝ELK


巨坑提醒:ES和kibana的版本盡可能的保證一致,否則要去修改很多配置信息,而且不一定能安裝成功,現象:ES安裝成功了但是kibana無法鏈接到ES,報紅(red)。

ELK版本關系表

Elasticsearch Kibana X-Pack Beats^* Logstash^* ES-Hadoop (jar)* APM Server App Search Enterprise Search Endpoint Security
5.0.x 5.0.x 5.0.x 1.3.x-5.6.x 2.4.x-5.6.x 5.0.x-5.6.x        
5.1.x 5.1.x 5.1.x 1.3.x-5.6.x 2.4.x-5.6.x 5.0.x-5.6.x        
5.2.x 5.2.x 5.2.x 1.3.x-5.6.x 2.4.x-5.6.x 5.0.x-5.6.x        
5.3.x 5.3.x 5.3.x 1.3.x-5.6.x 2.4.x-5.6.x 5.0.x-5.6.x        
5.4.x 5.4.x 5.4.x 1.3.x-5.6.x 2.4.x-5.6.x 5.0.x-5.6.x        
5.5.x 5.5.x 5.5.x 1.3.x-5.6.x 2.4.x-5.6.x 5.0.x-5.6.x        
5.6.x 5.6.x 5.6.x 1.3.x-6.0.x 2.4.x-6.0.x 5.0.x-6.0.x        
6.0.x 6.0.x 6.0.x 5.6.x-6.8.x 5.6.x-6.8.x 6.0.x-6.8.x        
6.1.x 6.1.x 6.1.x 5.6.x-6.8.x 5.6.x-6.8.x 6.0.x-6.8.x        
6.2.x 6.2.x 6.2.x 5.6.x-6.8.x 5.6.x-6.8.x 6.0.x-6.8.x 6.2.x-6.8.x      
6.3.x 6.3.x N/A** 5.6.x-6.8.x 5.6.x-6.8.x 6.0.x-6.8.x 6.2.x-6.8.x      
6.4.x 6.4.x N/A** 5.6.x-6.8.x 5.6.x-6.8.x 6.0.x-6.8.x 6.2.x-6.8.x      
6.5.x 6.5.x N/A** 5.6.x-6.8.x 5.6.x-6.8.x 6.0.x-6.8.x 6.2.x-6.8.x      
6.6.x 6.6.x N/A** 5.6.x-6.8.x 5.6.x-6.8.x 6.0.x-6.8.x 6.2.x-6.8.x      
6.7.x 6.7.x N/A** 5.6.x-6.8.x 5.6.x-6.8.x 6.0.x-6.8.x 6.2.x-6.8.x      
6.8.x 6.8.x N/A** 5.6.x-6.8.x 5.6.x-6.8.x 6.0.x-6.8.x 6.2.x-6.8.x      
7.0.x 7.0.x N/A** 6.8.x-7.8.x 6.8.x-7.8.x 6.8.x-7.8.x 7.0.x-7.8.x***     3.14.x - 3.18.x
7.1.x 7.1.x N/A** 6.8.x-7.8.x 6.8.x-7.8.x 6.8.x-7.8.x 7.0.x-7.8.x***     3.14.x - 3.18.x
7.2.x 7.2.x N/A** 6.8.x-7.8.x 6.8.x-7.8.x 6.8.x-7.8.x 7.0.x-7.8.x*** 7.2.x   3.14.x - 3.18.x
7.3.x 7.3.x N/A** 6.8.x-7.8.x 6.8.x-7.8.x 6.8.x-7.8.x 7.0.x-7.8.x*** 7.3.x   3.14.x - 3.18.x
7.4.x 7.4.x N/A** 6.8.x-7.8.x 6.8.x-7.8.x 6.8.x-7.8.x 7.0.x-7.8.x*** 7.4.x   3.14.x - 3.18.x
7.5.x 7.5.x N/A** 6.8.x-7.8.x 6.8.x-7.8.x 6.8.x-7.8.x 7.0.x-7.8.x*** 7.5.x   3.14.x - 3.18.x
7.6.x 7.6.x N/A** 6.8.x-7.8.x 6.8.x-7.8.x 6.8.x-7.8.x 7.0.x-7.8.x*** 7.6.x   3.14.x - 3.18.x
7.7.x 7.7.x N/A** 6.8.x-7.8.x 6.8.x-7.8.x 6.8.x-7.8.x 7.0.x-7.8.x*** N/A**** 7.7.x 3.14.x - 3.18.x
7.8.x 7.8.x N/A** 6.8.x-7.8.x 6.8.x-7.8.x 6.8.x-7.8.x 7.0.x-7.8.x*** N/A**** 7.8.x 3.14.x - 3.18.x

官方地址:https://www.elastic.co/cn/support/matrix#matrix_compatibility

 

1、ElasticSearch

第一步:拉取鏡像

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2

 

 docker.elastic.co/elasticsearch 表示官方地址的鏡像,有些地址鏡像拉取失敗

第二步:安裝

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2

 

第三步:配置跨域

  1)進入容器

docker exec -it es /bin/bash

 

  2)修改elasticsearch.yml

# 顯示文件
ls
結果如下:
LICENSE.txt  README.textile  config  lib   modules
NOTICE.txt   bin             data    logs  plugins
# 進入配置文件夾
cd config
# 顯示文件
ls
結果如下:
elasticsearch.keystore  ingest-geoip  log4j2.properties  roles.yml  users_roles
elasticsearch.yml       jvm.options   role_mapping.yml   users
# 修改配置文件
vi elasticsearch.yml
#==========================================重點在這================================== # 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"

 

VI使用三個命令:

1) 修改命令 shift + i;

2)退出修改模式esc;

3)保存退出shift + :  wq

第四步:重啟容器

docker restart es 

 

第五步:訪問地址

http://localhost:9200/

顯示效果如下就表示成功了

{
  "name" : "Y4XWRMb",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "QFkmUQb2Q4OaF_Jv_LTISg",
  "version" : {
    "number" : "6.3.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "053779d",
    "build_date" : "2018-07-20T05:20:23.451332Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

 

 

2、ElasticSearch-Head(ES數據讀取插件)

第一步:拉取

docker pull mobz/elasticsearch-head:5

 

第二步:安裝

docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

 

第三步:訪問地址

http://localhost:9100/

 

見如下效果表示成功

 

 

 

3、logstash

第一步:拉取鏡像

docker pull docker.elastic.co/logstash/logstash:6.2.4

 

第二步:安裝

docker run --name es_logstash docker.elastic.co/logstash/logstash:6.2.4

 

第三步:修改logstash.yml文件

#進入容器
docker exec -it es_logstash /bin/bash
#進入config目錄,並修改配置文件
ls
cd config
vi logstash.yml

#修改內容如下
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: http://192.168.1.3:9200
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changme

 

注意: http://192.168.1.3:9200 為本機地址

 

4、kibana

第一步:拉取鏡像

docker pull docker.elastic.co/kibana/kibana:6.3.2

 

注意:版本,如果版本不對會連接不上ES,最好跟ES的版本一致

第二步:安裝

docker run --name es_kibana -p 5601:5601 -d -e ELASTICSEARCH_URL=http://192.168.1.3:9200 kibana:6.3.2

 

第三步:訪問地址

http://127.0.0.1:5601

 

第四步:修改pipeline下的logstash.conf文件

#進入容器
docker exec -it es_logstash /bin/bash
#修改
ls
cd pipeline
ls
vi logstash.conf
#原來的
#========================================
#input {
#  beats {
#    port => 5044
#  }
#}

#output {
#  stdout {
#    codec => rubydebug
#  }
#}
#======================================== #添加的部分
input {
        file {
            codec=> json
                path => "/usr/local/*.json"
        }
}
filter {
 #定義數據的格式
  grok {
    match => { "message" => "%{DATA:timestamp}\|%{IP:serverIp}\|%{IP:clientIp}\|%{DATA:logSource}\|%{DATA:userId}\|%{DATA:reqUrl}\|%{DATA:reqUri}\|%{DATA:refer}\|%{DATA:device}\|%{DATA:textDuring}\|%{DATA:duringTime:int}\|\|"}
  }
}
output {
   elasticsearch{
     hosts=> "http://192.168.1.3:9200"
   }
}

 

注意,一定是本機器IP地址,  hosts=> "http://192.168.2.153:9200" 

 

重啟全部容器

再次訪問 http://localhost:5601/ 

 

注意:

這時kibana出現,提示 No default index pattern. 沒有默認的索引模式

這時需要添加索引模式

 

 

注意:如果ES中沒任何數據,在第3步輸入索引將無法找到任何索引名,就無法進行下一步。

 

通過API方式簡單的添加ES數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM