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"]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容