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

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.hqwc.cn/news/91482.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+Vue的旅游系统

摘 要 随着旅游业的发展,越来越多的人选择旅游作为自己的出行方式。在旅游规划过程中,旅游景点选择是至关重要的环节。本文提出了一种基于协同过滤推荐算法的旅游平台系统。该系统采用前后端分离的设计,主要使用了SpringBoot、Vue等技术&…

YOLO目标检测——人脸性别识别数据集下载分享

人脸性别识别数据集共同2300图片。在社交媒体分析、广告定向投放、零售业、安防系统以及健康和医疗领域等多个领域都具有广泛的应用潜力。通过准确识别人脸的性别,可以为这些领域提供更精准的数据分析和个性化的服务。 数据集点击下载:YOLO人脸性别识别数…

QT下使用ffmpeg+SDL实现音视频播放器,支持录像截图功能,提供源码分享与下载

前言: SDL是音视频播放和渲染的一个开源库,主要利用它进行视频渲染和音频播放。 SDL库下载路径:https://github.com/libsdl-org/SDL/releases/tag/release-2.26.3,我使用的是2.26.3版本,大家可以自行选择该版本或其他版…

机器人编程怎么入门?

机器人已经在我们中间存在了二三十年。如今,机器人在我们的文化中比以往任何时候都更加根深蒂固。大多数机器人机器用于各种装配线,或在世界各地的矿山或工业设施中执行密集的物理操作。 还有一些家用机器人,工程师正在对机器人进行编程&…

【【萌新的STM32学习25--- USART寄存器的介绍】】

萌新的STM32学习25- USART寄存器的介绍 STM32–USART寄存器介绍(F1) 控制寄存器1 (CR1) 位13: 使能USART UE 0: USART分频器和输出被禁止 1: USART模块使能 位12 : 配置8个数据位…

代码随想录算法训练营之JAVA|第四十一天|139. 单词拆分

今天是第 天刷leetcode,立个flag,打卡60天。 算法挑战链接 139. 单词拆分https://leetcode.cn/problems/word-break/ 第一想法 看完之后完全没有想法。 看完代码随想录之后的想法 这是一个完全背包的问题,使用完全背包的解法。 单词就…

Java 16进制字符串转换成GBK字符串

问题: 现在已知有一个16进制字符串 435550D3C3D3DAD4DABDBBD2D7CFECD3A6CFFBCFA2D6D0B4E6B7C5D5DBBFDBD0C5CFA2A3ACD5DBBFDBBDF0B6EE3130302E3036 而且知道这串的字符串对应的内容是: CUP用于在交易响应消息中存放折扣信息,折扣金额100.06 但…

三、mycat分库分表

第五章 分库分表 一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业 务将表进行分类,分布到不同 的数据库上面,这样也就将数据或者说压力分担到不同 的库上面,如下图: 系统被切分成了&…

FFI绕过disable_functions

文章目录 FFI绕过disable_functions[RCTF 2019]NextphpPHP7.4 FFI参考 FFI绕过disable_functions [RCTF 2019]Nextphp 首先来看这道题目 index.php <?php if (isset($_GET[a])) {eval($_GET[a]); } else {show_source(__FILE__); }查看一下phpinfo 发现过滤了很多函数&…

Jmeter(三十一):制造大批量的用户数据数据

需求&#xff1a;因测试需要&#xff0c;要造100w用户数据&#xff0c;通过用户名、手机号、密码可新增用户&#xff0c;其中用户名和电话号码要求100w用户不能重复 要点&#xff1a; 1、通过Bean shell Sampler实现用户名和手机号的足够随机。 符合我们常用规则的手机号&#…

【算法系列篇】位运算

文章目录 前言什么是位运算算法1.判断字符是否唯一1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 丢失的数字2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 两数之和3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 只出现一次的数字4.1 题目要求4.2 做题思路4.3 Java代码实现 5.…

目标检测笔记(十二):如何通过界面化操作YOLOv5完成数据集的自动标注

文章目录 一、意义二、修改源码获取三、自动标注前期准备四、开始自动标注五、可视化标注效果六、XML转换TXT 一、意义 通过界面化操作YOLOv5完成数据集的自动标注的意义在于简化数据标注的流程&#xff0c;提高标注的效率和准确性。 传统的数据集标注通常需要手动绘制边界框…