Docker 安裝 ELK

安裝

首先安裝 DockerDocker-Compose 相關的組件,咱們這裏直接使用準備好的 ELK 鏡像,執行如下命令從 Dockerhub 上拉取指定版本的鏡像,在本例當中我使用的是 7.40 版本。html

docker pull sebp/elk:740

配置

爲其編寫 docker-compose.yaml 文件,內容以下:nginx

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,而且將相關的數據卷掛載了出來。docker

這裏須要注意的是,我配置了 ulimits 節,這是由於 ELK 在啓動的時候會檢測相關內核參數,除了在 Yaml 編寫還不夠,還得變動宿主機的相關參數。關於這些參數的內容變動,請參考如下內容:shell

變動 /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 文件,爲其追加如下內容:elasticsearch

* soft nproc unlimited
* hard nproc unlimited

最後重啓服務器,以上內容都是基於 CentOS 7.x 進行編寫。工具

運行

安裝好 docker-compose 工具之後,直接在 Yaml 文件的根目錄運行 docker-compose up -d 便可。若是正常的話,訪問對應的機器便可。代理

相關文章
相關標籤/搜索