安裝 首先安裝 "Docker" 與 "Docker Compose" 相關的組件,我們這裡直接使用準備好的 "ELK 鏡像" ,執行以下命令從 Dockerhub 上拉取指定版本的鏡像,在本例當中我使用的是 7.40 版本。 配置 為其編寫 文件,內容如下: 上面的 Yaml 文件內容大概意思就是 ...
安裝
首先安裝 Docker 與 Docker-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
即可。如果正常的話,訪問對應的機器即可。