博客 / 詳情

返回

Docker安裝ELK8.x

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

二、修改系統配置

2.1 修改用户可打開的文件句柄數

vim /etc/security/limits.conf

# 在最後面追加下面內容

* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

# elk hard nofile 65536
# elk soft nofile 65536

可以解決ELK啓動報: ERROR: Elasticsearch did not exit normally - check the logs at /var/log/elasticsearch/elasticsearch.log錯的問題

2.2 更改系統vm.max_map_count設置值

max_map_count文件包含限制一個進程可以擁有的VMA(虛擬內存區域)的數量
這個值需要調大一些
臨時調整: sysctl -w vm.max_map_count=262144
永久調整: vim /etc/sysctl.conf

# 在末尾加上一行
vm.max_map_count=262144

更新配置
sysctl -p

查看更改後的值
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]

三、拉取配置文件到宿主機

3.1 創建配置目錄

image.png
為了方便修改, 將Docker容器中的配置映射到宿主機

# 創建elk配置文件目錄
mkdir -p /data/elk/elasticsearch
mkdir -p /data/elk/logstash
mkdir -p /data/elk/kibana
mkdir -p /data/elk/elasticsearch/data
mkdir -p /data/elk/elasticsearch/config
# 創建elk日誌文件目錄(不成功)
# mkdir -p /data/elk/log/elasticsearch
# mkdir -p /data/elk/log/logstash
# mkdir -p /data/elk/log/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:/var/lib/elasticsearch/ /data/elk/elasticsearch/data
docker cp elk:/etc/elasticsearch/ /data/elk/elasticsearch/config
docker cp elk:/opt/logstash/config /data/elk/logstash/config
docker cp elk:/etc/logstash/conf.d /data/elk/logstash/conf.d
docker cp elk:/opt/kibana/config /data/elk/kibana/config
docker cp elk:/opt/kibana/data /data/elk/kibana/data
mv /data/elk/elasticsearch/config/elasticsearch/* /data/elk/elasticsearch/config
rm -rf /data/elk/elasticsearch/config/elasticsearch/
mv /data/elk/elasticsearch/data/elasticsearch/* /data/elk/elasticsearch/data
rm -rf /data/elk/elasticsearch/data/elasticsearch/

# 複製完成後修改目錄權限
cd /data/elk
chown -R 991:991 /data/elk/elasticsearch*
chown -R 992:992 /data/elk/logstash*
chown -R 993:993 /data/elk/kibana*
# 改日誌目錄權限
#cd /data/elk/log
#chown -R 991:991 elasticsearch*
#chown -R 992:992 logstash*
#chown -R 993:993 kibana*
#chmod 644 -R /data/elk/log

# 刪除容器
docker stop elk
docker rm elk

四、創建容器

4.1 修改配置(可選)

本機是16G, 給eleasticsearch分一半
vim /data/elk/elasticsearch/config/jvm.options

# 找到
#-Xms4g
#-Xmx4g
# 改為
-Xms8g
-Xmx8g

4.2 啓動一個新的ELK容器

docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 \
-v /data/elk/logstash/config:/opt/logstash/config \
-v /data/elk/logstash/conf.d:/etc/logstash/conf.d \
-v /data/elk/elasticsearch/config:/etc/elasticsearch   \
-v /data/elk/elasticsearch/data:/var/lib/elasticsearch \
-v /data/elk/kibana/config:/opt/kibana/config \
-v /data/elk/kibana/data:/opt/kibana/data \
-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" --add-host host.docker.internal:host-gateway --name elk sebp/elk
## 日誌映射還有權限問題。。。 暫時不加
#    -v /data/elk/log/kibana:/var/log/kibana \
#    -v /data/elk/log/logstash:/var/log/logstash \
#    -v /data/elk/log/elasticsearch:/var/log/elasticsearch \

查看容器日誌
docker logs -f -t --tail=100 elk
進入docker容器
docker exec -it elk /bin/bash

參考鏈接:
啓動ELK出錯的一些解決方案https://segmentfault.com/a/1190000041901853

ELK設置登錄密碼: https://segmentfault.com/a/1190000041902021

Logstash文檔: https://www.elastic.co/guide/en/logstash/current/index.html
ElasticSearch文檔: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

刪除索引

531  curl --user elastic:ME%Yv1d*hS -XDELETE http://localhost:9200/wt-product-service-prod_index_2023.04
  532  curl --user elastic:ME%Yv1d*hS -XDELETE http://localhost:9200/wt-product-service-prod_index_2023.03
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.