美文网首页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