首先安裝 Docker 與 Docker-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
便可。若是正常的話,訪問對應的機器便可。代理