郑州网站设计价格,装修设计软件排名,阿里巴巴外贸圈,WordPress支持多少文章提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 介绍filebeat是如何工作的 使用部署filebeat 介绍 Filebeat 是一个用于转发和集中日志数据的轻量级传送器。 Filebeat 作为agent安装在服务器上#xff0c;监视指… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 介绍filebeat是如何工作的 使用部署filebeat 介绍 Filebeat 是一个用于转发和集中日志数据的轻量级传送器。 Filebeat 作为agent安装在服务器上监视指定的日志文件或位置收集日志事件并将它们转发到Elasticsearch或 Logstash进行索引。 Filebeat 的工作原理如下当启动 Filebeat 时它会启动一个或多个input查找指定的日志数据位置。对于 Filebeat 找到的每个日志Filebeat 都会启动一个harvester。每个harvester都会读取单个日志以获取新内容并将新日志数据发送到 libbeatlibbeat 会聚合事件并将聚合数据发送到您为 Filebeat 配置的输出。
filebeat是如何工作的
Filebeat 由两个主要组件组成input和harvester。这些组件协同工作来跟踪文件并将事件数据发送到指定的output。
什么是harvester
harvester负责读取单个文件的内容。harvester逐行读取每个文件并将内容发送到输出。 每个文件启动一个harvester。harvester负责打开和关闭文件这意味着harvester运行时文件描述符保持打开状态。
什么是input input负责管理harvester并查找所有可供读取的源。 如果input类型为log则input会查找驱动器上与定义的全局路径匹配的所有文件并为每个文件启动harvester。每个input都在自己的 Go 协程中运行。 以下示例将 Filebeat 配置为从与指定 glob 模式匹配的所有日志文件中收集行
filebeat.inputs:
- type: logpaths:- /var/log/*.log- /var/path2/*.log不同的harvester goroutine采集到的日志数据都会发送至一个全局的队列queue中filebeat默认启用的是基于内存的缓存队列。
每当队列中的数据缓存到一定的大小或者超过了定时的时间默认1s)会被注册的client从队列中消费发送至配置的后端。目前可以设置的client有kafka、elasticsearch、redis等。
使用
部署filebeat 上传压缩包 解压 tar xf filebeat-8.9.0.linux-amd64.tar.gz配置 ## filebeat.yml
# Filebeat input
filebeat.inputs:
- type: containerstream: allpaths: - /data/docker/containers/*/*.logformat: dockerfields:multiline:# 做多行日志聚合此处是针对java的异常堆栈信息聚合所有非年-月-日开头的日志会被聚合到最开始匹配到的那一行展示type: patternpattern: ^\d.\d.\d|^\d.\w{3}.\dnegate: truematch: after processors:- add_docker_metadata: # 添加当前主机的信息包括 os、hostname、ip 等host: unix:///var/run/docker.sock- add_docker_metadata: ~ # 如果存在 Docker 环境则自动添加容器、镜像的信息。默认将 labels 中的点 . 替换成下划线 _# Filebeat modules filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false#reload.period: 10s# Elasticsearch template setting
setup.template.settings:index.number_of_shards: 1
output.elasticsearch:# Array of hosts to connect to.hosts: [http://172.21.105.64:19200]# Protocol - either http (default) or https.protocol: http# Authentication credentials - either API key or username/password.#api_key: id:api_keyusername: elasticpassword: qianyue2021#ssl.verification_mode: none 配置系统服务 # cat /usr/lib/systemd/system/auto_agent_filebeat.service
[Unit]
Descriptionfilebeat
Wantsnetwork-online.target
Afternetwork-online.target[Service]
Userroot
WorkingDirectory/home/auto-op-mgr/auto_agent/app/auto_agent_filebeat
ExecStart/home/auto-op-mgr/auto_agent/app/auto_agent_filebeat/filebeat -e --strict.permsfalse -c /home/auto-op-mgr/auto_agent/app/auto_agent_filebeat/filebeat.yml
# 设置为掉线自动重启进程强制杀掉后会自动重新启动
Restartalways[Install]
WantedBymulti-user.target