文章目录

1.EFK介绍

2.操作前提

3.FileBeat8.15下载&安装

4.编写FileBeat配置文件

5.启动FileBeat

6.模拟实时日志数据生成

7.查看索引(数据流)是否创建成功

8.创建数据视图:

9.查看数据视图

10.使用KQL对采集的日志内容进行过滤

11.给日志数据配置保留天数(扩展知识)

1.EFK介绍

Kibana参考官方文档:https://www.elastic.co/guide/en/beats/filebeat/8.15/filebeat-overview.html

2.操作前提

需要提前安装Elasticsearch+Kibana。安装过程见我上一个文章:elasticsearch8.15 高可用集群搭建(含认证&Kibana)

3.FileBeat8.15下载&安装

软件下载地址:https://www.elastic.co/downloads/past-releases/filebeat-8-15-0 下载文件后上传至服务器

# 创建目录

mkdir -p /opt/software/

#解压至特定目录

tar -zxvf filebeat-8.15.0-linux-x86_64.tar.gz -C /opt/software/

#切到filebeat安装目录

cd /opt/software/filebeat-8.15.0-linux-x86_64

4.编写FileBeat配置文件

注:FileBeat配置文在FileBeat安装目录下的filebeat.yml。我这里是重新创建一个配置文件,启动FileBeat时指定我自己创建的配置文件。你可以看情况来。

# 创建配置目录

mkdir config

# filebeat_2_es.yml默认是不存在的,编辑保持后,该文件会自动创建

vim config/filebeat_2_es.yml

filebeat_2_es.yml配置文件完整内容如下:

filebeat.inputs: #数据输入相关配置

- type: filestream # (必填)数据输入类型是filestream

id: nginx-access-log-1 # (必填)全局唯一即可

enabled: true # 启动

paths:

- /tmp/logs/nginx_access.log* # 当前要监听的文件, *是通配符任意。例如nginx.access.log.1 的文件内容也会被监听到。

tags: ["nginx-access-log"] # (可选)这里定义用户自定义值。用于下文的索引条件选择 以及 后续kibana上也可以用该标签做数据过滤

fields:

my_server_ip: 192.168.25.31 # (可选)这里定义用户自定义属性,后面会出现在采集数据中

fields_under_root: true # (可选)让上面Field里面定义的属性出现在采集数据的最外层,而不是嵌套在采集数据的filed字段里面。

#exclude_lines: ['^DBG'] # (可选)当前数据行如果以DBG开头,则当前数据行不会被采集

#include_lines: ['^ERR', '^WARN'] # (可选)当前数据行以“ERR”或“WAR”开头,采可能会被采集

- type: filestream

id: nginx-error-log-1

enabled: true

paths:

- /tmp/logs/nginx_error.log*

tags: ["nginx-error-log"]

fields:

my_server_ip: 192.168.25.31

fields_under_root: true

#exclude_lines: ['^DBG'] #要求当前数据行必须不能以DBG开头

include_lines: ['\[error\]'] #要求当前数据行必须以“ERR”或“WAR”开头

- type: filestream

id: elasticsearch-log-1

enabled: true

paths:

- /tmp/logs/elasticsearch.log*

tags: ["elasticsearch-log"]

fields:

my_server_ip: 192.168.25.31

fields_under_root: true

parsers:

- multiline: #多行匹配。例如 java异常日志,一般一个异常会占用多行,此时需要把一个异常下的多行日志合成一行日志。参考:https://www.elastic.co/guide/en/beats/filebeat/8.15/multiline-examples.html

type: pattern

pattern: '^\[' # 匹配模式。每一行日志是以 "["开头。

negate: true # 这个可以固定,参考:https://www.elastic.co/guide/en/beats/filebeat/8.15/multiline-examples.html

match: after # 这个可以固定,参考:https://www.elastic.co/guide/en/beats/filebeat/8.15/multiline-examples.html

#output.c