ELFK 8.12.2 部署 -- docker部署方式⚽

👨‍🎓博主简介

  🏅CSDN博客专家
  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • 一、ELFK的部署 -- docker部署方式⚽
    • 1. 前置准备
      • 1.1 服务器信息
      • 1.2 关闭防火墙及selinux沙盒
      • 1.3 将ELFK镜像包上传到服务器上(也可以等在执行docker-compose时自动拉取)
      • 1.4 校正时间
      • 1.5 本文注意事项
    • 2. 部署docker
    • 3. 部署docker-compose
    • 4. 部署ELFK
      • 4.1 创建ELFK的项目路径
      • 4.2 创建ES目录及配置文件
      • 4.3 创建Logstash目录及配置文件
      • 4.4 创建Kibana目录及配置文件
      • 4.5 创建filebeat目录及配置文件
      • 4.6 导入ELFK镜像
      • 4.7 使用docker-compose启动ELFK服务
      • 4.8 访问es、kibana地址
      • 4.9 安装并配置nginx
      • 4.10 获取服务日志并进行页面展示
  • 二、ELK8.12.2版本配置密码认证
    • 1、配置 ES 开启安全验证
      • 1.1 修改 es 配置文件
      • 1.2 重启 es 容器
      • 1.3 进入容器生成密码
      • 1.4 访问 es 页面进行验证
    • 2、配置 logstash 连接用户密码
      • 2.1 修改 logstash 配置文件
      • 2.2 重启 logstash 容器
    • 3、配置 kibana 连接用户密码
      • 3.1 修改 kibana 配置文件
      • 3.2 重启 kibana 容器
      • 3.3 访问 kibana 页面进行验证
  • 三、附加:修改 ELK 认证密码
  • 四、附加:获取多台服务器日志
    • 1、创建filebeat目录及配置文件
    • 2、上传并导入 filebeat 镜像
    • 3、使用docker-compose启动filebeat服务
    • 4、登录 kibana 页面查看新节点的日志
  • 五、附加:kibana 页面操作
    • 1、查看日志属于哪个路径下及日志名
    • 2、仪表板
  • 六、相关文章

在这里插入图片描述

一、ELFK的部署 – docker部署方式⚽

1. 前置准备

1.1 服务器信息

IP操作系统系统配置环境服务端口
172.16.11.213CentOS Linux 7 (Core)
X86架构
CPU:4核8线程
内存:16G
硬盘:100G
docker
docker-compose
Elasticsearch
Logstash
Kibana
Filebeat
nginx
9200 / 9300
5044
5601

80

要用到的服务包信息:

软件安装包名称软件版本功能
docker24.0.5容器:提供单独elfk环境
docker-compose1.29.2容器编排工具:用于同步管理elfk
elasticsearch8.12.2日志存储
kibana8.12.2日志数据图形化展示
logstash8.12.2日志处理
filebeat8.12.2日志采集
nginx1.24.0nginx服务

ELFK 关系图:

ELFK基础架构图

1.2 关闭防火墙及selinux沙盒

# 先查看防火墙是否开启
systemctl status firewalld

# 如果是开启的那就关闭并设置开机不自启
systemctl stop firewalld
systemctl disable firewalld

# 设置selinux为Disabled
cat /etc/selinux/config
# 设置 SELINUX=disabled

image-20240318184738670


如果防火墙开启的话,需要打开的端口有:(端口可自行定义)

  • Elasticsearch:92009300
  • Kibana:5601
  • Logstash:5044
  • nginx:80
  • filebeat 本身不监听任何端口,它是一个轻量级的日志文件收集器,用于将日志发送到Logstash或Elasticsearch。

注:

9200 本地elasticsearch服务本地的端口
9300 是elasticsearch集群的通信端口

1.3 将ELFK镜像包上传到服务器上(也可以等在执行docker-compose时自动拉取)

在启动服务的时候默认是可以拉取ELFK镜像的,不过最近dockerhub好像国内用不了了,拉不了镜像;

而且拉镜像也慢,还需要配置docker镜像加速,所以,离线镜像还是比较好的,可以提前上传到服务器上;

  • E: elasticsearch 数据存储、数据搜索;

    官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch/

  • L: logstash 数据采集、数据清洗、数据过滤;

    官网下载地址:https://www.elastic.co/cn/downloads/logstash

  • K: kibana 数据分析、数据展示;

    官网下载地址:https://www.elastic.co/cn/downloads/kibana/

  • F:filebeat 收集日志数据;

    官网下载地址:https://www.elastic.co/guide/en/beats/filebeat/index.html

镜像下载地址:

我这边目前只有:8.12.2、7.1.0版本;CSDN下载地址;

其他版本可以百度看看:

包名地址
ELFK docker镜像-7.1.0版本(elasticsearch、filebeat)https://download.csdn.net/download/liu_chen_yang/89427498
ELFK docker镜像-7.1.0版本(kibana、logstash)https://download.csdn.net/download/liu_chen_yang/89427504
ELFK docker镜像-8.12.2版本(elasticsearch、filebeat)https://download.csdn.net/download/liu_chen_yang/89427462
ELFK docker镜像-8.12.2版本(kibana、logsatsh)https://download.csdn.net/download/liu_chen_yang/89427463

注: ELFK的四个镜像包的保持版本需一致。

1.4 校正时间

# 下载ntpdate命令
yum -y install ntpdate

# 时间校正
ntpdate cn.pool.ntp.org

1.5 本文注意事项

注意:本文出现的 IP 和 容器外的路径 请根据自己的实际情况自定义

注意:本文出现的 IP 和 容器外的路径 请根据自己的实际情况自定义

注意:本文出现的 IP 和 容器外的路径 请根据自己的实际情况自定义

2. 部署docker

  • 方法一:

参考部署文档:linux(centos)中部署docker(步骤超全,含带一些发展史和一些概念)

  • 方法二:

可以选择离线一键安装:docker24.0.5离线安装包 (一键部署)

  • 方法三:

按照以下方式安装

# 安装utils工具
yum -y install yum-utils

# 安装docker扩展源工具
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装docker服务
yum install docker-ce docker-ce-cli containerd.io

# 设置docker开机自启并启动服务
systemctl daemon-reload
systemctl restart docker
systemctl enable docker

3. 部署docker-compose

  • 方法一:

参考部署文档部署:Linux中安装/部署docker-compose

  • 方法二:

可以选择离线安装:docker-compose1.29.2离线包

image-20240613153759277

4. 部署ELFK

注意事项:

注意:本文出现的 IP 和 容器外的路径 请根据自己的实际情况自定义

注意:本文出现的 IP 和 容器外的路径 请根据自己的实际情况自定义

注意:本文出现的 IP 和 容器外的路径 请根据自己的实际情况自定义

4.1 创建ELFK的项目路径

mkdir -p /data/ELK

4.2 创建ES目录及配置文件

# 创建ES目录
mkdir -p /data/ELK/elasticsearch/{plugins,config,data,logs}

# 进入es的config目录
cd /data/ELK/elasticsearch/config

# 创建es配置文件
touch es.yml

# 给所有ES目录读写执行权限
chmod 775 -R /data/ELK/elasticsearch/

# 编辑es配置文件
vi es.yml
# 集群名称
cluster.name: mycluster

# 节点名称
node.name: mynode

# 网络绑定地址
network.host: 0.0.0.0

# 默认端口:9200 本地elasticsearch服务本地的端口、9300 是elasticsearch集群的通信端口
http.port: 9200
transport.port: 9300

# 开启单节点模式
node.roles: [ master, data, ingest, ml ]

# 内存限制
#bootstrap.memory_lock: true
#ES_JAVA_OPTS: "-Xms512m -Xmx512m"

# 关闭集群发现功能(单节点)
discovery.type: single-node

# --------------------------- ssl安全认证配置 ----------------------------------

# 关闭 X-Pack 安全模式
xpack.security.enabled: false
# 禁用初始化生成密码功能
xpack.security.enrollment.enabled: false
# 禁用客户端之间连接加密,如果启用,客户端(如 Kibana、Logstash、filebeat)就需要通过加密方式访问
xpack.security.http.ssl.enabled: false
# 指定ssl证书地址(开启安全模式就需要开启这个)
#xpack.security.http.ssl.keystore.path: certs/http.p12

# 禁用 Elasticsearch 节点间传输层通信的加密。
xpack.security.transport.ssl.enabled: false
# 证书的验证模式,certificate 为双向 SSL/TLS 认证(即节点间相互验证证书)
#xpack.security.transport.ssl.verification_mode: certificate
# 如果启用了ssl认证,下面两个就是配置证书和私钥的文件路径
#xpack.security.transport.ssl.keystore.path: certs/transport.p12
#xpack.security.transport.ssl.truststore.path: certs/transport.p12

# ----------------------- END SECURITY AUTO CONFIGURATION -------------------------

# 注意:在生产环境中,建议启用 SSL/TLS 加密来保护数据传输的安全性,特别是在公共或不安全的网络中。如果你选择启用 SSL/TLS,需要确保你有有效的证书和密钥库,并正确配置了密钥库和信任库的路径。在开发或测试环境中,可能会为了方便而禁用这些安全特性,但要意识到这可能会带来安全风险。

4.3 创建Logstash目录及配置文件

# 创建logstash目录
mkdir -p /data/ELK/logstash/{conf.d,config,data,logs}

# 进入logstash的config目录
cd /data/ELK/logstash/config

# 创建logstash的yml文件
touch logstash.yml

# 编辑logstash配置文件
vim logstash.yml

path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /usr/share/logstash/logs

# 进入logstash的conf.d目录
cd /data/ELK/logstash/conf.d

# 创建logstash配置文件
touch logstash.conf

# 编辑logstash配置文件
vi logstash.conf
input {
  beats {
    port => 5044
    codec => "json"
  }
}

output {
    elasticsearch {
	# es的地址
      	hosts => ["http://172.16.11.213:9200"]
      	# 用户名(如果es开启了用户名密码这里就需要配置,如果没开启就不用配置)
      	#user => "elastic"
      	# 密码
      	#password => "123456"
	# 索引
      	#index => "dashu-park-error-log"
	# 类型
	#document_type => "fire"
	# 主键
	#document_id => "%{id}"
    }
# mail插件,可以用来报警发邮件
#    email {
#        port           => "25"
#        address        => "smtp.163.com"
#        username       => "123123123@163.com"
#        password       => "1231231231"
#        authentication => "plain"
#        use_tls        => false
#        from           => "123123123@qq.com"
#        subject        => "dashu-park-zone项目中有error日志信息"
#        to             => "123123123@qq.com"
#        via            => "smtp"
#        body           => "错误日志: \n  %{message} "
#    }
#  }
#  redis {
#     host => ["172.16.11.213"] #这个是标明redis服务的地址
#     port => 9001
#     codec => plain
#     db => 1 #redis中的数据库,select的对象
#     key => elk_log #redis中的键值
#     data_type => list #一般就是list和channel
#     password => DaShuRedisoRhFG9xT6kXIZl5b
#     timeout => 5
#     workers => 1
#  }
  stdout { codec => rubydebug }
}

4.4 创建Kibana目录及配置文件

# 创建kibana目录
mkdir -p /data/ELK/kibana/

# 进入kibana目录
cd /data/ELK/kibana/

# 创建kibana配置文件
touch kibana.yml

# 编辑kibana配置文件
vi kibana.yml
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://172.16.11.213:9200" ]
# 配置中文
i18n.locale: zh-CN
# 配置用户名密码(es有用户名密码的时候在开启)
#elasticsearch.username: "kibana"
#elasticsearch.password: "123456"

4.5 创建filebeat目录及配置文件

# 创建filebeat目录
mkdir -p /data/ELK/filebeat/{config,data,logs}

# 进入filebeat/config目录
cd /data/ELK/filebeat/config

# 创建filebeat配置文件
touch filebeat.yml

# 去除filebeat组和其他用户的写入权限。
chmod go-w /data/ELK/filebeat/config/filebeat.yml

# 编辑filebeat配置文件
vi filebeat.yml
#=========================== Filebeat inputs =============================

filebeat.inputs:
- type: log
  # Change to true to enable this input configuration.
  enabled: true
  
  # Paths that should be crawled and fetched. Glob based paths.
  paths:  #可以配置多个日志路径
    # 如果是docker部署,这里就是docker容器内的路径,而且需要和宿主机的路径进行映射
    - /usr/share/filebeat/logs/*.log
    #- /usr/share/filebeat/logs/info.log	
  #指定自定义字段	
  fields:							
       project: "fire"  #字段1	
       #hostName: "172.16.11.213"	  #字段2
  
  multiline:
    #多行匹配规则
    pattern: '^[[:space:]]+(at|\.{3})\b&^Caused by:'
    #将不匹配的规则的行合并在一起
    negate: true
    #合并到匹配规则的上一行末尾
    match: after


#================================ Outputs =====================================

#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["172.16.11.213:5044"]   

  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

  # Certificate for SSL client authentication
  #ssl.certificate: "/etc/pki/client/cert.pem"

  # Client Certificate Key
  #ssl.key: "/etc/pki/client/cert.key"


#output.elasticsearch:
#  hosts: 172.16.11.213:9200
#  indices:
#    - index: "filebeat-%{+yyyy.MM.dd}"

#output.redis:
   #hosts: ["172.16.11.213:9001"]
   #password: DaShuRedisoRhFG9xT6kXIZl5b
   #key: "filebeat-redis"
   #db: 1
   #timeout: 60
   
# 控制台输出
#output.console:
  #pretty: true
  #enable: true

4.6 导入ELFK镜像

提前导入好镜像在执行docker-compose时就不用在拉取了,而且网络不稳定也容易中断;
如果docker默认路径没空间,可参考此文章修改docker存储路径:【docker】导入镜像报错磁盘空间不足的解决方法 && 【docker】修改默认的存储路径

docker load -i elasticsearch.tar && docker load -i logstash.tar && docker load -i kibana.tar && docker load -i filebeat.tar
[root@localhost config]# docker images 
REPOSITORY                                      TAG       IMAGE ID       CREATED        SIZE
elastic/kibana                                  8.12.2    2870bdfe2474   3 months ago   1.05GB
elastic/elasticsearch                           8.12.2    c02b14250fd3   3 months ago   1.36GB
elastic/logstash                                8.12.2    341c9b96c97b   3 months ago   769MB
elastic/filebeat                                8.12.2    89c084ca559d   3 months ago   325MB

在这里插入图片描述

image-20240614101246401

4.7 使用docker-compose启动ELFK服务

①、先创建docker-compose目录用来管理ELFK服务

# 创建docker-compose目录
mkdir -p /data/ELK/docker-compose

# 进入docker-compose目录
cd /data/ELK/docker-compose

# 创建docker-compose的yml配置文件
touch docker-compose.yml

#编辑docker-compose配置
vi docker-compose.yml
version: '3'
services:
  elasticsearch:
    image: elastic/elasticsearch:8.12.2
    container_name: es
    hostname: es
    restart: always
    volumes:
      - /data/ELK/elasticsearch/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /data/ELK/elasticsearch/plugins:/usr/share/elasticsearch/plugins
      - /data/ELK/elasticsearch/data:/usr/share/elasticsearch/data
      - /data/ELK/elasticsearch/logs:/usr/share/elasticsearch/logs
      - /etc/localtime:/etc/localtime
    ports:
      - 9200:9200
      - 9300:9300
      
  logstash:
    image: elastic/logstash:8.12.2
    container_name: logstash
    hostname: logstash
    restart: always
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "2"
    volumes:
      - /data/ELK/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
      - /data/ELK/logstash/conf.d/:/usr/share/logstash/conf.d/
      - /etc/localtime:/etc/localtime
    ports:
      - 5044:5044

  kibana:
    image: elastic/kibana:8.12.2
    container_name: kibana
    hostname: kibana
    restart: always
    volumes:
      - /data/ELK/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
    ports:
      - 5601:5601
      
  filebeat:
    image: elastic/filebeat:8.12.2
    container_name: filebeat
    hostname: filebeat
    restart: always
    user: root
    volumes:
      # 日志文件夹映射到容器中[作为数据源]
      - /data/ELK/filebeat/logs:/usr/share/filebeat/logs/
      # 采集日志配置映射配置文件到容器中
      - /data/ELK/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
      - /etc/localtime:/etc/localtime
    # 使用主机网络模式
    network_mode: host

如果防火墙开启的话,需要打开的端口有:(端口可自行定义)

  • Elasticsearch:92009300
  • Kibana:5601
  • Logstash:5044
  • nginx:80
  • filebeat 本身不监听任何端口,它是一个轻量级的日志文件收集器,用于将日志发送到Logstash或Elasticsearch。

注:

9200 本地elasticsearch服务本地的端口
9300 是elasticsearch集群的通信端口


②、启动ELFK服务

# 进入docker-compose.yml位置
cd /data/ELK/docker-compose/

# 启动(两种二选一)
docker-compose up -d 

docker-compose -f /data/ELK/docker-compose/docker-compose.yml up -d

③、查看ELFK服务状态

docker-compose ps

image-20240614140128518

State状态为:UP或者running就为运行状态。


④、启动完ELFK都看一下这些容器的日志

启动完ELFK都看一下这些容器的日志,看看有没有报错;

# 查看es的服务日志
docker logs -f es

# 查看logstash的服务日志
docker logs -f logstash

# 查看kibana的服务日志
docker logs -f kibana

# 查看filebeat的服务日志
docker logs -f filebeat

如果在启动 kibana 时遇到以下提示内容,不用管,这个提示说的是没有配置账户令牌,不影响我们的访问及拿日志;

在这里插入图片描述

4.8 访问es、kibana地址

访问es、kibana地址,确认是否可以访问到,没有问题;

注意把 ip 换成自己的;

  • es地址:http://172.16.11.213:9200

image-20240617092855439

  • kibana地址:http://172.16.11.213:5601

在这里插入图片描述

image-20240617093021940

4.9 安装并配置nginx

部署nginx可以参考:【Linux】nginx基础篇 – 介绍及yum安装nginx、【Linux】环境下部署Nginx服务 - 二进制部署方式

这里我习惯于二进制的部署方式,那么就使用二进制部署,这里就简单写一下,具体的操作可以看二进制部署文档;

# 拉取1.24.0安装包
wget https://nginx.org/download/nginx-1.24.0.tar.gz
# 安装必要的插件依赖包
yum -y install gcc gcc-c++ zlib zlib-devel pcre-devel openssl openssl-devel 
# 解压到/usr/src下
tar xf nginx-1.24.0.tar.gz -C /usr/src/
# 进入
cd /usr/src/nginx-1.24.0
# 编译安装
./configure --prefix=/usr/local/nginx && make && make install

安装完成后,这里需要修改以下配置文件,把nginx的日志路径指到filebeat的logs目录下

# 进入nginx配置文件
cd /usr/local/nginx/conf/
vim nginx.conf

image-20240617105847487

# 启动nginx服务
/usr/local/nginx/sbin/nginx -c  /usr/local/nginx/conf/nginx.conf

# 查看filebeat日志是否有输出,页面访问http://172.16.11.213 nginx刷新
tail -f /data/ELK/filebeat/logs/nginx_access.log

image-20240617110204357

4.10 获取服务日志并进行页面展示

页面访问kibana查看日志:http://172.16.11.213:5601

image-20240617111333838

刷新nginx页面,使其产生日志,并实时监控日志

image-20240617111503879

image-20240617111526946


到此部署就完成,如果想要加一些安全性比如密码认证,可以接着看下面的内容;

二、ELK8.12.2版本配置密码认证

1、配置 ES 开启安全验证

1.1 修改 es 配置文件

# ES配置文件
vim /data/ELK/elasticsearch/config/es.yml

# 将xpack.security.enabled=false改为true启用 X-Pack 安全性:
xpack.security.enabled: true

1.2 重启 es 容器

docker restart es

重启完记得再看一下es日志,看看有没有报错什么的;

docker logs -f es

重启完kibana会连接不到,因为开启了安全认证,kibana没有找到相关配置,所以,会连接不到,在报错,在后面我们会配置的;

1.3 进入容器生成密码

# 进入容器
docker exec -it es bash

# 生成密码(自动与手动二选一)
## 自动生成密码
elasticsearch-setup-passwords auto
## 手动输入密码
elasticsearch-setup-passwords interactive 

这里我选择手动输入密码;手动输入密码每个用户都要输入两遍密码,一遍是输入一遍是确认密码;

image-20240617133455182

1.4 访问 es 页面进行验证

页面访问:http://172.16.11.213:9200

image-20240617155023171

输入完用户名密码,就到这个页面了;

image-20240617155110281

2、配置 logstash 连接用户密码

2.1 修改 logstash 配置文件

# 进入logstash配置文件
vim /data/ELK/logstash/conf.d/logstash.conf

# 在output中输入用户名密码
user => "elastic"
password => "刚刚生成或手动输入的密码"

xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: lcy123…

2.2 重启 logstash 容器

docker restart logstash

重启完记得再看一下 logstash 日志,看看有没有报错什么的;

docker logs -f logstash

3、配置 kibana 连接用户密码

3.1 修改 kibana 配置文件

# 进入kibana配置文件
vim /data/ELK/kibana/kibana.yml

# 在最后添加或修改(这里用户名不能用elastic,否则启动会报错,elastic是超级用户,在8.*版本里是被禁止的)
elasticsearch.username: "kibana"
elasticsearch.password: "刚刚生成或手动输入的密码"

3.2 重启 kibana 容器

docker restart kibana

重启完记得再看一下 kibana 日志,看看有没有报错什么的;

docker logs -f kibana

这里可以把ELFK全部重启一下(两种方式二选一)记得重启完查看日志;

docker-compose restart

docker-compose -f /data/ELK/docker-compose/docker-compose.yml restart

3.3 访问 kibana 页面进行验证

访问kibana页面:http://172.16.11.213:5601

image-20240617155529146

这里可以输入用户名密码,并不是非要kibana配置文件中设置的用户名密码,用哪个登录上来会没有权限,这里我们可以登录elastic用户,密码也是刚刚设置的密码;

登录进来,右上角就会多出一个头像等用户信息;

image-20240617155802059

三、附加:修改 ELK 认证密码

curl -H "Content-Type:application/json" -XPOST -u elastic 'http://ip:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "要修改的密码" }'

四、附加:获取多台服务器日志

  要获取多台服务器日志,那么我们就需要在要获取日志的那台服务器上部署日志收集器,也就是我们的filebeat服务;前提是,必须可以连接到、ping通部署ELFK的这台主服务器上。

1、创建filebeat目录及配置文件

# 创建filebeat目录
mkdir -p /data/ELK/filebeat/{config,data,logs}

# 进入filebeat/config目录
cd /data/ELK/filebeat/config

# 创建filebeat配置文件
touch filebeat.yml

# 去除filebeat组和其他用户的写入权限。
chmod go-w /data/ELK/filebeat/config/filebeat.yml

# 编辑filebeat配置文件
vi filebeat.yml
#=========================== Filebeat inputs =============================

filebeat.inputs:
- type: log
  # Change to true to enable this input configuration.
  enabled: true
  
  # Paths that should be crawled and fetched. Glob based paths.
  paths:  #可以配置多个日志路径
    # 如果是docker部署,这里就是docker容器内的路径,而且需要和宿主机的路径进行映射
    - /usr/share/filebeat/logs/*.log
    #- /usr/share/filebeat/logs/info.log	
  #指定自定义字段	
  fields:							
       project: "fire"  #字段1	
       #hostName: "172.16.11.213"	  #字段2
  
  multiline:
    #多行匹配规则
    pattern: '^[[:space:]]+(at|\.{3})\b&^Caused by:'
    #将不匹配的规则的行合并在一起
    negate: true
    #合并到匹配规则的上一行末尾
    match: after


#================================ Outputs =====================================

#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["172.16.11.213:5044"]   

2、上传并导入 filebeat 镜像

 docker load -i filebeat.tar

3、使用docker-compose启动filebeat服务

①、先创建docker-compose目录用来管理 filebeat 服务

# 创建docker-compose目录
mkdir -p /data/ELK/docker-compose

# 进入docker-compose目录
cd /data/ELK/docker-compose

# 创建docker-compose的yml配置文件
touch docker-compose.yml

#编辑docker-compose配置
vi docker-compose.yml

version: "3"
services:
  filebeat:
    image: elastic/filebeat:8.12.2
    container_name: filebeat
    hostname: filebeat
    restart: always
    user: root
    volumes:
      # 日志文件夹映射到容器中[作为数据源],可以切换为自己服务的日志路径;
      - /data/ELK/filebeat/logs/:/usr/share/filebeat/logs/
      # 采集日志配置映射配置文件到容器中
      - /data/ELK/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
      - /etc/localtime:/etc/localtime
    # 使用主机网络模式
    network_mode: host

如果不想用docker-compose,就要用docker的话也可以,把他转换成docker命令就行;

docker run -d --name filebeat --hostname=filebeat --restart=always --network=host -v /data/ELK/filebeat/logs/:/usr/share/filebeat/logs/ -v /data/ELK/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro -v /etc/localtime:/etc/localtime elastic/filebeat:8.12.2

②、启动 filebeat 服务

# 进入docker-compose.yml位置
cd /data/ELK/docker-compose/

# 启动(两种二选一)
docker-compose up -d 

docker-compose -f /data/ELK/docker-compose/docker-compose.yml up -d

③、查看 filebeat 服务状态

docker-compose ps

在这里插入图片描述

State状态为:UP或者running就为运行状态。


④、启动完看一下 filebeat 容器的日志,看看有没有报错

docker logs -f filebeat

4、登录 kibana 页面查看新节点的日志

没有问题的话就可以产生一些日志,然后去kibana页面查看日志;
http://172.16.11.213:5601

五、附加:kibana 页面操作

1、查看日志属于哪个路径下及日志名

如果要看这个日志是哪个路径的话,可以Discover中搜索log.file.path

在这里插入图片描述

在这里插入图片描述

2、仪表板

仪表板可以在Home–>Dashboards创建;

在这里插入图片描述

在这里插入图片描述

六、相关文章

文章名称文章链接
ELFK简介https://liucy.blog.csdn.net/article/details/139653744
ELFK 8.12.2 单机部署 – docker部署方式⚽https://liucy.blog.csdn.net/article/details/139761024

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/782679.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

frp内网映射初体验

frp内网映射工具配置 1、配置穿透映射工具服务器信息2、服务器配置3、客户端配置4、配置完毕后 1、配置穿透映射工具服务器信息 1.1、frp版本是 frp_0.57.0 配置文件中文说明文档:https://gofrp.org/zh-cn/docs/ 参考优秀文章:https://blog.hoshiroko.c…

数据库之DML

1,创建表 mysql> create table student(-> id int primary key,-> name varchar(20) not null,-> grade float-> );插入记录 mysql> insert into student values(1,monkey,98.5); Query OK, 1 row affected (0.01 sec)一次性插入多条记录 mysql…

车灯出现破损破损破裂断角掉角断边等等车灯问题如何修复?用泰达克TADHE车灯无痕修复液来解决。车灯合面合壳密封用泰达克TADHE车灯密封UV胶。

小车车灯无痕修复用的胶是什么? 可以使用在小车车灯无痕修复中的胶水,通常使用的车灯无痕修复专用UV胶。 车灯无痕修复专用胶主要成份是改性丙烯酸UV树脂,主要应用在车灯的专业无痕修复领域。它可以用于修复车灯壳的裂缝或破损,使…

十大护眼落地灯品牌排行榜:2024十大王炸护眼大路灯分享

十大护眼落地灯品牌排行榜有哪些?护眼落地灯作为一款有效的照明神器,广受消费者们的喜爱。然而,市场上护眼落地灯品牌众多,品质参差不齐,一些护眼落地灯在光线舒适度方面的表现并不理想,甚至可能光线不稳定…

SpringBoot后端验证码-防止密码爆破功能

一、简介 为了防止网站的用户被通过密码典爆破。引入验证码的功能是十分有必要的。而前端的验证码又仅仅是只防君子不防小人。通过burpsuit等工具很容易就会被绕过。所以后端实现的验证码才是对用户信息安全的一大重要保障。 实现思路: 1.引入图形生成的依赖 2.生成…

VPN 的入门介绍

VPN(虚拟专用网络) 简介 虚拟专用网络,简称虚拟专网(VPN),其主要功能是在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实…

SpringBoot日常:封装rabbitmq starter组件

文章目录 逻辑实现RabbitExchangeEnumRabbitConfigRabbitModuleInfoRabbitModuleInitializerRabbitPropertiesRabbitProducerManagerPOM.xmlspring.factories 功能测试application.yml配置生产者:消费者:测试结果:总结 本章内容主要介绍编写一…

【电机控制】EG2134无刷电机驱动、控制一体板——开环、无感SMO验证

【电机控制】EG2134无刷电机驱动、控制一体板——开环、无感SMO验证 文章目录 前言一、硬件二、软件三、开环SVPWM四、SMO无感观测器闭环控制五、参考文献总结 前言 【电机控制】直流有刷电机、无刷电机汇总——持续更新 【电机控制】EG2134无感FOC驱控一体板-滑模观测器 使用…

C++11中新特性介绍-之(二)

11.自动类型推导 (1) auto类型自动推导 auto自动推导变量的类型 auto并不代表某个实际的类型,只是一个类型声明的占位符 auto并不是万能的在任意场景下都能推导,使用auto声明的变量必须进行初始化,以让编译器推导出它的实际类型,…

苏东坡传-读书笔记十

不管怎么说,能使读者快乐的确是苏东坡作品的一个特点。苏东坡最快乐就是写作之时。一天,苏东坡对朋友说:“我一生之至乐在执笔为文之时,心中错综复杂之情思,我笔皆可畅达之。我自谓人生之乐,未有过于此者也…

红黑树模拟实现

概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡…

昇思25天学习打卡营第20天|RNN实现情感分类

数据准备 使用IMDB影评数据集,包含Positive和Negative两类。 数据下载 import os import shutil import requests import tempfile from tqdm import tqdm from typing import IO from pathlib import Path# 指定保存路径为 home_path/.mindspore_examples cache…

蚓链实践告诉你“企业确保达成数字化营销效果的方法”

在如今这个数字化盛行的时代,企业想在激烈的市场竞争里崭露头角,确保数字营销效果那可是至关重要!今天就来给大家聊聊实现这一目标的基本条件,来自蚓链数字化营销系统的广大用户体验总结。 一、精准的目标定位 企业一定要清楚地知…

第一作者讲述《生态系统架构:人工智能时代从业者的新思维》背后的故事:Episode One

当前,人工智能技术正不断渗透到各行各业,对企业和组织的系统和流程带来深刻的影响。生态系统架构可以帮助企业进行更好的规划和管理人工智能系统,使人工智能技术能够更好地为企业所用,从而实现企业的数字化转型和更好的商业表现。…

信号量——Linux并发之魂

欢迎来到 破晓的历程的 博客 引言 今天,我们继续学习Linux线程本分,在Linux条件变量中,我们对条件变量的做了详细的说明,今天我们要利用条件变量来引出我们的另一个话题——信号量内容的学习。 1.复习条件变量 在上一期博客中&…

HTML5实现我的音乐网站源码

文章目录 作者:[xcLeigh](https://blog.csdn.net/weixin_43151418) 1.设计来源1.1 界面效果1.2 轮播图界面1.3 音乐播放界面1.4 视频播放界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作…

DAY22-力扣刷题

1.被围绕的区域 方法一&#xff1a;深度优先搜索 class Solution {int n, m;public void solve(char[][] board) {n board.length;if (n 0) {return;}m board[0].length;for (int i 0; i < n; i) {dfs(board, i, 0);dfs(board, i, m - 1);}for (int i 1; i < m - 1…

项目方案:社会视频资源整合接入汇聚系统解决方案(九)-视频监控汇聚应用案例

目录 一、概述 1.1 应用背景 1.2 总体目标 1.3 设计原则 1.4 设计依据 1.5 术语解释 二、需求分析 2.1 政策分析 2.2 业务分析 2.3 系统需求 三、系统总体设计 3.1设计思路 3.2总体架构 3.3联网技术要求 四、视频整合及汇聚接入 4.1设计概述 4.2社会视频资源分…

5.opencv深浅拷贝

图像处理的复制操作 深浅拷贝 图像复制分成两种&#xff0c;第一种假复制&#xff0c;从原图片选择一部分图片拿出来观察&#xff0c;此时新生成的图片和原图实际上是同一张图片&#xff0c;即浅拷贝 将图片的一部分复制下来&#xff0c;放到新的内存中&#xff0c;即两张完全…

AI视频教程下载-使用ChatGPT成为全栈JavaScript开发者

学习使用Express JS和React JS进行全栈JavaScript开发 ChatGPT Express JS MongoDB React JS Tailwind 解锁全栈网页开发的世界&#xff0c;我们为初学者和中级学习者设计了全面的课程。在这段沉浸式的旅程中&#xff0c;你将深入前端和后端开发的基本概念&#xff0c;为自…