filebeat安装与基础用法

时间:2023-01-06 09:06:56

来自官网,版本为1.2

下载rpm包并安装

wget -c https://download.elastic.co/beats/filebeat/filebeat-1.2.3-x86_64.rpm
rpm -ivh filebeat-1.2.3-x86_64.rpm

配置文件位于/etc/filebeat/

默认filebeat的日志是to_syslog,就是/var/log/message,而且是error级别以上才打印,最好改一下

vi /etc/filebeat/filebeat.yml(Logging段,一般在文件末尾,配置项都是存在的,取消注释后修改下即可)

logging:
to_syslog: false
to_files: true
files:
rotateeverybytes: 10485760 # 默认的10MB
level: info

修改后,日志文件将位于/var/log/filebeat/

另外要说的是,类似logstash,为了防止重复处理日志,filebeat也会记录处理进度到文件/var/lib/filebeat/registry

为了测试可以先停止filebeat,清空文件registry,然后再启动就会重复处理了

下面是简单将文件传到elasticsearch的配置

vi /etc/filebeat/filebeat.yml(配置项都是存在的,取消注释后修改下即可)

filebeat:
prospectors:
paths:
- /data/logs/*.log
encoding: utf-8
input_type: log
output:
elasticsearch:
hosts: ["localhost:9200"]

paths下面可以配置多个路径

下面启动filebeat

/etc/init.d/filebeat

在elasticsearch中可以看到多了一个filebeat-[date]的索引,查一下可以看到直接把每行日志作为一个字符串处理的

所以实际情况下,都是会经过logstash处理后再传给elasticsearch

首先需要让logstash做好接收filebeat数据的准备

vi /etc/logstash/conf.d/filebeat.conf

input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => "localhost"
}
}

重启logstash

vi /etc/filebeat/filebeat.yml

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

重启filebeat(如果配置的还是上面的日志文件,记得清理进度缓存)

然后在elasticsearch中可以看到多了一个logstash-[date]的索引

因为没有在logstash配置filter,所以并没有进行任何解析,logstash-filter相关的就不在这篇谈了。

最后传输到elasticsearch的日志默认会带两个值:

"beat" : {
"hostname" : "localhost.localdomain",
"name" : "localhost.localdomain"
},

hostname当然就是日志来源filebeat所在机器的机器名,name则是可配置的filebeat名称,默认也是获取机器名,可以改为ip,多一个过滤属性

vi /etc/filebeat/filebeat.yml

shipper:
name: 192.168.1.111

这样,传输到logstash的日志就是这样了:

"beat" : {
"hostname" : "localhost.localdomain",
"name" : "192.168.1.111"
},