基于ELK构建日志分析系统

Elasticsearch BES

  • 邀测版存储计算分离套餐介绍
  • 功能发布记录
  • 产品描述
    • 基本概念
    • 关键特性
    • 产品介绍
    • 产品性能
      • 4核16GB512GB通用型的3个数据节点实例基准性能指标
      • 8核16GB512GB计算型的3个数据节点实例基准性能测试
      • 16核32GB512GB计算型的3个数据节点实例基准性能指标
      • 4核8GB512GB计算型的3个数据节点实例基准性能测试
      • 8核32GB512GB通用型的3个数据节点实例基准性能指标
      • 16核64GB512GB通用型的3个数据节点实例基准性能指标
      • 概述
  • Python-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • Kibana
    • Kibana使用指南
  • Logstash
    • Logstash使用指南
    • 实例管理
      • 实例详情信息
      • 实例扩缩容
      • 管道管理
      • 创建实例
      • 实例列表
      • 删除实例
  • 开发指南
    • Elasticsearch Restful API
    • 通过其他客户端访问Elasticsearch
    • Elasticsearch Java客户端
      • Low Level REST Client
      • Rest Client操作向量索引示例
      • Java REST Client
      • High Level REST Client
  • Java-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • 向量检索特性
    • 资源规划
    • 关键概念
    • 应用场景
    • 快速入门
    • 算法介绍
    • 能力简介
    • 向量数据库
    • 操作指南
      • 写入和查询数据
      • 训练模型
      • 向量索引缓存管理
      • 创建索引
      • 基于Reciprocal Rank Fusion的融合查询
      • 参数优化
      • 7.4版本兼容说明
    • 最佳实践
      • 调优建议
      • BES RAG 最佳实践:基于LangChain+BES的私域知识的QA问答系统
    • 迁移方案
      • ES dense vector 切换为BES方案
  • ELK
    • 基于ELK构建日志分析系统
  • 增强特性
    • 慢查询隔离
    • 百度NLP中文分词词典动态更新
    • 百度NLP中文分词插件
    • 基于段文件的主从复制
    • 基于BOS的冷热数据分离
  • 快速入门
    • 访问Elasticsearch服务
    • 导入数据并搜索
    • 创建集群
    • 集群资源评估
  • 典型实践
    • 使用BSC将BOS中的数据导入Es
    • 使用BSC将Kafka中的数据导入Es
    • 基于CCR实现多集群跨地域高可用
    • 基于节点磁盘介质的冷热数据分离
  • 服务等级协议SLA
    • 数据迁移服务协议
    • BES服务等级协议SLA(V1.0)
  • 常见问题
    • Spark访问Es常见问题
    • Elasticsearch系统常见问题
    • 常见问题总览
  • 产品定价
    • 预付费
    • 计费说明
    • 配置变更费用说明
    • 后付费
  • API文档
    • 概述
    • 自动续费相关接口
      • 续费列表
      • 查看自动续费
      • 查看自动续费规则列表
      • 续费操作
      • 更新自动续费规则
      • 删除自动续费规则
      • 创建自动续费规则
    • 插件配置接口
      • 上传自定义插件
      • 卸载系统默认插件
      • 上传nlp词典
      • 安装系统默认插件
      • 获取默认和自定义插件列表
      • 卸载自定义插件
      • 安装自定义插件
      • 删除自定义插件
      • 查看nlp词典
    • 日志管理相关接口
      • 查看日志导出任务记录
      • 创建日志导出任务
      • 日志设置
      • 日志查询
    • 标签接口
      • 查询标签列表
      • 批量新增标签
      • 单个集群更新标签
    • 智能巡检接口
      • 查看近7天已完成的巡检任务列表
      • 近七天巡检概况
      • 查看手动巡检任务的配置
      • 集群巡检授权
      • 列举所有可选巡检项
      • 查询是否可以提交巡检任务
      • 最新一次巡检概况
      • 查看集群是否开启自动巡检
      • 修改手动巡检任务的配置
      • 开启或关闭自动巡检
      • 提交手动巡检任务
      • 查询今日已执行完成的手动巡检次数
      • 查看某巡检任务的执行状态和结果
    • 集群相关接口
      • 获取操作历史信息
      • 删除集群
      • 新增节点类型
      • 开启和关闭https
      • 查看集群详情信息
      • 重置密码
      • EIP绑定
      • EIP解绑
      • 是否开启Grafana监控
      • 获取数据量观测数据
      • 查看集群列表
      • 上传NLP分词词典
      • 创建集群
      • 智能评估
      • 集群blb信息
      • 用户可用代金券列表
      • 停止集群
      • 扩容集群
      • 启动集群
      • 重启集群
    • 实例相关接口
      • 批量停止实例
      • 启动实例
      • 查看缩容节点列表
      • 数据迁移
      • 数据迁移系统建议
      • 批量启动实例
      • 数据迁移回滚
      • 停止实例
      • 数据迁移节点列表
      • 删除实例
    • 配置修改相关接口
      • 获取同义词文件列表
      • 查看集群配置
      • 删除同义词配置文件
      • 上传同义词配置文件
      • 配置修改
    • 定时调度
      • 更新定时调度任务
      • 删除定时调度任务
      • 创建和更新定时调度任务
      • 查看定时调度任务
  • API3.0
    • 集群相关接口
      • 删除集群
  • Elasticsearch
    • 用户手册
      • YML参数配置
      • 权限管理
      • 智能巡检
      • 数据迁移
      • 基于BOS的快照与恢复
      • 集群列表
      • 账号使用说明
      • 多可用区部署
      • 定时调度
      • 数据量观测
      • 日志查询
        • 日志查询(旧)
        • 日志查询(新)
        • 日志导出
        • 查询语法
      • 集群配置
        • 配置同义词
      • 插件管理
        • 上传与安装自定义插件
        • Elasticsearch插件列表
        • 系统默认插件
          • analysis-pinyin拼音分词插件
          • IK中文分词插件与动态更新词典
          • compression-zstd插件
          • CCR插件
          • 限流插件
          • 动态同义词插件
          • 简繁体转换插件
          • ingest attachment插件
          • SQL插件
      • 配置变更
        • 节点数据迁移
        • 集群变配说明与建议
        • 集群扩缩容
      • 版本升级
        • 升级版本
        • 内核版本说明
        • 升级检查
      • 集群监控报警
        • 监控查看及指标说明
        • 配置报警
      • 集群管理
        • 集群重启
        • 变更HTTPS协议用户指南
        • 节点启停
        • 查看集群信息
        • 集群创建
        • 公网绑定
        • 修改集群名称
        • 跨可用区迁移集群
        • 集群删除
        • 集群列表
        • 自动续费
        • 密码重置
        • ES服务区域代码
      • 账户管理
        • 多用户访问控制
所有文档
menu
没有找到结果,请重新输入

Elasticsearch BES

  • 邀测版存储计算分离套餐介绍
  • 功能发布记录
  • 产品描述
    • 基本概念
    • 关键特性
    • 产品介绍
    • 产品性能
      • 4核16GB512GB通用型的3个数据节点实例基准性能指标
      • 8核16GB512GB计算型的3个数据节点实例基准性能测试
      • 16核32GB512GB计算型的3个数据节点实例基准性能指标
      • 4核8GB512GB计算型的3个数据节点实例基准性能测试
      • 8核32GB512GB通用型的3个数据节点实例基准性能指标
      • 16核64GB512GB通用型的3个数据节点实例基准性能指标
      • 概述
  • Python-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • Kibana
    • Kibana使用指南
  • Logstash
    • Logstash使用指南
    • 实例管理
      • 实例详情信息
      • 实例扩缩容
      • 管道管理
      • 创建实例
      • 实例列表
      • 删除实例
  • 开发指南
    • Elasticsearch Restful API
    • 通过其他客户端访问Elasticsearch
    • Elasticsearch Java客户端
      • Low Level REST Client
      • Rest Client操作向量索引示例
      • Java REST Client
      • High Level REST Client
  • Java-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • 向量检索特性
    • 资源规划
    • 关键概念
    • 应用场景
    • 快速入门
    • 算法介绍
    • 能力简介
    • 向量数据库
    • 操作指南
      • 写入和查询数据
      • 训练模型
      • 向量索引缓存管理
      • 创建索引
      • 基于Reciprocal Rank Fusion的融合查询
      • 参数优化
      • 7.4版本兼容说明
    • 最佳实践
      • 调优建议
      • BES RAG 最佳实践:基于LangChain+BES的私域知识的QA问答系统
    • 迁移方案
      • ES dense vector 切换为BES方案
  • ELK
    • 基于ELK构建日志分析系统
  • 增强特性
    • 慢查询隔离
    • 百度NLP中文分词词典动态更新
    • 百度NLP中文分词插件
    • 基于段文件的主从复制
    • 基于BOS的冷热数据分离
  • 快速入门
    • 访问Elasticsearch服务
    • 导入数据并搜索
    • 创建集群
    • 集群资源评估
  • 典型实践
    • 使用BSC将BOS中的数据导入Es
    • 使用BSC将Kafka中的数据导入Es
    • 基于CCR实现多集群跨地域高可用
    • 基于节点磁盘介质的冷热数据分离
  • 服务等级协议SLA
    • 数据迁移服务协议
    • BES服务等级协议SLA(V1.0)
  • 常见问题
    • Spark访问Es常见问题
    • Elasticsearch系统常见问题
    • 常见问题总览
  • 产品定价
    • 预付费
    • 计费说明
    • 配置变更费用说明
    • 后付费
  • API文档
    • 概述
    • 自动续费相关接口
      • 续费列表
      • 查看自动续费
      • 查看自动续费规则列表
      • 续费操作
      • 更新自动续费规则
      • 删除自动续费规则
      • 创建自动续费规则
    • 插件配置接口
      • 上传自定义插件
      • 卸载系统默认插件
      • 上传nlp词典
      • 安装系统默认插件
      • 获取默认和自定义插件列表
      • 卸载自定义插件
      • 安装自定义插件
      • 删除自定义插件
      • 查看nlp词典
    • 日志管理相关接口
      • 查看日志导出任务记录
      • 创建日志导出任务
      • 日志设置
      • 日志查询
    • 标签接口
      • 查询标签列表
      • 批量新增标签
      • 单个集群更新标签
    • 智能巡检接口
      • 查看近7天已完成的巡检任务列表
      • 近七天巡检概况
      • 查看手动巡检任务的配置
      • 集群巡检授权
      • 列举所有可选巡检项
      • 查询是否可以提交巡检任务
      • 最新一次巡检概况
      • 查看集群是否开启自动巡检
      • 修改手动巡检任务的配置
      • 开启或关闭自动巡检
      • 提交手动巡检任务
      • 查询今日已执行完成的手动巡检次数
      • 查看某巡检任务的执行状态和结果
    • 集群相关接口
      • 获取操作历史信息
      • 删除集群
      • 新增节点类型
      • 开启和关闭https
      • 查看集群详情信息
      • 重置密码
      • EIP绑定
      • EIP解绑
      • 是否开启Grafana监控
      • 获取数据量观测数据
      • 查看集群列表
      • 上传NLP分词词典
      • 创建集群
      • 智能评估
      • 集群blb信息
      • 用户可用代金券列表
      • 停止集群
      • 扩容集群
      • 启动集群
      • 重启集群
    • 实例相关接口
      • 批量停止实例
      • 启动实例
      • 查看缩容节点列表
      • 数据迁移
      • 数据迁移系统建议
      • 批量启动实例
      • 数据迁移回滚
      • 停止实例
      • 数据迁移节点列表
      • 删除实例
    • 配置修改相关接口
      • 获取同义词文件列表
      • 查看集群配置
      • 删除同义词配置文件
      • 上传同义词配置文件
      • 配置修改
    • 定时调度
      • 更新定时调度任务
      • 删除定时调度任务
      • 创建和更新定时调度任务
      • 查看定时调度任务
  • API3.0
    • 集群相关接口
      • 删除集群
  • Elasticsearch
    • 用户手册
      • YML参数配置
      • 权限管理
      • 智能巡检
      • 数据迁移
      • 基于BOS的快照与恢复
      • 集群列表
      • 账号使用说明
      • 多可用区部署
      • 定时调度
      • 数据量观测
      • 日志查询
        • 日志查询(旧)
        • 日志查询(新)
        • 日志导出
        • 查询语法
      • 集群配置
        • 配置同义词
      • 插件管理
        • 上传与安装自定义插件
        • Elasticsearch插件列表
        • 系统默认插件
          • analysis-pinyin拼音分词插件
          • IK中文分词插件与动态更新词典
          • compression-zstd插件
          • CCR插件
          • 限流插件
          • 动态同义词插件
          • 简繁体转换插件
          • ingest attachment插件
          • SQL插件
      • 配置变更
        • 节点数据迁移
        • 集群变配说明与建议
        • 集群扩缩容
      • 版本升级
        • 升级版本
        • 内核版本说明
        • 升级检查
      • 集群监控报警
        • 监控查看及指标说明
        • 配置报警
      • 集群管理
        • 集群重启
        • 变更HTTPS协议用户指南
        • 节点启停
        • 查看集群信息
        • 集群创建
        • 公网绑定
        • 修改集群名称
        • 跨可用区迁移集群
        • 集群删除
        • 集群列表
        • 自动续费
        • 密码重置
        • ES服务区域代码
      • 账户管理
        • 多用户访问控制
  • 文档中心
  • arrow
  • ElasticsearchBES
  • arrow
  • ELK
  • arrow
  • 基于ELK构建日志分析系统
本页目录
  • 介绍
  • 操作流程:
  • 环境准备
  • 配置Filebeat
  • 配置Logstash
  • 查看日志消费状态
  • 通过Kibana查看日志数据

基于ELK构建日志分析系统

更新时间:2025-08-20

介绍

日志是一个系统不可缺少的组成部分,日志记录系统产生的各种行为,基于日志信息可以对系统进行问题排查,性能优化,安全分析等工作。 使用ELK(Elasticsearch、Logstash、Kibana) 结合Filebeat与Kafka构建日志分析系统,可以方便的对日志数据进行采集解析存储,以及近实时的查询分析。

各组件在日志系统中的职责与关系如下所示:

image.png

  1. Filebeat:采集原始日志数据,输出数据到Kafka;
  2. Kafka:作为消息队列,存储原始日志数据;
  3. Logstash:消费Kafka中数据,解析过滤后,将其存储到Elasticsearch中;
  4. Elasticsearch:存储用于分析的日志数据,并提供查询、聚合的底层能力;
  5. Kibana:提供日志分析的可视化界面;

操作流程:

  1. 环境准备

    包括:创建百度Elasticsearch(简称BES)集群、Kibana服务,安装Filebeat、Logstash、Kafka。

  2. 配置Filebeat:

    配置Filebeat的input为系统日志,output为Kafka,将日志数据采集到Kafka的指定topic中。

  3. 配置Logstash:

    配置Logstash的input为Kafka,output为BES,使用Logstash消费topic中的数据并传输到BES中。

  4. 查看日志消费状态:

    在消息队列Kafka中查看日志数据的消费的状态,验证日志数据是否采集成功。

  5. 通过Kibana查看日志数据:

    在Kibana控制台的Discover页面,查询采集的日志数据。

环境准备

  1. 创建BES集群

    参考集群创建中的内容,完成BES集群的创建。

    本文档中创建的BES集群选择7.4.2版本,Filebeat组件、Logstash组件使用的也是7.4.2版本。

  2. 创建Kibana服务

    在完成BES集群创建后,除了已购买的BES节点,默认会附赠一个单节点的Kibana服务(Kibana节点支持按需自定义配置),如图所示:

    image.png

    通过上图连接信息中所示的Kibana HTTP URL可以直接访问Kibana服务。

    Kibana用户名密码与BES服务的用户名密码相同,详见账号使用说明

  3. 安装Filebeat

    下载7.4.2的oss版本Filebeat;

    Plain Text
    1wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-7.4.2-linux-x86_64.tar.gz

    解压安装Filebeat;

    Plain Text
    1tar -zxvf filebeat-oss-7.4.2-linux-x86_64.tar.gz
  4. 安装Logstash

    下载7.4.2的oss版本Logstash;

    Plain Text
    1wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-7.4.2.tar.gz

    解压安装Logstash;

    Plain Text
    1tar -zxvf logstash-oss-7.4.2.tar.gz
  5. 安装、配置Kafka服务

    5.1 下载Zookeeper(Kafka服务依赖Zookeeper);

    Plain Text
    1wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz

    5.2 解压安装Zookeeper;

    Plain Text
    1tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz

    5.3 配置Zookeeper;

    Plain Text
    1vi conf/zoo.cfg

    zoo.cfg内容如下所示:

    Plain Text
    1tickTime=2000
    2dataDir=/your_path/apache-zookeeper-3.6.4-bin/data
    3clientPort=2181
    4initLimit=5
    5syncLimit=2
    6admin.serverPort=8888

    配置参数说明,如下所示:

    参数名称 参数说明
    tickTime 服务器之间或客户端与服务器之间维持心跳的时间间隔
    dataDir 数据文件目录
    clientPort 客户端连接端口
    initLimit Leader-Follower初始通信时限
    syncLimit Leader-Follower同步通信时限
    admin.serverPort 内置Jetty绑定的port

    5.4 启动Zookeeper;

    Plain Text
    1bin/zkServer.sh start

    5.5 下载Kafka;

    Plain Text
    1wget https://archive.apache.org/dist/kafka/2.0.1/kafka_2.12-2.0.1.tgz

    5.6 解压安装Kafka;

    Plain Text
    1tar -zxvf kafka_2.12-2.0.1.tgz

    5.7 配置Kafka;

    Plain Text
    1cd kafka_2.12-2.0.1
    2vi config/server.properties

    server.properties内容如下所示:

    Plain Text
    1broker.id=0
    2zookeeper.connect=localhost:2181

    配置参数说明,如下所示:

    参数名称 参数说明
    broker.id Kafka集群实例的唯一标识
    zookeeper.connect Zookeeper的连接地址

    5.8 启动Kafka;

    Plain Text
    1bin/kafka-server-start.sh config/server.properties

    5.9 创建名称为 logdata 的 topic,用于接收采集数据,命令示例如下所示:

    Plain Text
    1bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 2 --partitions 20 --topic logdata

    命令参数说明,如下所示:

    参数名称 参数说明
    zookeeper Zookeeper的连接地址
    topic topic的名称
    replication-factor topic的副本数
    partitions topic的分区数量

配置Filebeat

1.创建Filebeat采集配置文件;

Plain Text
1 cd filebeat-oss-7.4.2-linux-x86_64
2 vi filebeat.kafka.yml

filebeat.kafka.yml内容如下:

Plain Text
1 filebeat.inputs:
2   - type: log
3     enabled: true
4     paths:
5         - /your_path/*.log
6 
7 output.kafka:
8     hosts: ["**.**.**.**:9092"]
9     topic: logdata
10     version: 2.0.1

配置参数说明,如下所示:

参数名称 参数说明
type 输入类型,设置为log,表示输入源为日志
enabled input处理器的开关
paths 需要监控的日志文件的路径
hosts 消息队列Kafka的地址
topic 日志输出到消息队列Kafka的topic
version Kafka的版本

2.启动Filebeat;

Plain Text
1./filebeat -e -c filebeat.kafka.yml  

配置Logstash

1.创建配置文件logstash.conf;

Plain Text
1cd logstash-oss-7.4.2
2vi logstash.conf

logstash.conf内容如下:

Plain Text
1input {
2   kafka {
3     bootstrap_servers => "127.0.0.1:9092"
4     group_id => "log-data"
5     topics => ["logdata"] 
6     codec => json
7  }
8}
9filter {
10}
11output {
12  elasticsearch {
13    hosts => "http://es_ip:es_http_port"
14    user =>"your username"
15    password =>"your password"
16    index => "kafka‐%{+YYYY.MM.dd}"
17  }
18}

配置参数说明,如下所示:

参数名称 参数说明
bootstrap_servers Kafka的地址
group_id Kafka消费者组id
topics Kafka的topic名称
codec 数据格式
hosts BES服务地址
user BES账号
password BES账号的密码
index 数据写入的索引

2.启动Logstash;

Plain Text
1bin/logstash -f logstash.conf 

更多Logstash的使用说明,详见Logstash使用指南。

查看日志消费状态

使用如下命令查看消费状态;

Plain Text
1bin/kafka-consumer-groups.sh  --bootstrap-server 127.0.0.1:9092 --group log-data --describe

命令参数说明,如下所示:

参数名称 参数说明
bootstrap_servers Kafka的地址
group Kafka消费者组

执行结果如下所示:

image.png

结果属性说明,如下所示:

参数名称 参数说明
topic Kafka的topic名称
partition topic的分区id
current-offset consumer消费的具体位移
log-end-offset partition的最高位移
lag 堆积量
consumer-id 消费者id

通过Kibana查看日志数据

完成以下的配置后,即可通过Kibana查看日志数据。

1.创建索引模式

在左侧导航栏,点击Management(下图中红框位置)后,在Kibana区域点击Index Patterns(下图中蓝框位置),然后再点击Create index pattern按钮(下图绿框位置)

image.png

在Index pattern处(下图红框位置)填入kafka*,然后点击点击Next Step按钮(下图中蓝框位置)

image.png

为Time Filter field name选择@timestamp字段(下图中红框位置),然后点击Create index pattern按钮(下图中蓝框位置)

image.png

2.查看日志数据

在左侧导航栏,点击Discover(下图中红框位置)后,即可以查询日志数据

image.png

更多Kibana的使用说明,详见Kibana使用指南中的内容。

上一篇
向量检索特性
下一篇
增强特性