【ELK日志平台专题3--日志清洗设置】

1. 接入概述

本日志平台采用统一的技术架构,各系统日志通过Logstash进行标准化处理后存入Elasticsearch。研发人员需要按照以下规范配置Logstash,确保日志格式统一。

2. 标准配置模板

input {
  kafka {
    bootstrap_servers => "10.126.168.86:9093,10.126.168.87:9093,10.126.168.88:9093,10.126.168.89:9093,10.126.168.90:9093"
    topics => ["YOUR_TOPIC_NAME"]  # 需替换为各系统专属topic
    codec => "json"
    group_id => "logstash-group"  # 可按系统区分group_id
    client_id => "logstash-client-YOUR_SYSTEM"  # 需替换为系统标识
    consumer_threads => 10
    jaas_path => "/usr/local/logstash/config/client.jaas"
    security_protocol => "SASL_PLAINTEXT"
    sasl_mechanism => "SCRAM-SHA-256"
    auto_offset_reset => "latest"
    decorate_events => true
  }
}

filter {
  # 标准字段解析(必须保留)
  grok {
    match => { "log" => "%{TIMESTAMP_ISO8601:log_time}\s*\|\s*%{LOGLEVEL:log_level}\s*\|\s*%{DATA:trace_id}\s*\|\s*%{DATA:request_id}\s*\|\s*%{DATA:sys_id}\s*\|\s*%{DATA:thread}\s*\|\s*%{DATA:class}\s*\|\s*%{DATA:log_type}\s*\|\s*%{DATA:req_class}\s*\|\s*%{DATA:req_method}\s*\|\s*%{DATA:out_sys_id}\s*\|\s*%{DATA:out_biz_from}\s*\|\s*%{DATA:out_biz_scenario}\s*\|\s*%{DATA:invoke_result}\s*\|\s*%{DATA:resp_code}\s*\|\s*%{DATA:resp_msg}\s*\|\s*%{DATA:taken_ms}\s*\|\s*%{GREEDYDATA:log_msg}" }
  }
  
  # 时间处理(必须保留)
  date {
    match => ["log_time", "ISO8601"]
    timezone => "+08:00"
    target => "@timestamp"
  }
  
  # 系统标识注入(必须修改)
  mutate {
    add_field => { "system" => "YOUR_SYSTEM_NAME" }  # 需替换为系统名称
    remove_field => ["log_time", "_p", "@version"]
  }
  
  # 自定义字段处理(可选)
  # 可在此处添加系统特有的字段处理逻辑
}

output {
  elasticsearch {
    hosts => ["http://10.126.168.86:9500","http://10.126.168.87:9500","http://10.126.168.88:9500"]
    index => "log_YOUR_SYSTEM_write_alias"  # 需替换为系统专属索引别名
    user => "xxx"
    password => "撒啊洒洒"
  }
}

3. 配置说明

3.1 必须修改项

  1. Kafka Topic:

    • topics => ["YOUR_TOPIC_NAME"] 替换为分配给各系统的专属topic
    • 命名规范: [系统简称]-log (如: indicator-log)
  2. Client ID:

    • client_id => "logstash-client-YOUR_SYSTEM" 替换为系统标识
  3. 系统标识:

    • add_field => { "system" => "YOUR_SYSTEM_NAME" } 替换为系统英文名称
  4. ES索引别名:

    • index => "log_YOUR_SYSTEM_write_alias" 替换为系统专属索引别名
    • 命名规范: log_[系统简称]_write_alias (如: log_indicator_write_alias)

3.2 可选修改项

  1. Kafka Group ID:

    • 如需独立消费组可修改group_id
  2. Consumer线程数:

    • 根据日志量调整consumer_threads (默认10)
  3. 自定义字段处理:

    • 可在filter部分添加系统特有字段的处理逻辑

4. 日志格式要求

所有接入系统的日志必须遵循以下格式标准:

[时间戳]|[日志级别]|[trace_id]|[request_id]|[系统ID]|[线程名]|[类名]|[日志类型]|[请求类]|[请求方法]|[外部系统ID]|[业务来源]|[业务场景]|[调用结果]|[响应码]|[响应消息]|[耗时(ms)]|[日志内容]

示例日志:

2023-08-13T10:15:30.456+08:00|INFO|a1b2c3d4|req123|sys01|http-nio-8080-exec-1|com.example.Service|API|com.example.Controller|getUser|extsys01|order|create|SUCCESS|200|OK|45|用户查询成功 userId=1001

5. 接入流程

  1. 申请Kafka Topic
  2. 获取ES索引别名
  3. 修改Logstash配置模板
  4. 部署测试
  5. 验证日志采集
  6. 正式上线

6. 注意事项

  1. TraceID规范:

    • 必须使用公司统一的TraceID生成规则
    • 跨系统调用必须传递TraceID
  2. 日志级别:

    • 只允许使用标准级别: TRACE, DEBUG, INFO, WARN, ERROR, FATAL
  3. 敏感信息:

    • 禁止在日志中记录密码、密钥等敏感信息
  4. 性能影响:

    • 高频日志(>1000条/秒)需提前报备

7. 技术支持

如有问题请联系数据中台日志平台团队

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值