美文网首页Elasticsearch
docker-compose搭建ELK环境

docker-compose搭建ELK环境

作者: 皮多堡 | 来源:发表于2020-05-12 18:20 被阅读0次

    docker-compose搭建ELK环境

    image

    环境信息

    • CentOS 7.4 系统
    • Docker version 18.06.1-ce
    • docker-compose version 1.22.0
    • 部署单节点 ELK

    参数配置

    在宿主机执行

    # 设置内核参数
    sysctl -w vm.max_map_count=262144
    # 生效设置
    sysctl -p
    # 重启 docker,让内核参数对docker服务生效
    systemctl restart docker
    
    • 原因分析:

    vm.max_map_count参数,是允许一个进程在VMAs拥有最大数量(VMA:虚拟内存地址, 一个连续的虚拟地址空间),当进程占用内存超过时, 直接OOM。

    elasticsearch占用内存较高。官方要求max_map_count需要配置到最小262144。

    max_map_count配置文件写在系统的/proc/sys/vm中

    通过docker inspect命令, 可查看docker使用宿主机的/proc/sys作为只读路径之一

         "ReadonlyPaths": [
                    "/proc/bus",
                    "/proc/fs",
                    "/proc/irq",
                    "/proc/sys",
                    "/proc/sysrq-trigger"
                ]
    

    说明镜像使用宿主机的max_map_count参数。因此直接修改宿主机的max_map_count参数即可

    docker-compose文件

    version: "3"
    services:
      elasticsearch:
        image: "elasticsearch:6.7.1"
        container_name: "elasticsearch"
        restart: "always"
        volumes:
          - "elasticsearch_data:/usr/share/elasticsearch"
        #vim /etc/sysctl.conf
        #vm.max_map_count=262144
        #sysctl -w vm.max_map_count=262144
        #sysctl -p
        environment:
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        networks:
          - "elk"
        ports:
          - "9200:9200"
          - "9300:9300"
    
      kibana:
        image: "kibana:6.7.1"
        container_name: "kibana"
        restart: "always"
        volumes:
          - "kibana:/usr/share/kibana"
        networks:
          - "elk"
        ports:
          - "5601:5601"
    
    
    #  logstash:
    #    image: "logstash:6.7.1"
    #    container_name: "logstash"
    

    这里我暂时没有用到logstash,其中的版本可以根据情况自行升级,但是需要注意版本一致或兼容,具体请elastic参考官网

    • 启动:docker-compose up -d
    • 查看日志 dcoker-compose logs -f
    • 修改配置后重新构建 docker-compose up -d --build
    • 停止服务 docker-compose stop kibana
    • 删除所有docker-compose.yml中描述的服务 docker-compose down

    修改elasticsearch.yml

    cluster.name: "docker-cluster"
    network.host: 0.0.0.0
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    其中后两行是允许跨域访问

    • 重新构建 dockr-compose up -d --build

    • 访问 http://{host}:9200/

    [图片上传失败...(image-91cc12-1589278804457)]

    • 访问head插件

    这里我使用的是chrom中的head插件,也可以自行安装head插件 github

    [图片上传失败...(image-12e6fd-1589278804457)]

    • 访问kibana

    之后就可以在kibana中的devtools中进行es的查询了。

    参考

    相关文章

      网友评论

        本文标题:docker-compose搭建ELK环境

        本文链接:https://www.haomeiwen.com/subject/bwrinhtx.html