Docker安装ELK环境步骤

2023-11-02

本次安装版本

  • elasticsearch-6.2.4

  • kibana7.6.2

  • logstash-6.3.0

  • kafka_2.10-0.10.2.1

  • 所需环境下载地址:https://pan.baidu.com/s/1LNJuF0kEXkG2FyzBBZGI3g 提取码:izhg

一、构建ES

1. 创建一个文件夹

用于存放 ElasticSearch

mkdir -p /usr/local/docker/elk/ES # 递归创建文件夹
cd /usr/local/docker/elk/ES # 进入 ES文件夹

需要准备的文件

Dockerfile # 构建镜像的文件
elasticsearch.yml # es配置文件
elasticsearch-6.2.4.tar.gz # es本体 tar.gz
elasticsearch-analysis-ik-6.2.4.zip # ik分词器 zip

2. 创建Dockerfile

vim Dockerfile  # 把下边的配置复制进来即可

Dockerfile本体

# 指定基础镜像 java8
FROM jdk8 
# 复制 es本体到 /usr/local下(会自动解压)
ADD elasticsearch-6.2.4.tar.gz /usr/local 
# 复制ik分词器到 /usr/local下
COPY elasticsearch-analysis-ik-6.2.4.zip /usr/local/ 

# 创建 elsearch用户组
RUN groupadd elsearch 
# 创建elsearch用户
RUN useradd elsearch -g elsearch -p elasticsearch 

# 切换工作目录
WORKDIR /usr/local 
# 赋予elsearch用户权限
RUN chown -R elsearch:elsearch  elasticsearch-6.2.4 
# 解压 ik分词器
RUN unzip /usr/local/elasticsearch-analysis-ik-6.2.4.zip 
# 在es/plugins/文件夹中创建 analysis-ik 目录
RUN mkdir /usr/local/elasticsearch-6.2.4/plugins/analysis-ik/ 
# 移动到ik分词器到es文件夹中的/plugins/analysis-ik/目录下
RUN cp -r /usr/local/elasticsearch/* /usr/local/elasticsearch-6.2.4/plugins/analysis-ik/ 
# 复制es配置文件
COPY elasticsearch.yml /usr/local/elasticsearch-6.2.4/config

# 切换到 elsearch用户
USER elsearch
# 暴露两个端口
EXPOSE 9200 
EXPOSE 9300

# 在容器启动的时候执行 启动es的命令
CMD ["/usr/local/elasticsearch-6.2.4/bin/elasticsearch"]

3. 创建elasticsearch.yml配置文件

vim elasticsearch.yml # 把下边的配置复制进来即可

elasticsearch.yml本体

cluster.name: elasticsearch-application # 节点名称
http.port: 9200 # 这样配置才可以通过其它主机访问
network.host: 0.0.0.0
http.cors.enabled: true  # 开启跨域
http.cors.allow-origin: "*"  # 允许所有源进行访问
bootstrap.memory_lock: false # 防止报错
bootstrap.system_call_filter: false

4. 构建Docker镜像

docker build -t my_es .
# 出现这个就为构建成功
Successfully built 8da8d8fd39e9
Successfully tagged my_es:latest

因为内存不足引发的错误

# 在主机上执行
sysctl -w vm.max_map_count=262144 # 配置内存大小
# echo "vm.max_map_count=262144" >> /etc/sysctl.conf
systemctl  restart docker # 重启docker

二、构建Kibana

1. 创建存放Kibana的文件夹

mkdir -p /usr/local/docker/elk/Kibana # 递归创建文件夹
cd /usr/local/docker/elk/Kibana # 进入Kibana文件夹

需要准备的文件

Dockerfile # 构建镜像的文件
kibana.yml # kibana的配置
kibana-6.2.4-linux-x86_64.tar.gz # kibana本体 tar.gz

2. 创建Dockerfile

vim Dockerfile  # 把下边的配置复制进来即可

Dockerfile本体

FROM jdk8

ADD kibana-6.2.4-linux-x86_64.tar.gz /usr/local
ADD kibana.yml /usr/local/kibana-6.2.4-linux-x86_64/config/

RUN groupadd kibana
RUN useradd kibana -g kibana -p kibana

WORKDIR /usr/local/
RUN chown -R kibana:kibana /usr/local/kibana-6.2.4-linux-x86_64

USER kibana

EXPOSE 5601

CMD ["/usr/local/kibana-6.2.4-linux-x86_64/bin/kibana"]

3. 创建kibana.yml配置文件

vim kibana.yml # 把下边的配置复制进来即可

kibana.yml本体

server.port: 5601 
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.244.110:9200" # 改成你的ES所在位置

4. 构建Docker镜像

docker build -t my_kibana .
# 出现这个就为构建成功
Successfully built 8da8d8fd39e9
Successfully tagged my_kibana:latest

三、构建Logstash

1. 创建存放Logstash的文件夹

mkdir -p /usr/local/docker/elk/Logstash # 递归创建文件夹
cd /usr/local/docker/elk/Logstash # 进入Logstash文件夹

需要准备的文件

Dockerfile # 构建镜像的文件
logstash.conf # logstash的配置
logstash.yml # logstash的配置
logstash-6.3.0.tar.gz # logstash本体 tar.gz

2. 创建Dockerfile

vim Dockerfile  # 把下边的配置复制进来即可

Dockerfile本体

FROM jdk8

ADD logstash-6.3.0.tar.gz /usr/local/
WORKDIR /usr/local/
# RUN tar -zxvf logstash-6.3.0.tar.gz

COPY logstash.conf  /usr/local/logstash-6.3.0/bin/logstash.conf
COPY logstash.yml  /usr/local/logstash-6.3.0/config/logstash.yml
RUN mkdir /usr/local/logs

ENTRYPOINT  /usr/local/logstash-6.3.0/bin/logstash -f /usr/local/logstash-6.3.0/bin/logstash.conf

3. 创建logstash.yml配置文件

vim logstash.yml # 把下边的配置复制进来即可

logstash.yml

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: http://192.168.244.110:9200 # 改成你的ES所在位置
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changeme
xpack.monitoring.enabled: false

4. 创建logstash.conf

vim logstash.conf

logstash.conf
需要将里边的 IP 修改为你的Kafka地址

input{
        kafka {
                bootstrap_servers => ["192.168.244.110:9092"]
                auto_offset_reset => "latest"
                consumer_threads => 5
                decorate_events => true
                topics => ["user-info"]
                type => "user-info"
        }
        kafka {
                bootstrap_servers => ["192.168.244.110:9092"]
                auto_offset_reset => "latest"
                consumer_threads => 5
                decorate_events => true
                topics => ["user-error"]
                type => "user-error"
        }
         kafka {
                bootstrap_servers => ["192.168.244.110:9092"]
                auto_offset_reset => "latest"
                consumer_threads => 5
                decorate_events => true
                topics => ["goods-info"]
                type => "goods-info"
        }
        kafka {
                bootstrap_servers => ["192.168.244.110:9092"]
                auto_offset_reset => "latest"
                consumer_threads => 5
                decorate_events => true
                topics => ["goods-error"]
                type => "goods-error"
        }
}

output {
    elasticsearch {
           hosts => [ "192.168.244.110:9200"]
           index => "%{[type]}log-%{+YYYY-MM-dd}"
    }
}

5. 构建Docker镜像

docker build -t my_logstash .
# 出现这个就为构建成功
Successfully built e6cc9b9b3bea
Successfully tagged my_logstash:latest

四、构建Kafka

1. 创建存放Kafka的文件夹

mkdir -p /usr/local/docker/elk/Kafka # 递归创建文件夹
cd /usr/local/docker/elk/Kafka # 进入Kafka文件夹

需要准备的文件

Dockerfile # 构建镜像的文件
server.properties # kibana的配置
supervimsord.conf # 启动kafka的文件
kafka_2.10-0.10.2.1.tgz # kafka本体 tgz

2. 创建Dockerfile

vim Dockerfile  # 把下边的配置复制进来即可

Dockerfile本体

FROM jdk8
MAINTAINER yuanfire

ADD kafka_2.10-0.10.2.1.tgz /usr/local/
COPY server.properties  /usr/local/kafka_2.10-0.10.2.1/config/server.properties
COPY supervisord.conf /etc/supervisord.conf
EXPOSE 9092
# RUN tar -zxvf kafka_2.10-0.10.2.1.tgz
CMD ["/usr/bin/supervisord"]

3. 创建server.properties配置文件

vim server.properties # 把下边的配置复制进来即可

server.properties本体

broker.id=1
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.255.130:9092 # 改为你的机器ip
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.255.130:2181  # 你的zookeeper地址
zookeeper.connection.timeout.ms=6000 # 连接超时时间

4. 创建supervisord.conf

[supervisord]
nodaemon=true
[program:zookeeper]
command=/usr/local/kafka_2.10-0.10.2.1/bin/zookeeper-server-start.sh -daemon /usr/local/kafka_2.10-0.10.2.1/config/zookeeper.properties
[program:kafka]
command=/usr/local/kafka_2.10-0.10.2.1/bin/kafka-server-start.sh  -daemon /usr/local/kafka_2.10-0.10.2.1/config/server.properties

5. 构建Docker镜像

docker build -t my_kafka .
# 出现这个就为构建成功
Successfully built 6a06d2cdd08b
Successfully tagged my_kafka:latest

五、查看构建好的几个镜像

docker images
REPOSITORY            TAG                 IMAGE ID            CREATED          SIZE
my_kafka              latest              6a06d2cdd08b        54 seconds ago   353MB
my_logstash           latest              e6cc9b9b3bea        13 minutes ago   561MB
my_es                 latest              8da8d8fd39e9        44 minutes ago   401MB
my_kibana             latest              fa78f0961627        55 minutes ago   927MB
... 你的其他镜像

六、启动

  • 按照创建镜像的顺序启动
docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch my_es # 启动ES
docker run -d -p 5601:5606 --name kibana my_kibana # 启动ES

访问

img

完…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker安装ELK环境步骤 的相关文章

随机推荐

  • 关于联想台式机bios中虚拟化设置

    关于联想台式机bios中虚拟化设置 目前电脑更多的是从BIOS中查看是否支持虚拟化技术 当CPU支持VT x虚拟化技术的前提条件下 部分电脑将自动开启VT x功能 譬如IdeaPad Y450产品就采用了此设计 而大部分机型需要通过BIOS
  • 机器学习二-kmeans-kdtree

    机器学习纯java代码 点击打开链接 KD树介绍http www pelleg org shared hp kmeans html 我们的数据集也是从5高斯分布中随机生成的8000个点 你应该看到底层的Gaussians 蓝色边界表示 根
  • java socket 发送xml_socket 发送和接收XML 并解析

    就是在 用JAVA获取XML信息 第二步 SAX 上面增加一点内容 用Socket发送和接收 客户端口 XMLC java Created on 2004 11 15 TODO To change the template for this
  • 【linux】进程和线程的几种状态及状态切换

    文章目录 一 进程的状态 1 1 进程的三种状态 1 2 三种状态转换图 1 3 三种状态之间的转换 1 4 linux下的进程进程状态 二 线程的状态 三 总结 一 进程的状态 1 1 进程的三种状态 进程状态 一个进程的生命周期可以划分
  • 关于打包成APK

    1 可以观看网站 https my oschina net Jacedy blog 350226 里面有具体的步骤 具体的需要下载的如图所示 2 将jdk安装好 然后根据网址一次安装好环境 1 系统变量里新建JAVA HOME变量 变量值为
  • Linux实时查看文件/var/log/messages以及这个文件的问题

    耐心看完说不定有你遇到的问题 1 var log messages 首先说一下这个文件的存在 在Ubuntu系统中 这个文件你访问可能提示找不到这个文件 使用tail命令访问 name name sudo tail var log mess
  • 进程(二)—— fork()创建子进程

    假设进程A在运行过程中遇到非法请求 但是进程A手里有活 要忙手上的事 所以进程A创建一个子进程a 让子进程a去处理非法请求 目录 一 子进程创建代码实现 1 fork 函数 2 使用fork 函数创建子进程 二 子进程的创建过程 1 创建子
  • unity3d收集金币

    unitysd中 对象有一个碰撞检测的方法 可以应用于收集金币 void OnTriggerEnter Collider col if col gameObject tag Player 如果碰撞的对象是玩家 money 金钱加一 Dest
  • 深度解析:印度软件产业为何如此发达

    在全球范围内 无论是发达国家 还是发展中国家 都形成了若干规模不等 各具特色的软件产业聚集地 如美国的硅谷 日本九州的硅岛 印度班加罗尔的软件园等等 这些产业聚集地已经成为全球经济格局的重要组成部分 其中 印度的软件业聚集情况颇具借鉴意义
  • 关于tomcat中startup.bat启动闪退问题

    关于tomcat中startup bat启动闪退问题 这个首先我们想到的是系统环境变量的配置问题 所以可以进行一下环境变量检测 配置系统变量 CATALINA HOME 如下图所示 如果这个配置没有问题 且仍然后出现闪退问题 配置setcl
  • python关闭浏览器窗口_Selenium3 + Python3自动化测试系列十二——窗口截图与关闭浏览器...

    窗口截图 自动化用例是由程序去执行的 因此有时候打印的错误信息并不十分明确 如果在脚本执行出错的时候能对当前窗口截图保存 那么通过图片就可以非常直观地看出出错的原因 WebDriver提供了截图函数get screenshot as fil
  • js中的变量

    js中的变量分为局部变量和全局变量 成员变量 局部变量 只有在局部中能狗被访问 全局变量 在哪里都能被访问 局部变量定义在函数体内的生命周期一般跟随函数 当函数执行后 定义该局部变量 当函数不在使用时 被系统回收机制回收 function
  • JTAG与SWD连接方式

    先上图 图中可以看出SWD所需的连接口明显小于JTAG 接下来简要介绍下连接方式 SWD 只需连接SWDIO SWCLK GND VCC 有的时候也不需要连 JTAG 必须连接VCC GND TMS TCLK TDI TDO 可选连接TRS
  • 话谈实际工作中的数据分析

    篇始 不知不觉 到新的公司任数据分析师一职已有大半年的时光 在段时光中 无可避免的犯了很多错误 亦得到了许多收获 今天 对于在职中的一些过错与收获进行总结 以期在日后的工作与成长过程中 能够更加的顺利 谈谈数据分析工作需具备能力 pytho
  • React16.8的新增特性,Hook讲解

    Hook 是 React 16 8 的新增特性 它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性 1 useState 用来声明state变量 类似于class里的this state 使用方法如下 e
  • mysql+显示表ddl_MySQL_DDL_数据库和表的操作

    一 创建表 语法 CREATE TABLE IF NOT EXISTS 表名 字段名 字段类型 字段约束 字段名 字段类型 字段约束 字段名 字段类型 字段约束 案例 没有添加约束 CREATE TABLE IF NOT EXISTS ta
  • MySQL 全表扫描

    Server层 db1 t有200GB mysql h host P port u user p pwd e select from db1 t gt target file 查询数据 InnoDB的数据是保存在主键索引上 全表扫描实际上是
  • 第二次面试 9.15

    首先就是自我介绍 项目拷打 总体介绍一下项目 谈一下对socket的理解 在数据接收阶段 如何实现一个异步的数据处理 谈一谈对qt信号槽的理解 有想过如何去编写一个信号槽吗 你是如何使用CMAKE编译文件的 C 11特性了解些啥 share
  • NB-IoT天线座和连接器SMA、U.FL、IPX、IPEX

    NB IoT常用的天线座有SMA U FL U FL也叫IPX或IPEX SMA连接头包括四种 内螺内针 外螺内孔 内螺内孔 外螺内针 mingdu zheng at gmail dot com https blog csdn net zo
  • Docker安装ELK环境步骤

    本次安装版本 elasticsearch 6 2 4 kibana7 6 2 logstash 6 3 0 kafka 2 10 0 10 2 1 所需环境下载地址 https pan baidu com s 1LNJuF0kEXkG2Fy