步骤 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 [pipeline] == "your-app-pipeline" {
- # ...
- # }
- }
- output {
- elasticsearch {
- hosts => ["your.elasticsearch.server:9200"]
- index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+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" 页面,选择新创建的索引模式,您就可以看到您的日志了。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|
|
|
|
|
相关推荐
|
|
|