• 基于docker安装ELK


    巨坑提醒:ES和kibana的版本尽可能的保证一致,否则要去修改很多配置信息,而且不一定能安装成功,现象:ES安装成功了但是kibana无法链接到ES,报红(red)。

    ELK版本关系表

    ElasticsearchKibanaX-PackBeats^*Logstash^*ES-Hadoop (jar)*APM ServerApp SearchEnterprise SearchEndpoint 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数据

  • 相关阅读:
    ACM学习历程—SNNUOJ1132 余数之和(数论)
    ACM学习历程—ZOJ 3868 GCD Expectation(莫比乌斯 || 容斥原理)
    ACM学习历程—HDU4675 GCD of Sequence(莫比乌斯)
    ACM学习历程—HDU4746 Mophues(莫比乌斯)
    ACM学习历程—POJ3090 Visible Lattice Points(容斥原理 || 莫比乌斯)
    ACM学习历程—HDU1695 GCD(容斥原理 || 莫比乌斯)
    ACM学习历程—HDU5476 Explore Track of Point(平面几何)(2015上海网赛09题)
    ACM学习历程—HDU5478 Can you find it(数论)(2015上海网赛11题)
    ACM学习历程—HDU5475 An easy problem(线段树)(2015上海网赛08题)
    alert、confirm、prompt的区别
  • 原文地址:https://www.cnblogs.com/myfqm/p/13212264.html
Copyright © 2020-2023  润新知