Filebeat组件

1.Filebeat

filebeat提供一种轻量型方法,用于转发和汇总日志与文件,让简单的事情不再繁杂。
简单来讲,filebeat的核心就是采集日志并将日志发送到我们期望的目的端。本质核心就是input(数据从哪来)和output(数据到哪去)。
image

1.2 filebeat采集日志方案

filebeat采集多个数据源有两种常见的解决方案,一是配置多个input,二是使用filebeat多实例
1.多个input放在同一个filebeat优缺点:
优点:部署方便,启动一个实例即可。
缺点:当多个input中有任意一个需要修改时,在重启期间,其他的input都会受到影响。当配置多时,多个input配置比较繁琐;
2.filebeat多实例优缺点:
优点:当一个实例挂掉,不会影响到其他实例;配置简单
缺点:部署不方便,要同时部署多个filebeat,且数据目录需要单独指定维护;

1.3 filebeat的多行处理的类型

1. count:将几行数据作为一个事件。
2. pattern:基于正则匹配事件。 对于log类型的多行匹配和json解析公共时可能会存在问题。
3. filestream:多行匹配和json解析可以共同使用

2.安装部署filebeat

[root@web01 ~]# dpkg -i filebeat-7.17.23-amd64.deb

3.filebeat采集nginx日志

3.1filebeat的模块启用和禁用原理

模块是filebeat内置的一些中间件日志监控方案,比如常见的nginx,tomcat,mysql,zookeeper等日志监控。

1)查看模块列表

[root@web01 ~]# filebeat modules list
Enabled:

Disabled:
activemq
apache
auditd
...

2)启用模块

[root@web01 ~]# filebeat modules enable nginx tomcat
Enabled nginx
Enabled tomcat
[root@web01 ~]# 
[root@web01 ~]# filebeat modules list
Enabled:
nginx
tomcat

Disabled:
activemq
apache
auditd
...
[root@web01 ~]#
[root@web01 ~]# ll /etc/filebeat/modules.d/*.yml
-rw-r--r-- 1 root root 784 Jul 25 13:41 /etc/filebeat/modules.d/nginx.yml
-rw-r--r-- 1 root root 623 Jul 25 13:41 /etc/filebeat/modules.d/tomcat.yml
[root@web01 ~]# 

3)禁用模块

[root@web01 ~]# filebeat modules disable tomcat
Disabled tomcat
[root@web01 ~]# 
[root@web01 ~]# filebeat modules list
Enabled:
nginx

Disabled:
activemq
apache
...
[root@web01 ~]#
[root@web01 ~]# ll /etc/filebeat/modules.d/*.yml
-rw-r--r-- 1 root root 784 Jul 25 13:41 /etc/filebeat/modules.d/nginx.yml
[root@web01 ~]# 

3.2 filebeat通过模块采集nginx

1)检查nginx模块是否启用

[root@we01 ~]# filebeat modules list | head -5
Enabled:
nginx

Disabled:
activemq

[root@web01 ~]#

2)访问nginx测试

  1. 浏览器不同类型设备访问nginx http://10.0.0.61:80
  2. 更改日志的IP地址为公网ip(ip可随意更改)

3)查看nginx日志

[root@web01 ~]# cat /var/log/nginx/access.log 
123.112.20.87 - - [28/Aug/2024:07:43:53 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.81.0"
123.112.20.87 - - [28/Aug/2024:07:43:53 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.81.0"
123.112.20.11 - - [28/Aug/2024:07:47:36 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36"
123.112.20.11 - - [28/Aug/2024:07:48:24 +0000] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15"
123.112.20.11 - - [28/Aug/2024:07:48:35 +0000] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15"
123.112.20.11 - - [28/Aug/2024:07:48:35 +0000] "GET /favicon.ico HTTP/1.1" 404 134 "http://10.0.0.91/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15"
123.112.20.11 - - [28/Aug/2024:07:48:54 +0000] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1"
123.112.20.22 - - [28/Aug/2024:07:48:54 +0000] "GET /favicon.ico HTTP/1.1" 404 134 "http://10.0.0.91/" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1"
123.112.20.22 - - [28/Aug/2024:07:49:02 +0000] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1"

4)修改filebeat配置文件采集nginx日志

[root@web01 ~]# cat /etc/filebeat/nginx-modules-es.yaml 
# 配置filebeat的启用模块
filebeat.config.modules:
  # 默认会去找filebeat安装目录下的"modules.d"所有以".yml"结尾的文件
  path: ${path.config}/modules.d/*.yml
  # 是否支持热加载
  reload.enabled: true


output:
  elasticsearch:
    hosts: 
    - "http://10.0.0.71:9200"
    - "http://10.0.0.72:9200"
    - "http://10.0.0.73:9200"
    index: "nolen-modules-%{+yyyy.MM.dd}"

setup.ilm.enabled: false
setup.template.name: "nolen-modules"
setup.template.pattern: "nolen-modules*"
setup.template.overwrite: false
setup.template.settings:
  index.number_of_shards: 5
  index.number_of_replicas: 0

5)启动filebea实例采集nginx日志

[root@web01 ~]# filebeat -e -c /etc/filebeat/nginx-modules-es.yaml

posted @ 2024-10-23 19:12  Nolen_H  阅读(80)  评论(0)    收藏  举报