zoukankan      html  css  js  c++  java
  • Docker环境搭建ELK

    1、拉取镜像

    docker pull elasticsearch:7.2.0 docker pull logstash:7.2.0 docker pull kibana:7.2.0

    虽然不带版本号会拉取最新版本,但是可能会在拉取过程中报错。注意ES、Logstash、Kibana版本必须一致,不然会出现各种莫名的问题,比如Kibana连不上ES或者Logstash连不上ES。这里我使用的是7.2.0版本。

    2、安装Elasticsearch

    创建挂载目录

    mkdir -p /home/elasticsearch/config
    mkdir -p /home/elasticsearch/data
    echo "http.host: 0.0.0.0">>/home/elasticsearch/config/elasticsearch.yml
    chmod -R 777 /home/elasticsearch/
    

    运行容器

    docker run --privileged=true --name elasticsearch -p 9200:9200 
     -p 9300:9300 
     -e "discovery.type=single-node" 
     -e ES_JAVA_OPTS="-Xms64m -Xmx128m" 
     -v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 
     -v /home/elasticsearch/data:/usr/share/elasticsearch/data 
     -v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins 
     -d elasticsearch:7.2.0
    

    配置跨域(可以不用配置)
    修改/home/elasticsearch/config/elasticsearch.yml文件

    cluster.name: "docker-cluster"
    network.host: 0.0.0.0
    # 访问ID限定,0.0.0.0为不限制,生产环境请设置为固定IP
    transport.host: 0.0.0.0
    # elasticsearch节点名称
    node.name: node-1
    # elasticsearch节点信息
    cluster.initial_master_nodes: ["node-1"]
    # 下面的配置是关闭跨域验证(可以不开启)
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    检验安装结果
    http://192.168.1.101:9200/

    显示效果如下就成功了

    3、安装Kibana

    kibana不用做特殊的配置,只是需要在运行容器的时候link一下es。

    docker run --name kibana 
    --link elasticsearch:elasticsearch 
    -p 5601:5601 
    -d kibana:7.2.0
    

    检验安装结果
    http://192.168.1.101:5601/
    如果可以正常打开并连接上ES表示安装成功。

    4、安装Logstash

    如果项目中是直接把日志写入到ES中的话,可以不用安装Logstash。
    运行容器
    docker run --name logstash -d -p 5044:5044 -p 9600:9600 logstash:7.2.0
    创建配置文件目录,设置权限:

    mkdir -p /home/elk/logstash/config;
    mkdir -p /home/elk/logstash/pipeline;
    chown -R 1000 /home/elk/logstash;
    

    拷贝配置文件:

    docker cp logstash:/usr/share/logstash/config /home/elk/logstash/config;
    docker cp logstash:/usr/share/logstash/pipeline /home/elk/logstash/pipeline;
    

    删除容器:
    docker rm -f logstash
    重新运行容器:

    docker run --name logstash -d 
    -p 5044:5044 
    -p 9600:9600 
    -v /home/elk/logstash/config/config:/usr/share/logstash/config 
    -v /home/elk/logstash/pipeline/pipeline:/usr/share/logstash/pipeline 
    logstash:7.2.0 
    

    安装完了需要修改配置
    修改/home/elk/logstash/config/config/logstash.yml,将里面改成

    http.host: "0.0.0.0"
    xpack.monitoring.elasticsearch.hosts: [ "http://192.168.22.188:9200" ]
    

    如果需要接收filebeat等其他应用的日志转发到ES,需要修改/home/elk/logstash/pipeline/pipeline/logstash.conf

    input {
      beats {
        port => 5044
      }
    }
    
    output {
      elasticsearch {
        hosts => ["192.168.22.188:9200"]
        index => "moonlog.%{+YYYY.MM.dd}"
        #user => "elastic"
        #password => "changeme"
      }
    }
    

    参考文档
    https://my.oschina.net/u/3656204/blog/3078973
    https://www.jianshu.com/p/1b33b351ffdf

  • 相关阅读:
    table标签中不能有div、span等标签
    奇葩的ASCII 160 号空格
    解决“只能通过Chrome网上应用商店安装该程序”的方法
    谈谈页面流程图(附案例) | 人人都是产品经理
    mysql-connector-java-5.1.34下载
    二、web.xml文件配置
    spring Beans初始化及配置
    Junit单元测试的使用
    什么是IOC?
    二、springMVC项目依赖配置pom.xml
  • 原文地址:https://www.cnblogs.com/KQNLL/p/14583177.html
Copyright © 2011-2022 走看看