安装

首先安装 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 即可。如果正常的话,访问对应的机器即可。

最新文章

  1. mono for android学习过程系列教程(5)
  2. python 解压 压缩包
  3. HDU 5833 Zhu and 772002 (数论+高斯消元)
  4. AFN----AFNetworking
  5. 自制docker basic image
  6. NHibernate - ICriteria 查询
  7. 深入探索 Java 热部署--转
  8. frame 第三节
  9. var t = a&&b;的问题
  10. QT第三天学习
  11. [ERROR] Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
  12. 【请您听我说】PHP语法特点的一些看法
  13. UVA424高精度加法
  14. java中全角半角字符的相互转换的代码
  15. 异步加载图片以及Bitmap相关处理方法
  16. network is unreachable 网关PING不通解决办法
  17. Codeforces 757B. Bash's Big Day GCD
  18. 云计算--hdfs dfs 命令
  19. WiFi攻击的三种方式
  20. Markdown基本语法总结

热门文章

  1. Visual studio 2015 与 mysql 连接
  2. Java的变量与常量
  3. 实验7:交换机IOS升级
  4. ATL的GUI程序设计(1)
  5. LinearLayout中组件右对齐
  6. JavaScript 初学者容易犯的几个错误,你中招没?
  7. 「C++ 篇」答应我,别再if/else走天下了可以吗
  8. ARTS Week 14
  9. React+Echarts简单的封装套路
  10. 我的一个配置redux(实现一次存储与调用方法)之旅