filebeat安装使用

Filebeat安装使用

一、安装

# 下载软件包
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.2-linux-x86_64.tar.gz

#解压
tar xf filebeat-7.13.2-linux-x86_64.tar.gz -C /mnt
mv filebeat-7.13.2-linux-x86_64 filebeat

# 做软连接
sudo ln -s /mnt/filebeat /usr/local/filebeat

1、编写配置文件

1.配置文件含义

filebeat.inputs:  # 日志来源设置
- type: log
  enabled: true  # 是否收集此路径下面日志的开关
#为日志类型打标签
#  tags: "nginx_log"
  paths:
    - /var/log/*.log

filebeat.config.modules:  # 内置收集日志模块配置文件的存放路径
  path: ${path.config}/modules.d/*.yml

  reload.enabled: false  # 配置文件有更改时是否自动加载

setup.template.settings:
  index.number_of_shards: 1

output.console: #输出到屏幕
  pretty: true

#setup.kibana:
#output.elasticsearch:
#  hosts: ["localhost:9200"]
processors:
  - add_host_metadata:  #添加主机数据信息
      when.not.contains.tags: forwarded

2.启动filebeat测试

sudo /usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml

输出信息

{
  "@timestamp": "2022-04-19T13:01:05.333Z",
  "@metadata": {
    "beat": "filebeat",
    "type": "_doc",
    "version": "7.13.2"
  },
  "log": {
    "file": {
      "path": "/tmp/access.log"
    },
    "offset": 602
  },
  "message": "111.172.170.33 - - [22/Nov/2015:12:01:01 +0800] \"GET /online/api/mc/order/detail.json?orderId=3507685 HTTP/1.1\" 200 6311 \"http://www.oldboyedu.com.cn/online/ppjonline/account/account.jsp\" \"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36\"",
  "input": {
    "type": "log"
  },
  "ecs": {
    "version": "1.8.0"
  },
  "host": {
    "id": "926b4085550e4fdbafce2eca8190679f",
    "containerized": false,
    "ip": [
      "10.0.0.11",
      "fe80::20c:29ff:fe13:612"
    ],
    "mac": [
      "00:0c:29:13:06:12"
    ],
    "hostname": "filebeat",
    "architecture": "x86_64",
    "name": "filebeat",
    "os": {
      "version": "18.04.6 LTS (Bionic Beaver)",
      "family": "debian",
      "name": "Ubuntu",
      "kernel": "4.15.0-175-generic",
      "codename": "bionic",
      "type": "linux",
      "platform": "ubuntu"
    }
  },
  "agent": {
    "type": "filebeat",
    "version": "7.13.2",
    "hostname": "filebeat",
    "ephemeral_id": "54ab1d1b-12e4-4c3f-93c8-fc64350e310f",
    "id": "7bf9fc6b-483d-46f7-9303-8cb602580db4",
    "name": "filebeat"
  }
}

filebeat找不到配置文件时可以指定配置文件

./filebeat -c /usrlocal/filebeat/filebeat.yml

-e 将启动信息输出到屏幕上

filebeat进程日志

filebeat本身运行的日志默认位置${install_path}/logs/filebeat

要修改filebeat的日子路径,可以添加一下内容在filebeat.yml配置文件

#logging.level :debug 日志级别
path.logs: /var/log/

2、专用日志收集模块

查看可用的模块列表

$ sudo ./filebeat modules list
Enabled:

Disabled:
activemq
apache
auditd
aws
awsfargate
azure
barracuda
bluecoat
cef
checkpoint
cisco
coredns
crowdstrike
cyberark
cyberarkpas
cylance
elasticsearch
envoyproxy
f5
fortinet
gcp
google_workspace
googlecloud
gsuite
haproxy
ibmmq
icinga
iis
imperva
infoblox
iptables
juniper
kafka
kibana
logstash
microsoft
misp
mongodb
mssql
mysql
mysqlenterprise
nats
netflow
netscout
nginx
o365
okta
oracle
osquery
panw
pensando
postgresql
proofpoint
rabbitmq
radware
redis
santa
snort
snyk
sonicwall
sophos
squid
suricata
system
threatintel
tomcat
traefik
zeek
zoom
zscaler

模块配置文件保存位置

${install_path}/filebeat/modules.d/

ubuntu@filebeat:/usr/local/filebeat/modules.d$ ls
activemq.yml.disabled       f5.yml.disabled                misp.yml.disabled             radware.yml.disabled
apache.yml.disabled         fortinet.yml.disabled          mongodb.yml.disabled          redis.yml.disabled
auditd.yml.disabled         gcp.yml.disabled               mssql.yml.disabled            santa.yml.disabled
awsfargate.yml.disabled     googlecloud.yml.disabled       mysqlenterprise.yml.disabled  snort.yml.disabled
aws.yml.disabled            google_workspace.yml.disabled  mysql.yml.disabled            snyk.yml.disabled
azure.yml.disabled          gsuite.yml.disabled            nats.yml.disabled             sonicwall.yml.disabled
barracuda.yml.disabled      haproxy.yml.disabled           netflow.yml.disabled          sophos.yml.disabled
bluecoat.yml.disabled       ibmmq.yml.disabled             netscout.yml.disabled         squid.yml.disabled
cef.yml.disabled            icinga.yml.disabled            nginx.yml.disabled            suricata.yml.disabled
checkpoint.yml.disabled     iis.yml.disabled               o365.yml.disabled             system.yml.disabled
cisco.yml.disabled          imperva.yml.disabled           okta.yml.disabled             threatintel.yml.disabled
coredns.yml.disabled        infoblox.yml.disabled          oracle.yml.disabled           tomcat.yml.disabled
crowdstrike.yml.disabled    iptables.yml.disabled          osquery.yml.disabled          traefik.yml.disabled
cyberarkpas.yml.disabled    juniper.yml.disabled           panw.yml.disabled             zeek.yml.disabled
cyberark.yml.disabled       kafka.yml.disabled             pensando.yml.disabled         zoom.yml.disabled
cylance.yml.disabled        kibana.yml.disabled            postgresql.yml.disabled       zscaler.yml.disabled
elasticsearch.yml.disabled  logstash.yml.disabled          proofpoint.yml.disabled
envoyproxy.yml.disabled     microsoft.yml.disabled         rabbitmq.yml.disabled

3、示例模块nginx模块

启动nginx模块

sudo ./filebeat modules enable nginx

1.使用模板默认路径

- module: nginx
  access:
    enabled: true
  error:
    enabled: true
  ingress_controller:
    enabled: false

nginx模块配置收集日志的默认路径是

CentOS

  • /var/log/access.log*
  • /var/log/error.log*

Ubuntu

  • /var/log/nginx/access.log*
  • /var/log/nginx/error.log*

测试


2.nginx日志不在默认存储路径下时

var.paths:
  - /data/nginx_log/access.log*
  - /data/nginx_log/error.log*

如果不设置此项,filebeat将根据你的操作系统选择使用默认路径

注意:此种方式十一追加的方式和模块默认路径合并在一起的,也就是说使用了此种方式,nginx模块还是回去默认路径下查找。

3.配置ouput

filebeat是用于搜集日志,之后把日志推送到某个接受的系统中,这些系统或者装置在filebeat中称为output。

output类型

  • console终端屏幕
  • elasticsearch存放日志,并提供查询
  • logstash进一步对日志数据进行处理
  • kafia消息队列

完整的output列表在filebeat官方文档

filebeat在运行的时候,以上的output只可配置其中一种

输出到console

输出完整的json数据

output.console:
  pretty: true

前台运行filebeat

sudo ./filebeat

如果只想输出完整json数据中的某些字段

output.console:
  codec.format:
    string: '%{[@timestamp]} %{[message]}'

其他输出目标:

输出到elasticsearch

output.elasticsearch:
  hosts: ["http://es01:9200',"http://es02:9200"]

输出到 logstash

output.logstash :
  hosts: ["127.0.0.1:5044"]

4、重读日志文件

有时候处于实验目的,可能需要重新读取日志文件,这个时候需要删除安装目录下的 data文件夹,重新运行filebeat即可。
[图片上传失败...(image-c04404-1650615591430)]

报错

假如出现如下报错,请删制除安装目录中的data文件夹

Exiting: data path already locked by another beat.Please make sure that multiple beats are notsharing the same data path (paty.data).

查看一下是否有一个进程已经处于运行状态,尝试杀死此进程,之后重新运行filebeat

5、使用Processors(处理器)过滤和增强数据(扩展部分)

可以在配置中定义处理器,以便在事件发送到配置的输出之前对其进行处理。libbeat库提供以下处理器∶

  • 减少导出字段的数量

  • 使用其他元数据增强事件

  • 执行其他处理和解码

工作方式

每个处理器都接收一个事件,对该事件应用已定义的操作,然后返回该事件。如果定义

处理器列表,则将按照在Filebeat配置文件中定义的顺序执行它们。

去重日志中的某些行

配置位置在filebeat.yml文件中

删除所有以 DBG:开头的行

processors:

  - drop_event:
    when:
      regexp:
        message: "^DBG:"  #message为自定义字段

像输出的信息中添加某些自定义字段

processors:
  - add_fields:
    target: project #要添加的自定义字段key名称
    fields:
      name: myproject
      id: "574734885120952459"

从事件中删除某些字段

processors:
  - drop_fields :
  fields: ["field1", "field2",...]
  ignore_missing: false

以上配置,将删除字段: field1field2

ignore_missing 的值为 false表示,字段名不存在则会返回错误。为true不会返回错误。

注意: 事件中的"@timestamptype字段是无法删除的。

下面的配置示例是删除顶级字段input和顶级字段ecs中的version字段。

- drop_fields:
  fields: ["input", "ecs.version"]

你可能感兴趣的:(filebeat安装使用)