安装 elk 7.17.0 详细流程

一.安装前须知

1、Docker 搭建 ELK 之前需熟悉 Docker 的相关指令,如:

拷贝容器文件docker cp

强制删除容器: docker rm -f 容器id、

创建网络: docker network create elk、

查看日志:docker logs container 等等

2、为了容器间的通信,需要先用

docker 创建一个网络:docker network create elk。

3、特别说明,均在 /usr/local/docker/ 下执行。


4、特别注意 elk三个版本必须一致

1、ELK(Elasticsearch、Logstash 和 Kibana)是一个常用的日志处理和数据分析工具组合。对于 ELK 的三个组件版本的一致性,以下是一些注意事项:

2、Elasticsearch 版本:Elasticsearch 是 ELK 组合中存储和搜索日志数据的核心组件。在使用 ELK 时,确保 Elasticsearch 版本与其他组件兼容并保持一致是很重要的。不同版本的 Elasticsearch 可能会引入新的功能、API 更改或性能改进等。因此,建议将 Elasticsearch、Logstash 和 Kibana 的版本保持一致。

3、Logstash 版本:Logstash 是用于数据收集、处理和转发的组件。在选择 Logstash 版本时,要确保其与 Elasticsearch 兼容,并且与所使用的 Elasticsearch 版本匹配。这样可以避免由于组件不匹配而导致的功能不正常或不稳定

4、Kibana 版本:Kibana 是用于数据可视化和分析的组件。与 Elasticsearch 和 Logstash 一样,要确保 Kibana 版本与其他组件兼容,并且与 Elasticsearch 版本一致。这有助于避免在使用 Kibana 时出现不兼容或功能失效的问题。

总结来说,为了保证 ELK 的正常运行和最佳性能,建议将 Elasticsearch、Logstash 和 Kibana 的版本保持一致,并且与所使用的其他插件和工具的版本兼容。定期更新 ELK 组件以获取最新的功能和安全修复也是一个好习惯。

二.安装 Docker

安装dcker 最好按照官方文档来

在 CentOS 上安装 Docker 引擎 |码头工人文档

安装完后可以看下版本:docker -v

查看 docker 详细信息:docker info

三.Docker 安装 ElasticSearch

1.准备工作

# 打开目录
[root@MuYu docker]# cd /usr/local/docker/
# 创建 es 目录
[root@MuYu docker]# mkdir elasticSearch
# 打开 es 目录
[root@MuYu docker]# cd elasticSearch/

2.所需脚本内容

#!/bin/sh
# @Author: Marte
# @Date:   2023-04-09 17:03:16
# @Last Modified by:   Marte
# @Last Modified time: 2023-04-09 17:07:25
docker run --name elasticsearch \
 --net elk \
 --restart=always \
 --privileged=true \
 -p 9200:9200  -p 9300:9300 \
 -e "discovery.type=single-node" \
 -e ES_JAVA_OPTS="-Xms84m -Xmx256m" \
 -v $PWD/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
 -v $PWD/data:/usr/share/elasticsearch/data \
 -v $PWD/es/plugins:/usr/share/elasticsearch/plugins \
 -d elasticsearch:7.17.0

说明:

-p (小写)映射端口号,主机端口:容器端口

-P(大写)随机为容器指定端口号

-v 进行容器的挂载

–name 指定容器别名

–net 连接指定网络

-e 指定启动容器时的环境变量

-d 后台运行容器

–privileged=true 使容器有权限挂载目录

3.挂载目录

# 创建 数据 挂载目录
[root@MuYu es]# mkdir data
# 创建 配置 挂载目录
[root@MuYu es]# mkdir config
# 创建 插件 挂载目录
[root@MuYu es]# mkdir plugins
# 权限赋值
[root@MuYu es]# chmod -R 777 /usr/local/docker/elasticSearch/

4.编辑配置

# 打开 config 目录
[root@MuYu es]# cd config/
# 编写配置文件
[root@MuYu config]# vim elasticsearch.yml


# 可访问IP
http.host: 0.0.0.0
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

5.启动脚本

# 打开目录
[root@MuYu es]# cd /usr/local/docker/elasticSearch
# 编辑脚本
[root@MuYu es]# vim startEs.sh
脚本赋权
[root@MuYu es]# chmod -R 700 startEs.sh
启动脚本
# 执行脚本
[root@MuYu es]# ./startEs.sh

6.查看结果

 

四.Docker 安装 Kibana

1.准备工作

# 打开目录
[root@MuYu docker]# cd /usr/local/docker/
# 创建 kibana 目录
[root@MuYu docker]# mkdir kibana
# 进入 kibana 目录
[root@MuYu docker]# cd kibana/

2.所需脚本内容

#!/bin/sh
# @Author: Marte
# @Date:   2023-03-21 19:59:41
# @Last Modified by:   Marte
# @Last Modified time: 2023-03-21 20:00:01
docker run -d \
--name kibana \
--net elk \
--restart=always \
--privileged=true \
-p 5601:5601 \
-e TZ="Asia/Shanghai" \
-v $PWD/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
kibana:7.17.0

3.挂载目录

# 创建 config 挂载目录
[root@MuYu kibana]# mkdir config
配置文件


# 主机地址,可以是ip,主机名
server.host: 0.0.0.0
# 提供服务的端口,监听端口
server.port: 5601
# 该 kibana 服务的名称,默认 your-hostname
server.name: "MuYu-kibana"
server.shutdownTimeout: "5s"


#####----------elasticsearch相关----------#####
# kibana访问es服务器的URL,就可以有多个,以逗号","隔开
# 你的IP地址:es容器的IP Address
elasticsearch.hosts: [ "http://***.***.***.***:9200" ]
monitoring.ui.container.elasticsearch.enabled: true


####----------日志相关----------#####


# kibana日志文件存储路径,默认stdout
logging.dest: stdout


# 此值为true时,禁止所有日志记录输出
# 默认false
logging.silent: false


# 此值为true时,禁止除错误消息之外的所有日志记录输出
# 默认false
logging.quiet: false


# 此值为true时,记录所有事件,包括系统使用信息和所有请求
# 默认false
logging.verbose: false


#####----------其他----------#####


# 系统和进程取样间隔,单位ms,最小值100ms
# 默认5000ms
ops.interval: 5000
# kibana web语言
# 默认en
i18n.locale: "zh-CN"

4.启动脚本

[root@MuYu config]# cd ../  
[root@MuYu kibana]# vim startKibana.sh
脚本赋权
[root@MuYu kibana]# chmod -R 700 startKibana.sh 
启动脚本
[root@MuYu kibana]# ./startKibana.sh

5.查看结果

打开浏览器,输入:http://ip:5601 打开 kibana 控制台,如果未能成功打开,可以使用: docker logs kibana 查看容器日志看是否运行有误等。

 

 

五.Docker 安装 LogStash

1.准备工作

# 打开目录
[root@MuYu docker]# cd /usr/local/docker/
# 创建 kibana 目录
[root@MuYu docker]# mkdir logstash
# 进入 kibana 目录
[root@MuYu docker]# cd logstash/

2.拉取镜像并拷贝配置

docker pull logstash:7.17.0


docker run -d -P --name logstash --net elk logstash:7.17.0


# 拷贝数据
docker cp logstash:/usr/share/logstash/config logstash/
docker cp logstash:/usr/share/logstash/data logstash/
docker cp logstash:/usr/share/logstash/pipeline logstash/



#文件夹赋权

chmod -R 777 logstash/

3.修改相应配置文件

  • 修改 logstash/config 下的 logstash.yml 文件,主要修改 es 的地址:
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://***.***.***.***:9200" ]
  • 修改 logstash/pipeline 下的 logstash.conf 文件:
input {
  tcp {
    mode => "server"
    host => "0.0.0.0"  # 允许任意主机发送日志
    port => 5044
    codec => json_lines    # 数据格式
  }
}


output {
  elasticsearch {
      hosts  => ["http://***.***.***.***:9200"]   # ElasticSearch 的地址和端口
      index  => "elk"         # 指定索引名
      codec  => "json"
  }
  stdout {
    codec => rubydebug
  }
}

4.启动容器并挂载

#注意先删除之前的容器
docker rm -f logstash


# 启动容器并挂载
docker run -d --name logstash --net elk \
--privileged=true \
-p 5044:5044 -p 9600:9600 \
-v $PWD/data/:/usr/share/logstash/data \
-v $PWD/config/:/usr/share/logstash/config \
-v $PWD/pipeline/:/usr/share/logstash/pipeline \
logstash:7.17.0

5.查看日志

docker logs -f logstash
每次启动完容器最好检查下日志,这样方便后续的步骤,如果出了问题,可以看到是哪的问题并方便解决。

6.查看一下堆栈检测

 

六.创建springboot应用

这个比较简单,主要就是几个配置文件:

1.pom.xml 文件,引入 logstash 的依赖

<dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>6.6</version>
</dependency>

2.在 resource 下创建 log/logback-springxml 文件,

这里我们主要填写<destination>ip:端口</destination>,关于 <pattern>标签则看个人使用情况修改。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>192.168.161.128:5044</destination>
        <!-- 日志输出编码 -->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        <!--es索引名称 -->
                        "index":"elk",
                        <!--应用名称 -->
                        "appname":"${spring.application.name}",
                        <!--打印时间 -->
                        "timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}",
                        <!--线程名称 -->
                        "thread": "%thread",
                        <!--日志级别 -->
                        "level": "%level",
                        <!--日志名称 -->
                        "logger_name": "%logger",
                        <!--日志信息 -->
                        "message": "%msg",
                        <!--日志堆栈 -->
                        "stack_trace": "%exception"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="LOGSTASH" />
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

3.最后修改(添加)

application.yml 文件/ bootstrap.yml:

logging:
  config: classpath:log/logback-spring.xml

4.启动后在 elasticsearch-head 界面即可看到输出的日志:

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: Docker-Compose是一个用于定义和运行多个Docker容器的工具。在使用Docker-Compose部署ELK(Elasticsearch, Logstash, Kibana)时,可以使用docker-compose.yml文件来定义容器的配置和依赖关系。\[1\] 根据引用\[2\]和引用\[3\]的内容,可以看出在部署ELK时,需要创建一个docker-compose.yml文件,并在其中指定输入日志的端口、配置logstash.conf文件等。具体的步骤如下: 1. 创建一个目录,比如/opt/docker_elk,用于存放相关文件。 2. 在/opt/docker_elk目录下创建docker-compose.yml文件,并在其中配置ELK组件的相关参数。 3. 创建logstash配置文件,一般存放在/opt/docker_elk/logstash目录下,并在logstash.conf文件中配置输入和输出的设置。 4. 启动docker-compose,可以使用命令sudo docker-compose up来启动ELK容器。 至于具体的ELK版本,根据提供的信息中没有明确指定,所以无法确定是部署elk8.*版本。如果有具体的版本要求,请提供更多的信息,以便给出更准确的回答。 #### 引用[.reference_title] - *1* [Docker - docker-compose安装ELK](https://blog.csdn.net/xuezhiwu001/article/details/124896803)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Docker-Compose部署ELK](https://blog.csdn.net/weixin_44359151/article/details/129341044)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1+1=∞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值