首页 > 其他分享 >6.Filebeat的安装及收集日志到Elasticsearch并使用自定义索引

6.Filebeat的安装及收集日志到Elasticsearch并使用自定义索引

时间:2023-08-10 17:03:49浏览次数:37  
标签:Filebeat ubuntu2004 自定义 true filebeat Elasticsearch root log

利用 Filebeat 收集日志
Filebeat是用于转发和集中日志数据的轻量级传送程序.作为服务器上的代理安装,Filebeat监视指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或Logstash进行索引.
Logstash也可以直接收集日志,但需要安装JDK并且会占用至少500M以上的内存 
生产一般使用filebeat代替logstash, 基于go开发,部署方便,重要的是只需要10M多内存,比较节约资源

Filebeat 官方说明

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html

Filebeat在机器上安装的代理软件,收集某个机器上的日志

Filebeat支持的数据来源
Multiline messages
AWS CloudWatch
AWS S3
Azure Event Hub
Azure Blob Storage
CEL
Cloud Foundry
CometD
Container
Entity Analytics
filestream
GCP Pub/Sub
HTTP Endpoint
HTTP JSON
journald
Kafka
Log
MQTT
NetFlow
Office 365 Management Activity API
Redis
Stdin                                   #标准输入
Syslog
TCP
UDP
Unix
Filebeat输出的目标
Elasticsearch Service
Elasticsearch
Logstash
Kafka
Redis
File
Console      #输出到控制台
注意: Filebeat 支持多个输入,但不支持同时有多个输出
安装 Filebeat 和配置说明
安装
https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/apt/pool/main/f/filebeat/
ubuntu安装:
[root@ubuntu2004 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/apt/pool/main/f/filebeat/filebeat-7.17.5-amd64.deb

rocky安装:
[root@rocky2004 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/7.17.5/filebeat-7.17.5-x86_64.rpm
查看官方文档编写输入和输出
https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html
如:从标准输入读取再输出至标准输出
输入:查看官方文档的inputs中的Stdin标准输入格式
输出:查看官方文档的output中的Stdin标准输出格式

[root@ubuntu2004 ~]# vim /etc/filebeat/stdin.yml 
filebeat.inputs: 
- type: stdin 
  enabled: true 
output.console: 
  pretty: true 
  enable: true
  
手动执行filebeat命令触发文件的执行(内存消耗较小)
[root@ubuntu2004 ~]#filebeat -c -e /etc/filebeat/stdin.yml
.....
hello,es  #手动输入后回车,输出如下
{  
  "@timestamp": "2022-07-09T14:48:22.446Z",  
  "@metadata": {   
    "beat": "filebeat",  
    "type": "_doc",  
    "version": "7.17.5"
  }, 
  "agent": {   
    "name": "es-web01",  
    "type": "filebeat", 
    "version": "7.17.5",  
    "hostname": "es-web01",  
    "ephemeral_id": "8918da58-f04c-4b74-9dfe-4e53952c2530",  
    "id": "fffb2178-8110-400c-b3f9-ce8920aeb61a"
  },
  "message": "hello,es",   #真正的数据只有此行,其它都是Filebeat添加的元数据
  "log": { 
    "offset": 0, 
    "file": {    
      "path": "" 
    }
  }, 
  "input": { 
    "type": "stdin"
  }, 
  "ecs": {   
    "version": "1.12.0"
  }, 
  "host": {  
    "name": "es-web01"
  } 
}
从标准输入读取再输出至 Json 格式的文件
[root@ubuntu2004 ~]#vim /etc/filebeat/stdin_file.yml
filebeat.inputs: 
- type: stdin 
  enabled: true
  json.keys_under_root: true
output.file:
  path: "/tmp/filebeat"
  filename: filebeat

手动执行filebeat命令触发文件的执行
[root@ubuntu2004 ~]#filebeat -c -e /etc/filebeat/stdin_file.yml
.....
hello,es  #手动输入后回车

输出到文件中
[root@ubuntu2004 ~]# ls /tmp/filebeat/filebeat
[root@ubuntu2004 ~]# cat /tmp/filebeat/filebeat
{"@timestamp":"2022-08-01T13:53:48.259Z","@metadata": {"beat":"filebeat","type":"_doc","version":"7.17.5"},"host": {"name":"ubuntu2004.wang.org"},"agent": {"hostname":"ubuntu2004.wang.org","ephemeral_id":"e17c1494-889d-49fb-b3d7- 5cb573b1f152","id":"d1fdb707-5e4f-47b3-944b- 8f6d1477190a","name":"ubuntu2004.wang.org","type":"filebeat","version":"7.17.5"} ,"ecs":{"version":"1.12.0"},"log":{"offset":0,"file":{"path":""}},"json": {},"message":"","input":{"type":"stdin"}}
从文件读取再输出至标准输出
[root@ubuntu2004 ~]# vim /etc/filebeat/file.yml 
filebeat.inputs: 
  - type: log
    enabled: true 
    paths: 
    - /var/log/filebeat.log
output.console:
  pretty: true 
  enable: true
  
手动执行filebeat命令触发文件的执行
[root@ubuntu2004 ~]#filebeat -c -e /etc/filebeat/file.yml 
[root@ubuntu2004 ~]#echo "This is a test log" > /var/log/filebeat.log
收集系统日志到Elasticsearch
[root@ubuntu2004 ~]# vim /etc/filebeat/filebeat.yml 
filebeat.inputs: 
  - type: log
    enabled: true 
    paths: 
    - /var/log/filebeat.log
output.elasticsearch:
  hosts:["10.0.0.101:9200"]
重启filebeat  
[root@ubuntu2004 ~]# systemctl restart rsyslog.service

![image-20230628080413557](利用 Filebeat 收集日志.assets/image-20230628080413557.png)

自定义索引名称收集日志到Elasticsearch,定义不同的索引名区分不同的业务
[root@ubuntu2004 ~]# vim /etc/filebeat/filebeat.yml 
filebeat.inputs: 
  - type: log
    enabled: true 
    paths: 
    - /var/log/filebeat.log
output.elasticsearch:
  hosts:["10.0.0.101:9200"]
  index: "meng-%{[agent.version]}-%{+yyyy.MM.dd}"
setup.ilm.enabled: false        
setup.template.name: "meng"     
setup.template.pattern: "meng-*"
重启filebeat  
[root@ubuntu2004 ~]# systemctl restart rsyslog.service

上一次/var/log/filebeat.log文件已经被filebeat收集,内容相同则不会再次收集,需增加内容,让filebeat再次收集
cp /var/log/filebeat.log json.txt
cat json.txt >> /var/log/filebeat.log

![image-20230628081509183](利用 Filebeat 收集日志.assets/image-20230628081509183.png)

json.keys_under_root: true使输出信息转换成json格式,不再输出一堆

标签:Filebeat,ubuntu2004,自定义,true,filebeat,Elasticsearch,root,log
From: https://blog.51cto.com/lmm01/7037559

相关文章

  • 8.利用Filebeat收集Nginx的Json格式访问日志和错误日志到Elasticsearch
    生产环境中经常需要获取Web访问用户的信息,比如:网站的PV,UV,状态码,用户来自哪个地区,访问时间等可以通过收集的Nginx的访问日志实现默认Nginx的每一次访问生成的访问日志是一行文本,ES没办法直接提取有效信息,不利于后续针对特定信息的分析可以将Nginx访问日志转换为JSON......
  • vue自定义指令(防抖)
    importVuefrom'vue'/***按钮防抖,300毫秒内只触发一次请求*区分了一下传参和不传参的情况*///不传参数,用法:v-debounce="test_debounce"Vue.directive('debounce',{inserted:function(el,binding){lettimerel.addEventListener('click',......
  • 定制 ChatGPT 以满足您的需求 自定义说明
    推荐:使用NSDT场景编辑器快速助你搭建可二次编辑的3D应用场景20月<>日,OpenAI 宣布他们正在引入带有自定义说明的新流程,以根据您的特定需求定制ChatGPT。什么是自定义说明?新的测试版自定义指令功能旨在通过防止用户在聊天会话之间重复常用指令来帮助用户充分利用ChatGPT。......
  • k8s部署 elasticsearch7集群,其中一台节点报错无法域名解析 :resolving host...
    部署es7集群其中一个节点一直报错resolvinghost考虑有两点,要么是coredns组件出问题了,无法解析,要么是calico网络组件出问题了,首先我就去看网络组件了,果然发现问题,我这台机器有两个网卡,一个是enp9s0(172.16.2.30地址),一个是enp11s0(172.16.2.25地址),我加入的节点是30机器,但是calico绑定......
  • Elasticsearch笔记
    拉呱,无论是当作全文检索工具,还是仅仅当作NOSQL,Elasticsearch的性能,牛的没法说!!!奈何和它相见恨晚点击进入官网中文文档一.使用场景全文检索-像淘宝京东类似的网上商城,当我们在在搜索框搜索某个商品名称时,网络没有问题的话,获取响应的速度,几乎和我们键盘起落的速度是一致的......
  • Sharding自定义分片策略
    公司分库分表使用用户id,主键后3位拼接用户id后三位,现把相关分片规则自定义简易组件使用一、参数配置引用者可以配置主键字段与用户字段命名,配置分片日志记录等packagecom.ypshengxian.shardingslice.properties;importorg.springframework.beans.factory.annotation.Val......
  • 利用pytorch自定义CNN网络(三):构建CNN模型
    本文是利用pytorch自定义CNN网络系列的第三篇,主要介绍如何构建一个CNN网络,关于本系列的全文见这里。笔者的运行设备与软件:CPU(AMDRyzen™54600U)+pytorch(1.13,CPU版)+jupyter;本文所用到的资源:链接:https://pan.baidu.com/s/1WgW3IK40Xf_Zci7D_BVLRg提取码:12121.如何......
  • 监控Elasticsearch的关键指标
    Elasticsearch的核心职能就是对外提供搜索服务,所以搜索请求的吞吐和延迟是非常关键的,搜索是靠底层的索引实现的,所以索引的性能指标也非常关键,Elasticsearch由一个或多个节点组成集群,集群自身是否健康也是需要我们监控的。lasticSearch的架构非常简单,一个节点就可以对外提供服务,......
  • Vue 自定义组件
    下面有一个例子。<template><el-input:value="value"@click.native="select"readonly><iclass="el-icon-circle-close"slot="suffix"@[email protected]="clear"/>&l......
  • 美团 Elasticsearch 特定场景内核级改造优化分享
     最近在做千亿级别ES检索优化的工作。在检索中面临了非常多的挑战,总结成一句话,在资源不足的情况下,想要实现对百亿数据检索,3秒内返回结果。并且搜索的关键词非常多,这一度让我觉得是不能完成的事情。 但是美团这篇文章,写的真的很有深度,从问题出发,先抛出来问题,然后一步一步的将问......