乐趣区

关于elasticsearch:Docker安装ELK

Docker 装置 ELK 集成镜像

下载 ELK 镜像

搜寻镜像
docker search sebp/elk

[root@www ~]# docker search sebp/elk
NAME        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
sebp/elk    Collect, search and visualise log data with …   1169                 [OK]
sebp/elkx   Collect, 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 配置文件目录
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 明码(可选)

  1. 开启 elasticsearch 明码
    vim /data/elk/elasticsearch/elasticsearch.yml
    开端减少两行

    # 开启明码
    xpack.security.transport.ssl.enabled: true
    xpack.security.enabled: true
  2. 为 kibana 配置拜访明码
    vim /data/elk/kibana/kibana.yml
    开端减少用户名明码配置

    # elk 体系有很多的用户组,elastic 是默认的用户组之一,能够应用默认的用户,也能够自定义用户
    elasticsearch.username: "elastic" 
    elasticsearch.password: "1qaz@WSX3edc"
  3. 设置 elasticsearch 明码 (启动容器后)
    这一步须要启动容器后能力设置,先将新的 ELK 容器启动好再回到这里

    # 进入 elk 容器
    docker exec -it elk /bin/bash
    cd /opt/elasticsearch/bin
    # 手动设置明码
    ./elasticsearch-setup-passwords interactive
    # Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
    # You will be prompted to enter passwords as the process progresses.
    # Please confirm that you would like to continue [y/N] 按 Y 持续
    # 在前面的提醒中配置明码,配置明码即可, 会有很多个明码,都配成跟上一步一样的明码: 1qaz@WSX3edc

启动一个新的 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

参考链接:启动 ELK 出错的一些解决方案

退出移动版