ELK安装、部署、调试(五)filebeat的安装与配置

news/2024/10/25 7:25:28/

1.介绍

logstash 也可以收集日志,但是数据量大时太消耗系统新能。而filebeat是轻量级的,占用系统资源极少。

Filebeat 由两个主要组件组成:harvester 和 prospector。

采集器 harvester 的主要职责是读取单个文件的内容。读取每个文件,并将内容发送到 the output。 每个文件启动一个 harvester,harvester 负责打开和关闭文件,这意味着在运行时文件描述符保持打开状态。如果文件在读取时被删除或重命名,Filebeat 将继续读取文件。

查找器 prospector 的主要职责是管理 harvester 并找到所有要读取的文件来源。如果输入类型为日志,则查找器将查找路径匹配的所有文件,并为每个文件启动一个 harvester。每个 prospector 都在自己的 Go 协程中运行。

2.下载

下载地址:www.elastic.co/downloads/beats/filebeat

百度云elk

3.安装

tar -zxvf filebeat-7.9.3-linux-x86_64.tar.gz -C /usr/local
cd /usr/local/
mv filebeat-7.9.3-linux-x86_64 filebeat
cd filebeat/
[root@node1 filebeat]# ls -l
fields.yml     filebeat      filebeat.reference.yml         filebeat.yml         kibana
LICENSE.txt        module         modules.d      NOTICE.txt         README.md

filebeat为应用程序
cd /usr/local/filebeat/filebeat.yml 是配置文件
modules.d的目录下放置的日志收集模板,实现了模块化的日志收集

[root@node1 modules.d]# ls
activemq.yml.disabled    coredns.yml.disabled        ibmmq.yml.disabled     microsoft.yml.disabled 
okta.yml.disabled        squid.yml.disabled    apache.yml.disabled      crowdstrike.yml.disabled    icinga.yml.disabled    misp.yml.disabled       osquery.yml.disabled     suricata.yml.disabled
auditd.yml.disabled      cylance.yml.disabled        iis.yml.disabled       mongodb.yml.disabled    
panw.yml.disabled        system.yml.disabled   aws.yml.disabled         elasticsearch.yml.disabled  imperva.yml.disabled   mssql.yml.disabled      postgresql.yml.disabled  tomcat.yml.disabled
azure.yml.disabled       envoyproxy.yml.disabled     infoblox.yml.disabled  mysql.yml.disabled      
rabbitmq.yml.disabled    traefik.yml.disabled   barracuda.yml.disabled   f5.yml.disabled             iptables.yml.disabled  nats.yml.disabled        radware.yml.disabled     zeek.yml.disabled
bluecoat.yml.disabled    fortinet.yml.disabled       juniper.yml.disabled   netflow.yml.disabled    
redis.yml.disabled       zscaler.yml.disabled   cef.yml.disabled         googlecloud.yml.disabled    kafka.yml.disabled     netscout.yml.disabled     santa.yml.disabled
checkpoint.yml.disabled  gsuite.yml.disabled         kibana.yml.disabled    nginx.yml.disabled      
sonicwall.yml.disabled  cisco.yml.disabled       haproxy.yml.disabled        logstash.yml.disabled  o365.yml.disabled      
sophos.yml.disabled

4.配置

配置filebeat.yml
注意 以下使用“-” 为首字母的,要求前面不能使用tab做缩进,

filebeat.inputs:                      #定义日志输入的开始
- type: log        #注意格式,收集日志类型为日志,还可以是redis,UDP,TCP,docker,syslog,stdin等enabled: true                       #使用手动模式,如果false将使用modules.d目录下的模块方式paths:                              #要收集的日志的路径- /var/log/messages- /var/log/secure#如果日志较多,可以模糊的填写,如 - /data/nginx/logs/ngix_*.log# - /var/log/*.log 的配置会获取/var/log下所有子目录中以.log结尾的日志,而不会查找/var/log/目录下的.log文件。fields:log_topic:osmessages              #osmessages是自己定义主体的名字
name: "10.10.10.56"                  #指定名字,不配置时默认使用主机名
output.kafka:eanbled: truehosts: ["10.10.10.71:9092","10.10.10.72:9092","10.10.10.73:9092"]   #kafka集群的地址和端口号version: 2.0.1                     #kafka的版本号topic: '%{[fields][log_topic]}'    #也可以fields.log_topic的写法partition.round_robin:             #采用轮询的方式reachable_only: trueworker: 2required_acks: 1                    #有1,2,3等可写,1最大限度保证compression: gzipmax_message_bytes: 10000000logging.level: debug                 #info,warming,error等可写,定义  日志级别配置里还包含一些过滤条件,如行排除,行包含,文件排除等
exclude_lines: ['^DBG']
include_lines: ['^ERR', '^WARN']
exclude_files: ['.gz$']

以上配置使用了kafka作为filebeat的输出,

配置

# ============================== Filebeat modules ==============================filebeat.config.modules:# Glob pattern for configuration loadingpath: ${path.config}/modules.d/*.yml# Set to true to enable config reloadingreload.enabled: false# Period on which files under path should be checked for changes#reload.period: 10s# ======================= Elasticsearch template setting =======================文档中还有一些模块的配置,如上
由于我们在
filebeat.inputs: 
- type: log        enabled: true      这里我们设置为了true,使用了手动配置的方式,屏蔽了快速模块,这里配置为false时,才使用模块配
置


使用./filebeat test config 或者./filebeat -c filebeat.yml -configtest 对配置文件进行格式测试。检查启动filebeat

more filebeat.ymlnohup /usr/local/filebeat/filebeat -e -c /usr/local/filebeat/filebeat.yml &

测试
tail -f nohup.out 查看收集的日志

"@timestamp": "2023-08-28T07:56:14.266Z",  时间戳"@metadata": {"beat": "filebeat",                       "type": "_doc","version": "7.9.3"},"log": {                                   类型"file": {"path": "/var/log/secure"},"offset": 508431                         位置,偏移量},"message": "Aug 28 15:56:12 node1 sshd[31513]: pam_limits(sshd:session): invalid line 'End of file' -
skipped","fields": {                                 自定义的域"log_topic": "osmessages"},"input": {                                  类型"type": "log"},"agent": {"id": "a5a5cdf5-42f5-40a8-8c4c-068b76a2b22c","name": "10.10.10.56","type": "filebeat","version": "7.9.3","hostname": "node1","ephemeral_id": "826d8757-65f0-4838-b915-409eba0cd6bf"},"ecs": {"version": "1.5.0"},"host": {"name": "10.10.10.56"}
}

我们看到,很多信息都是filebeat附带的一些信息。    我们可以通过配置参数的过滤掉一些信息。

# ================================= Processors =================================
processors:
#  - add_host_metadata:
#      when.not.contains.tags: forwarded
#  - add_cloud_metadata: ~
#  - add_docker_metadata: ~
#  - add_kubernetes_metadata: ~- drop_fields:fields: ["host","input","offset","ecs","log","agent.id"]

drop_fields:所定义的就是不需要在日志中显示的filebeat自带的一些信息。
上面的配置信息agent.id ,因为agent下有很多个属性,仅过滤掉id这个属性

 "agent": {"id": "a5a5cdf5-42f5-40a8-8c4c-068b76a2b22c","name": "10.10.10.56","type": "filebeat","version": "7.9.3","hostname": "node1","ephemeral_id": 

这样配置后,将在日志文件中过滤掉 以上属性的内容,仅显示留下的内容。


通过tail -f nohup.out查看本机产生的日志
通过在kafka机器上用过消费来开传到kafka上的日志
cd /usr/local/kafka/bin
./kafka-console-consumer.sh  --bootstrap-server 10.10.10.71:9092,10.10.10.72:9092,10.10.10.73:9092 --topic
osmessages
 


http://www.ppmy.cn/news/1076028.html

相关文章

利用条件竞争突破优惠券仅能使用一次逻辑限制

Portswigger练兵场之条件竞争 目录 Portswigger练兵场之条件竞争🦄条件竞争-突破一次逻辑限制🚀实验前置必要知识点🏆实验要求⚡️渗透开始1. 站点分析2. 登录3.日志探查4.功能点探究5.完成实验 修复方案 🦄条件竞争-突破一次逻辑…

Android 热修复核心原理

dexopt 在Dalvik中虚拟机在加载一个dex文件时,对 dex 文件 进行 验证 和 优化的操作,其对 dex 文件的优化结果变成了 odex(Optimized dex) 文件,这个文件和 dex 文件很像,只是使用了一些优化操作码。 dex2oat ART 预先编译机制&a…

Vue3 ElementPlus el-cascader级联选择器动态加载数据

参考了这位的大佬的写法 element el-cascader动态加载数据 &#xff08;多级联动&#xff0c;落地实现&#xff09;_el-cascader 动态加载_林邵晨的博客-CSDN博客 <el-cascader style"width: 300px" :props"address" v-model"addressValue" …

xxl-job快速使用

目录 官方文档 具体操作一下 为什么从github上拉取项目后这些包的颜色都没有变呢?

vue训练场练习props和$emit,实现大写输入,小写输出。

场景&#xff1a; 在vue官网训练场&#xff0c;使用训练场中的组件。 仅作为练习笔记&#xff0c;仅供产考。 App.vue 组件代码 方式一&#xff1a;Watch监听 方式二&#xff1a;input绑定

ABB PCD231B101励磁控制模块

电磁励磁控制&#xff1a; PCD231B101 模块专门设计用于电磁励磁设备的控制&#xff0c;以确保发电机的励磁电流和电压维持在合适的水平。 多通道控制&#xff1a; 这种模块通常具有多个控制通道&#xff0c;可用于同时监测和控制多台电力发电机。 通讯接口&#xff1a; PCD2…

python注释

任何编程语言都少不了注释&#xff0c;Python也不例外&#xff0c;以下是Python注释的具体用法&#xff1a; 单行注释 Python编程语言的单行注释常以#开头&#xff0c;单行注释可以作为单独的一行放在被注释代码行之上&#xff0c;也可以放在语句或者表达式之后。 实例&…

java并发编程 AbstractQueuedSynchronizer(AQS)详解二

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示&#xff1a;这里可以添加技术概要 例如&#xff1a; openAI 的 GPT 大模型的发展历程。 整体架构流程 提示&#xff1a;这里可以添加技术整体架构 例如&#xff1a; 在语言模型中&#xff0c;编码器和解码器都…