首页 > 技术文章 > filebeat安装与基础用法

toSeek 2016-11-28 16:00 原文

来自官网,版本为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"
},

 

推荐阅读