闹忧踫 发表于 2025-12-4 18:40:00

elk日志配置

步骤 1: 安装 Filebeat


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

Filebeat 的主要配置文件是 filebeat.yml。您需要对其进行修改以匹配您的日志和 ELK 架构。
YAML
# ======================== Filebeat inputs =========================
filebeat.inputs:
- type: filestream
enabled: true
# 指定要采集的日志文件路径,支持通配符
paths:
    - /path/to/your/app/logs/*.log
    # 比如您的日志文件路径:
    # - /home/yzt/logs/test/saas-goods.log
    # - /home/yzt/logs/prod/saas-goods.log
    # 您也可以使用通配符采集所有应用日志:
    # - /home/yzt/logs/*/*.log

# ======================= Elasticsearch output =========================
# Filebeat 可以直接发送到 Elasticsearch,但通常推荐通过 Logstash 进行预处理
# output.elasticsearch:
#   hosts: ["localhost:9200"]
#   username: "elastic"
#   password: "changeme"

# =========================== Logstash output ============================
output.logstash:
# Logstash 服务的地址,通常是集群中的一个或多个节点
hosts: ["your.logstash.server:5044"]
# 设置一个唯一的管道ID,以便在Logstash中识别数据来源
pipeline: "your-app-pipeline"

# =============================== Processors ===============================
# processors:
#   - add_host_metadata: ~
#   - add_cloud_metadata: ~
#   - add_docker_metadata: ~
#   - add_kubernetes_metadata: ~

# ================================= Kibana =================================
# setup.kibana:
#   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 示例:
代码段
input {
beats {
    port => 5044
}
}

filter {
# 由于您的日志已经是LogstashEncoder生成的JSON格式,
# Logstash的beats输入插件默认会将其解析,
# 所以这里通常不需要复杂的filter,除非你想做一些额外的处理
# 例如,根据Filebeat传过来的pipeline名称进行条件过滤
# if == "your-app-pipeline" {
#   ...
# }
}

output {
elasticsearch {
    hosts => ["your.elasticsearch.server:9200"]
    index => "%{[@metadata]}-%{[@metadata]}-%{+YYYY.MM.dd}"
    # 或者自定义索引名称,例如:
    # index => "your-app-logs-%{+YYYY.MM.dd}"
}
}

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

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

[*]前台运行(用于测试和调试):
Bash
./filebeat -e -c filebeat.yml

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

[*]后台运行(用于生产环境):
Bash
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" 页面,选择新创建的索引模式,您就可以看到您的日志了。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: elk日志配置