4、Filebeat

一、Filebeat安装

1、下载解压

tar -zxf filebeat-6.6.0-linux-x86_64.tar.gz
mv filebeat-6.6.0-linux-x86_64 /usr/local/filebeat-6.6.0
mv filebeat-6.6.0-linux-x86_64 /usr/local/filebeat-6.6.0
mv /usr/local/filebeat-6.6.0/filebeat.yml /usr/local/filebeat-6.6.0/filebeat.yml.bak

2、修改配置文件,将日志直接发送到elasticsearch,不经过处理
vim /usr/local/filebeat-6.6.0/filebeat.ym

[root@elk-node2-51 local]# cat /usr/local/filebeat-6.6.0/filebeat.yml
filebeat.inputs:
- type: log
  tail_files: true
  backoff: "1s"
  paths:
      - /usr/local/nginx/logs/access.log

output:
  elasticsearch:
    hosts: ["10.0.0.50:9200"]

3、启动Filebeat

前台启动

/usr/local/filebeat-6.6.0/filebeat  -e -c /usr/local/filebeat-6.6.0/filebeat.yml

后台启动

nohup /usr/local/filebeat-6.6.0/filebeat  -e -c /usr/local/filebeat-6.6.0/filebeat.yml >/tmp/filebeat.log 2>&1 &

4、访问nginx页面然后查看filebeat日志,可以看到连接到了elasticsearch
tail /tmp/filebeat.log 在这里插入图片描述
5、在kibana上可以看到有filebeat的索引
在这里插入图片描述
6、创建索引然后查看
在这里插入图片描述
在这里插入图片描述

二、Filebeat+Logstash

Filebeat -> Logstash -> Elasticsearch -> Kibana

1、修改filebeat配置文件,将output改为将日志发送到logstash

vim /usr/local/filebeat-6.6.0/filebeat.yml

[root@elk-node2-51 local]# cat /usr/local/filebeat-6.6.0/filebeat.yml
filebeat.inputs:
- type: log
  tail_files: true
  backoff: "1s"
  paths:
      - /usr/local/nginx/logs/access.log

output:
  logstash:
    hosts: ["10.0.0.51:5044"]

2、修改logstash配置文件,监听5044端口,接收Filebeat发送过来的日志,可以在logstash上对日志进行过滤等处理,然后将日志发送到elasticsearch。

logstash的日志有报错 Could not index event to Elasticsearch,因为host内包含name引起的。暂时的解决办法就是添加配置进行过滤,添加一个下面的过滤器。
vim /usr/local/logstash-6.6.0/config/logstash.conf

[root@elk-node2-51 local]# cat /usr/local/logstash-6.6.0/config/logstash.conf 
input {
  beats {
    host => '0.0.0.0'
    port => 5044
  }
}

filter {
  mutate {
    rename => { "[host][name]" => "host" }
  }
}

output{
  elasticsearch{
    hosts => ["http://10.0.0.50:9200"]
  }
}

然后在kibana查看日志

三、Filebeat采集多个日志

1、filebeat配置介绍
https://www.cnblogs.com/smile361/p/7688545.html
https://blog.youkuaiyun.com/a464057216/article/details/51233375

2、修改filebeat配置文件,采集nginx日志和secure登录日志

增加一个fields字段,也可以添加tags标签,在前面K8s有用到
fields:
type: access
fields_under_root: true

vim /usr/local/filebeat-6.6.0/filebeat.yml

[root@elk-node2-51 ~]# cat /usr/local/filebeat-6.6.0/filebeat.yml
filebeat.inputs:
- type: log
  tail_files: true
  backoff: "1s"
  paths:
      - /usr/local/nginx/logs/access.log
  fields:
    type: access
  fields_under_root: true

- type: log
  tail_files: true
  backoff: "1s"
  paths:
      - /var/log/secure
  fields:
    type: secure
  fields_under_root: true

output:
  logstash:
    hosts: ["10.0.0.51:5044"]
    enabled: true

3、Logstash如何判断日志文件

  • Filebeat加入一字段用来区别
  • Logstash使用区别字段来区分

4、修改Logstash文件
Logstash通过fields中的type字段进行判断

vim /usr/local/logstash-6.6.0/config/logstash.conf

[root@elk-node2-51 ~]# cat /usr/local/logstash-6.6.0/config/logstash.conf
input {
  beats {
    host => '0.0.0.0'
    port => 5044
  }
}

filter {
  mutate {
    rename => { "[host][name]" => "host" }
  }
}

output{

  if [type] == "access" {
    elasticsearch {
      hosts => ["http://10.0.0.50:9200"]
      index => "access-%{+YYYY.MM.dd}"
    }
  }

  if [type] == "secure" {
    elasticsearch {
      hosts => ["http://10.0.0.50:9200"]
      index => "secure-%{+YYYY.MM.dd}"
    }
  }

}

5、重启filebeat和logstash,在kibana上添加access索引和secure索引然后查看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### Filebeat 使用指南 #### 编辑配置文件 为了使用 Filebeat,需要先对其进行配置。Filebeat 的主要配置文件位于 `<localpath>/filebeat-<version>/` 目录下,名为 `filebeat.yml`[^1]。此文件包含了所有的输入源定义以及输出目标设置。 #### 安装与入门 如果尚未熟悉如何安装和初步配置 Filebeat,则可以通过官方文档或其他教程学习基础知识[^2]。例如,在 Linux 系统上,可以按照以下方式启动 Filebeat: ```bash sudo ./filebeat -e -c filebeat.yml ``` #### 进入容器中的 Filebeat 实例 当在 Docker 环境中部署 Filebeat 时,可能需要进入对应的容器实例来进行调试或管理操作。这可通过如下命令实现: ```bash docker exec -it filebeat /bin/bash ``` 成功执行后会看到类似于 `[root@00bef51abf02 filebeat]#` 的提示符,表示已切换至指定的 container 内部环境[^3]。 #### 日志监控与状态查询 对于运维人员来说,持续跟踪 Filebeat 的工作状况非常重要。以下是几种常见的监测手段: - **查看日志** 默认情况下,Filebeat 将其活动记录打印到标准输出流 (stdout),因此可以直接读取终端上的信息或者利用专门的日志分析软件进一步挖掘细节[^4]。 - **调用 Status API** 如果启用了 HTTP Server 功能,则能够借助简单的 RESTful 请求获取当前节点的工作概况。比如下面这条指令展示了怎样提取基本统计资料: ```bash curl http://localhost:9673/status ``` - **集成第三方工具** 更高级别的解决方案涉及连接像 ELK Stack 或 Prometheus 这样的外部框架来全面掌握整个系统的健康程度及其表现趋势[^4]。 #### 输出选项调整 最后一步通常是决定数据转发的目的地。尽管支持多种形式的目标地址,但在实际应用中最常选用 Elasticsearch 和 Logstash 组合模式作为接收端点[^5]。假设计划采用后者完成更复杂的预处理流程,则需确保关闭原始指向 ES 的通道——即删除或注释掉相关字段条目(如 `output.elasticsearch:` 下面的内容)。 --- ### 示例代码片段 这里给出一段简化版的 YAML 设置样例供参考: ```yaml filebeat.inputs: - type: log paths: - "/var/log/*.log" processors: - add_host_metadata: ~ - add_cloud_metadata: ~ output.logstash: hosts: ["localhost:5044"] ``` 以上脚本指定了一个基于本地磁盘路径的日志采集入口,并且明确了后续传输给邻近机器上监听于特定端口的服务进程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值