找回密码
 立即注册
首页 业界区 安全 elk日志配置

elk日志配置

闹忧踫 4 天前
步骤 1: 安装 Filebeat


  • 在您的日志服务器(应用运行的服务器)上,下载适合您操作系统的 Filebeat 版本。
  • 官方下载地址
  • 以 Linux 为例,下载并解压:
    Bash
    1. curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.0-linux-x86_64.tar.gz
    2. tar -zxvf filebeat-8.14.0-linux-x86_64.tar.gz
    3. cd filebeat-8.14.0-linux-x86_64/
    复制代码
步骤 2: 配置 Filebeat

Filebeat 的主要配置文件是 filebeat.yml。您需要对其进行修改以匹配您的日志和 ELK 架构。
YAML
  1. # ======================== Filebeat inputs =========================
  2. filebeat.inputs:
  3. - type: filestream
  4.   enabled: true
  5.   # 指定要采集的日志文件路径,支持通配符
  6.   paths:
  7.     - /path/to/your/app/logs/*.log
  8.     # 比如您的日志文件路径:
  9.     # - /home/yzt/logs/test/saas-goods.log
  10.     # - /home/yzt/logs/prod/saas-goods.log
  11.     # 您也可以使用通配符采集所有应用日志:
  12.     # - /home/yzt/logs/*/*.log
  13. # ======================= Elasticsearch output =========================
  14. # Filebeat 可以直接发送到 Elasticsearch,但通常推荐通过 Logstash 进行预处理
  15. # output.elasticsearch:
  16. #   hosts: ["localhost:9200"]
  17. #   username: "elastic"
  18. #   password: "changeme"
  19. # =========================== Logstash output ============================
  20. output.logstash:
  21.   # Logstash 服务的地址,通常是集群中的一个或多个节点
  22.   hosts: ["your.logstash.server:5044"]
  23.   # 设置一个唯一的管道ID,以便在Logstash中识别数据来源
  24.   pipeline: "your-app-pipeline"
  25. # =============================== Processors ===============================
  26. # processors:
  27. #   - add_host_metadata: ~
  28. #   - add_cloud_metadata: ~
  29. #   - add_docker_metadata: ~
  30. #   - add_kubernetes_metadata: ~
  31. # ================================= Kibana =================================
  32. # setup.kibana:
  33. #   host: "localhost:5601"
复制代码
配置详解:

  • filebeat.inputs:

    • type: filestream:这是新版本 Filebeat 的输入类型,它取代了老版本的 log 类型。
    • paths:这里填写您要监控的日志文件绝对路径。由于您使用的是 logback-spring.xml 中的相对路径 ./logs,请确保您转换为绝对路径。

  • output.logstash:

    • hosts:这是您的 Logstash 服务器的 IP 地址和端口。默认的 Beats 输入端口是 5044。
    • pipeline:这是一个可选但非常好的实践。您可以在 Filebeat 端指定一个 pipeline 名称,然后在 Logstash 的配置中,可以根据这个名称来选择不同的处理管道,实现不同日志的定制化处理。

步骤 3: 启动 Logstash (如果您使用 Logstash)

如果您的 Filebeat 将数据发送到 Logstash,您需要在 Logstash 服务器上配置并启动它。
logstash.conf 示例:
代码段
  1. input {
  2.   beats {
  3.     port => 5044
  4.   }
  5. }
  6. filter {
  7.   # 由于您的日志已经是LogstashEncoder生成的JSON格式,
  8.   # Logstash的beats输入插件默认会将其解析,
  9.   # 所以这里通常不需要复杂的filter,除非你想做一些额外的处理
  10.   # 例如,根据Filebeat传过来的pipeline名称进行条件过滤
  11.   # if [pipeline] == "your-app-pipeline" {
  12.   #   ...
  13.   # }
  14. }
  15. output {
  16.   elasticsearch {
  17.     hosts => ["your.elasticsearch.server:9200"]
  18.     index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  19.     # 或者自定义索引名称,例如:
  20.     # index => "your-app-logs-%{+YYYY.MM.dd}"
  21.   }
  22. }
复制代码

  • input { beats { ... } }: Logstash 监听 5044 端口,接收来自 Filebeat 的数据。
  • output { elasticsearch { ... } }: 将数据发送到 Elasticsearch 集群。
步骤 4: 运行 Filebeat

在您的日志服务器上,进入 Filebeat 目录,运行以下命令:

  • 前台运行(用于测试和调试):
    Bash
    1. ./filebeat -e -c filebeat.yml
    复制代码

    • -e:将日志输出到标准错误,方便在终端查看。
    • -c:指定配置文件。

  • 后台运行(用于生产环境):
    Bash
    1. nohup ./filebeat -e -c filebeat.yml > /dev/null 2>&1 &
    复制代码

    • 推荐使用 nohup 命令,让 Filebeat 在终端关闭后继续运行。
    • > /dev/null 2>&1 将所有输出重定向到 /dev/null,避免生成日志文件。

步骤 5: 在 Kibana 中查看日志


  • 登录 Kibana,进入 "Stack Management" -> "Index Patterns"
  • 创建一个新的索引模式,名称与您的 Logstash 配置中的 index 名称匹配(例如 your-app-logs-*)。
  • "Discover" 页面,选择新创建的索引模式,您就可以看到您的日志了。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册