Docker 安裝 ELK


安裝

首先安裝 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

除了上述操作以外,還需要變更內核參數,執行以下命令即可。

echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p

最后重啟服務器,以上內容都是基於 CentOS 7.x 進行編寫。

運行

安裝好 docker-compose 工具以后,直接在 Yaml 文件的根目錄運行 docker-compose up -d 即可。如果正常的話,訪問對應的機器即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM