Docker安装ELK

Docker安装ELK集成镜像 下载ELK镜像
搜索镜像
docker search sebp/elk

[root@www ~]# docker search sebp/elk NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED sebp/elkCollect, search and visualise log data with …1169[OK] sebp/elkxCollect, search and visualise log data with …43[OK]

下载镜像
docker pull sebp/elk
[root@www ~]# docker pull sebp/elk Using default tag: latest latest: Pulling from sebp/elk Digest: sha256:c5f1d0f845ab217ef509b8c6565d0c4a5dd8dea063a411b60dfb7c4508312aca Status: Image is up to date for sebp/elk:latest docker.io/sebp/elk:latest

修改系统配置
修改eleasticsearch用户权限 vim /etc/security/limits.conf
# 在最后面追加下面内容 elk hard nofile65536 elk soft nofile65536

可以解决ELK启动报: ERROR: Elasticsearch did not exit normally - check the logs at /var/log/elasticsearch/elasticsearch.log错的问题
更改系统vm.max_map_count设置值 max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
这个值需要调大一些
sysctl -w vm.max_map_count=262144
[root@localhost /]# sysctl -w vm.max_map_count=262144 vm.max_map_count = 262144

查看更改后的值
sysctl -a | grep vm.max_map_count
# 再次查看 [root@localhost /]# sysctl -a | grep vm.max_map_count vm.max_map_count = 262144

调大后可以消除elk启动时的警告: bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
拉取配置文件到宿主机
创建配置目录 Docker安装ELK
文章图片

为了方便修改, 将Docker容器中的配置映射到宿主机
# 创建elk配置文件目录 mkdir -p /data/elk/elasticsearch mkdir -p /data/elk/logstash mkdir -p /data/elk/kibana# 创建文件(通过开启一个容器获取初始配置文件) docker run -p 5601:5601 -p 9200:9200-p 5044:5044 \ -it \ -e TZ="Asia/Shanghai" \ -e ES_HEAP_SIZE="4g"\ -e ES_JAVA_OPTS="-Xms8g -Xmx8g" \ -e "discovery.type=single-node" \ -e LS_HEAP_SIZE="4g" --name elk sebp/elk# 从容器中复制出ELK配置 docker cp elk:/etc/elasticsearch /data/elk docker cp elk:/opt/logstash/config /data/elk/logstash docker cp elk:/etc/logstash/conf.d /data/elk/logstash/conf.d docker cp elk:/opt/kibana/config /data/elk/kibana# 复制完成后修改目录权限 cd /data/elk chown -R 991:991 elasticsearch* chown -R 992:992 logstash* chown -R 993:993 kibana*# 删除容器 docker stop elk docker rm elk

创建容器
修改配置(可选) 本机是16G, 给eleasticsearch分一半, 比较耗内存
vim /data/elk/elasticsearch/jvm.options
# 找到 #-Xms4g #-Xmx4g # 改为 -Xms8g -Xmx8g

启动一个新的ELK容器
docker run -p 5601:5601 -p 8080:8080 -p 9200:9200-p 5044:5044 \ -v /data/elk/logstash:/opt/logstash/config \ -v /data/elk/logstash/conf.d:/etc/logstash/conf.d \ -v /data/elk/elasticsearch-data:/var/lib/elasticsearch \ -v /data/elk/kibana:/opt/kibana/config \ -v /data/elk/elasticsearch:/etc/elasticsearch \ -it \ -e TZ="Asia/Shanghai" \ -e ES_JAVA_OPTS="-Xms8g -Xmx8g" \ -e "discovery.type=single-node" \ -e LS_HEAP_SIZE="4g" --name elk sebp/elk

查看容器日志
docker logs -f -t --tail=100 elk
进入docker容器
docker exec -it elk /bin/bash
【Docker安装ELK】参考链接:启动ELK出错的一些解决方案

    推荐阅读