Filebeat

Filebeat

简介

Filebeat用于转发和集中日志数据的轻量级传送程序。作为服务器上的代理安装,Filebeat监视指定的位置文件或位置,收集日志事件,并将他们转发到Elasticsearch 或Logstash进行索引。

架构图

安装Filebeat

下载并安装

sh 复制代码
wget  https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.0.1-x86_64.rpm
yum install ./filebeat-6.0.1-x86_64.rpm

配置

修改Filebeat配置文件

filebeat.yml

sh 复制代码
vim /etc/filebeat/filebeat.yml                     # 主配置文件
\- type: log                                       # 文档类型
paths:
\- /var/log/httpd/access.log*                     # 从哪里读入数据# 输出在elasticsearch与logstash二选一即可
output.elasticsearch:                           #将数据输出到Elasticsearch。与下面的logstash二者选一
 hosts: ["localhost:9200"]
output.logstash:                               # 将数据传送到logstash,要配置logstash使用beats接收
 hosts: ["172.18.68.14:5044"]

定义输入日志文件路径

sh 复制代码
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log

在这个例子中,获取在/var/log/*.log路径下的所有文件作为输入,这就意味着Filebeat将获取/var/log目录下所有以.log结尾的文件。

为了从预定义的子目录级别下抓取所有文件,可以使用以下模式,:/var/log/*/*.log.这个将抓取/var/log目录下的所有以.log结尾的文件

目前配置了这样的目录结构,那么只会抓取到2.log和 3.log,而不会抓到4.log和1.log

发送到Elasticsearch

如果你发送输出目录到Elasticsearch(并且不用Logstash),那么设置ip地址和端口以便能够找到Elasticsearch

sh 复制代码
output.elasticsearch:
    hosts: ["192.168.1.42:9200"]

如果打算用kibana仪表盘

sh 复制代码
setup.kibana:
      host: "localhost:5601"
sh 复制代码
output.elasticsearch:
      hosts: ["myEShost:9200"]
      username: "filebeat_internal"
      password: "{pwd}" 
setup.kibana:
      host: "mykibanahost:5601"
      username: "my_kibana_user"  
      password: "{pwd}"

配置filebeat以使用Logstash

如果想使用Logstash对filebeat收集的数据进行额外处理,那么你需要将filebeat配置为使用Logstash。

sh 复制代码
output.logstash:
      hosts: ["127.0.0.1:5044"]

完整配置

sh 复制代码
#=========================== Filebeat inputs ==============
filebeat.inputs:

- type: log

  enabled: true

  paths:
    - /var/log/*.log

#============================== Dashboards ===============
setup.dashboards.enabled: false

#============================== Kibana ==================
setup.kibana:
	host: "192.168.101.5:5601"

#-------------------------- Elasticsearch output ---------
output.elasticsearch:
  	hosts: ["localhost:9200"]

启动Filebeat

sh 复制代码
systemctl start filebeat

配置Logstash接收来自FIlebeat采集的数据

sh 复制代码
vim /etc/logstash/conf.d/test.conf
input {
   beats {
           port => 5044                             # 监听5044用于接收Filebeat传来数据
   }
}
filter {
 grok {
match => {
 "message" => "%{COMBINEDAPACHELOG}"                 # 匹配HTTP的日志
}
remove_field => "message"                             # 不显示原信息,仅显示匹配后
 }
}
output {
elasticsearch {
hosts => ["http://172.18.68.11:9200","http://172.18.68.12:9200","http://172.18.68.13:9200"] # 集群IP
index => "logstash-%{+YYYY.MM.dd}"
action => "index"
document_type => "apache_logs"
}
}

启动Logstash

sh 复制代码
 /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

模拟日志访问

通过curl命令来模拟客户访问,生成访问日志

sh 复制代码
curl 127.0.0.1
curl 172.18.68.51
curl 172.18.68.52
curl 172.18.68.53

验证信息

清除之前实验的旧数据(删除时要在对话框中输入删除),然后可以看到filebeat采集数据经过Logtash过滤再送给Elasticsearch的数据。

相关推荐
小坏讲微服务1 天前
五分钟使用 Docker-compose搭建 Redis 8.0 中间件
运维·redis·docker·中间件·容器·kubernetes·k8s
熙客1 天前
RabbitMQ:灵活路由和高可靠的消息队列
java·中间件·rabbitmq·java-rabbitmq
9ilk2 天前
【仿RabbitMQ的发布订阅式消息队列】--- 前置技术
分布式·后端·中间件·rabbitmq
9ilk3 天前
【基于one-loop-per-thread的高并发服务器】--- 项目介绍&&模块划分
运维·服务器·c++·后端·中间件
fyakm3 天前
中间件的前世今生:起源与发展历程
中间件
qqxhb6 天前
系统架构设计师备考第61天——嵌入式系统架构模式&操作系统&数据库&中间件
数据库·中间件·系统架构·sqlite·dds·层次化(封闭/开放)·递归模式
9ilk7 天前
【仿RabbitMQ的发布订阅式消息队列】--- 模块设计与划分
c++·笔记·分布式·后端·中间件·rabbitmq
忧郁的蛋~8 天前
ASP.NET Core中创建中间件的几种方式
后端·中间件·asp.net
risc1234568 天前
【中间件】如何设计主分片
中间件
一只小透明啊啊啊啊8 天前
Java的中间件
java·开发语言·中间件