freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

开源日志分析系统建设(四)
2018-07-29 17:38:28

一、Filebeat介绍

Filebeat是一个轻量级的日志数据收集工具,作为一个客户端代理安装在服务器上并监控指定的日志目录或日志文件,读取追踪这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstash中。

二、工作流程

当开启filebeat程序的时候,它会启动一个或多个探测器(prospectors)去检测你指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程(harvester),每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到你指定的地点。

image.pngFilebeat是基于libbeat框架设计的。

三、Filebeat入门

开始配置使用filebeat之前,你需要安装并配置好这些依赖程序:

Elasticsearch 作为存储和索引这些数据。

Kibana 作为展示平台。

Logstash(可选)去插入数据到elasticsearch。

3.1 安装Filebeat

请选择你系统中的下载安装命令来下载安装filebeat。

(deb for Debian/Ubuntu, rpm for Redhat/Centos/Fedora, mac for OS X, and win for Windows).

deb:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.1-amd64.deb

sudo dpkg -i filebeat-6.3.1-amd64.deb

rpm:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.1-x86_64.rpm

sudo rpm -vi filebeat-6.3.1-x86_64.rpm

mac:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.1-darwin-x86_64.tar.gz

tar xzvf filebeat-6.3.1-darwin-x86_64.tar.gz

docker:

docker pull docker.elastic.co/beats/filebeat:6.3.1

win:

1. Download the Filebeat Windows zip file from the downloads page.(下载安装包)

2. Extract the contents of the zip file into C:\Program Files.(解压缩文件)

3. Rename the filebeat-<version>-windows directory to Filebeat.(重命名文件夹为Filebeat)

4. Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select Run As Administrator).(以管理员身份运行PowerShell)

5. From the PowerShell prompt, run the following commands to install Filebeat as a Windows service:(在PowerShell模式下运行下面命令)

PS > cd 'C:\Program Files\Filebeat'

PS C:\Program Files\Filebeat> .\install-service-filebeat.ps1

注意:如果在系统上无法执行脚本,你需要设置安全策略允许当前脚本运行,例如:

PowerShell.exe  -ExecutionPolicy  UnRestricted  -File  .\install-service-filebeat.ps1.

3.2 配置Filebeat

配置文件各个字段含义:https://www.elastic.co/guide/en/beats/libbeat/6.3/config-file-format.html

各个操作系统下默认配置文件路径不一致。

rpm、deb: /etc/filebeat/filebeat.yml

docker:/usr/share/filebeat/filebeat.yml.

mac、win:在解压缩的文件夹下面有一个配置文件名叫做filebeat.reference.yml

下面有一个简单的配置文件样例:

filebeat.inputs:

- type: log

  enabled: true

  paths:

    - /var/log/*.log

    #- c:\programdata\elasticsearch\logs\*

上面文件表示filebeat采集数据源来自于/var/log/目录下的所有log文件。下面详细介绍filebeat.yml常用配置:

1)定义日志文件路径

filebeat.inputs:

- type: log

  enabled: true

  paths:

    - /var/log/*.log

2)输出给elsticsearch(不输出给logstash)(建议输出给logstash)

output.elasticsearch:

  hosts: ["192.168.1.42:9200"]

3)如果打算用kibana来展示filebeat数据,需要配置为kibana终端

setup.kibana:

  host: "localhost:5601"

4)如果elasticsearch和kibana增加了安全配置,你需要在配置文件中指定认证信息,举例如下:

output.elasticsearch:

  hosts: ["myEShost:9200"]

  username: "filebeat_internal"

  password: "{pwd}" 

setup.kibana:

  host: "mykibanahost:5601"

  username: "my_kibana_user" 

    password: "{pwd}"

5)配置输出给logstash

#----------------------------- Logstash output --------------------------------

output.logstash:

  hosts: ["127.0.0.1:5044"]

四、效果展示

这里我选择将数据传送给kibana,即配置kibana的地址和端口后,切到kibana页面,创建索引的过程中,我们就能够看到有从filebeat端传输过来的数据。配置完索引回到discover页面,就能看到filebeat传送的所有日志信息。

image.png五、总结

案例展示是将filebeat采集的数据直接传送给kibana和elasticsearch,是为了演示效果,在实际运用过程中建议还是配置传送到logstash或者其他如kafka这样的消息系统,便于数据的处理。

Filebeat只是Beat集中的一个子控件,还有其他类似metricbeat控件,不同控件采集的信息不一样,但是基本配置都差不太多,后续还会有文章继续介绍,敬请期待。

附:

这些系列文章内容深度不够,只是为了更好的做一个入门系列,内容深度会随着文章的增多慢慢增加,请多些耐心。当然如果大家的水平远超于此,还请多多提供意见,以便更好的输出更有价值、可读性更强的文章,谢谢。

# 日志分析 # filebeat
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者