logstash配置和启动

第二步:配置 Logstash(接收 Filebeat 日志,处理后发送到 Elasticsearch)

1. 创建 Logstash 管道配置文件

进入 Logstash 安装目录的 config 文件夹(如 C:\logstash-9.2.1\config),新建一个文件 springcloud-pipeline.conf,内容如下:
conf
 
 
# 1. 输入:接收来自 Filebeat 的日志(端口必须与 Filebeat 输出一致)
input {
  beats {
    port => 5044  # 与 Filebeat 中 output.logstash.hosts 的端口一致
  }
}

# 2. 过滤:处理日志(以 JSON 格式日志为例,微服务输出 JSON 时用)
filter {
  # 解析 JSON 格式的日志(如果你的微服务日志是 JSON 格式)
  json {
    source => "message"  # 从 message 字段解析 JSON
    target => "log_details"  # 解析后的字段放入 log_details 中
    remove_field => ["message"]  # 解析后删除原始 message 字段(可选)
  }

  # 补充一个字段,标记该日志经过 Logstash 处理(可选)
  mutate {
    add_field => { "processed_by" => "logstash" }
  }
}

# 3. 输出:发送到 Elasticsearch
output {
  elasticsearch {
    hosts => ["https://localhost:9200"]  # Elasticsearch 地址(9.x 需用 https)
    username => "elastic"
    password => "你的elastic密码"  # 与 Elasticsearch 一致
    index => "springcloud-logs-%{+yyyy.MM.dd}"  # 按日期生成索引
    # 9.x 强制 SSL,需指定 CA 证书路径(Elasticsearch 安装目录下)
    ssl => true
    cacert => "C:/ElasticSearch/elasticsearch-9.2.1/config/certs/http_ca.crt"
  }

  # 调试用:同时输出到控制台(生产环境可注释)
  stdout {
    codec => rubydebug  # 格式化显示,方便查看处理结果
  }
}
 

2. 关键说明

  • filter 部分:如果你的微服务日志是 纯文本(非 JSON),需要用 grok 插件解析(参考之前的示例);如果是 JSON 格式,上述配置直接可用。
  • cacert 路径:确保 http_ca.crt 文件存在于 Elasticsearch 的 config/certs 目录下(9.x 启动时自动生成)。

第三步:启动 Filebeat 和 Logstash(按顺序!)

1. 启动 Logstash(先启动,等待接收日志)

打开 CMD管理员,进入 Logstash 的 bin 目录,执行:
logstash.bat -f ../config/springcloud-pipeline.conf  # 指定刚才创建的配置文件
logstash.bat -f "C:\ElasticSearch\Logstash\logstash-9.2.1-windows-x86_64\logstash-9.2.1\config\springcloud-pipeline.conf"
 
  • 启动成功标志:控制台显示 Successfully started Logstash API endpoint,且无 ERROR 日志(首次启动可能需要 10-20 秒)。
posted @ 2025-11-14 01:01  C豪  阅读(33)  评论(0)    收藏  举报