欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Docker 安装 ELK

程序员文章站 2022-03-25 17:36:51
安装 首先安装 "Docker" 与 "Docker Compose" 相关的组件,我们这里直接使用准备好的 "ELK 镜像" ,执行以下命令从 Dockerhub 上拉取指定版本的镜像,在本例当中我使用的是 7.40 版本。 配置 为其编写 文件,内容如下: 上面的 Yaml 文件内容大概意思就是 ......

安装

首先安装 dockerdocker-compose 相关的组件,我们这里直接使用准备好的 elk 镜像,执行以下命令从 dockerhub 上拉取指定版本的镜像,在本例当中我使用的是 7.40 版本。

docker pull sebp/elk:740

配置

为其编写 docker-compose.yaml 文件,内容如下:

version: '3.7'
services:
  nginx:
    image: nginx
    container_name: nginx
    ports: 
      - 80:80
      - 443:443
    networks:
      - internal-network
    volumes: 
      - /root/volumes/nginx/nginx.conf:/etc/nginx/nginx.conf
      - /root/volumes/nginx/configs:/etc/nginx/conf.d
    restart: always
  elk:
    image: sebp/elk:740
    container_name: elk
    ports:
      - 9200:9200
      - 5044:5044
    expose:
      - 5601
    networks:
      - internal-network
    volumes:
      - /opt/elk-data:/var/lib/elasticsearch
      - /etc/localtime:/etc/localtime
    depends_on: 
      - nginx
    ulimits: 
      nproc: 262144
      nofile:
        soft: 262144
        hard: 262144
      memlock: 9223372036854775807
    restart: always

networks:
  internal-network:
    external: true

上面的 yaml 文件内容大概意思就是开放 elk 的 9200 与 5400 端口,然后使用 nginx 代理 kibana dashboard,并且将相关的数据卷挂载了出来。

这里需要注意的是,我配置了 ulimits 节,这是因为 elk 在启动的时候会检测相关内核参数,除了在 yaml 编写还不够,还得变更宿主机的相关参数。关于这些参数的内容变更,请参考以下内容:

变更 /etc/security/limits.conf 文件,为其追加以下内容:

* soft nofile 204800
* hard nofile 204800
* soft nproc 204800
* hard nproc 204800

* soft memlock unlimited
* hard memlock unlimited

跳转到 /etc/security/limits.d 目录下,修改相应的 conf 文件,为其追加以下内容:

* soft nproc unlimited
* hard nproc unlimited

最后重启服务器,以上内容都是基于 centos 7.x 进行编写。

运行

安装好 docker-compose 工具以后,直接在 yaml 文件的根目录运行 docker-compose up -d 即可。如果正常的话,访问对应的机器即可。

Docker 安装 ELK