首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Elasticsearch(ES)Beats

Elasticsearch(ES)Beats

作者头像
运维小路
发布2025-08-09 15:59:41
发布2025-08-09 15:59:41
8600
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS

Elasticsearch ES (本章节)

上个小节我们使用了curl命令对ES基本的基本的写入和查询,实际上我们真实的环境都会使用Beats组件来进行数据写入,他也是ES官方给我们提供的数据写入工具。

Elasticsearch Beats 是 Elastic Stack (ELK Stack) 生态系统中一组轻量级、单一用途的数据采集器。它们被设计用来将各种类型的数据从成百上千台机器和系统轻松、高效地发送到 Elasticsearch 或 Logstash 进行集中存储和分析。

主要成员(官方 Beats):Filebeat

  • 用途: 日志文件采集。这是最常用的 Beat。
  • 功能: 监控指定的日志文件或位置,收集日志行,支持多行日志合并,支持负载均衡和背压敏感协议发送到 Logstash 或 Elasticsearch。
  • 典型场景: 收集应用日志(Nginx, Apache, Java apps)、系统日志(syslog)、安全日志等。
  • 当然还有很多其他Beats,我们这里暂时就就不介绍
  • 本小节就来使用Filebeat来采集我们的Nginx日志。

1.安装Filebeat

代码语言:javascript
代码运行次数:0
运行
复制
#这里选择的是和es完全一致的版本
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.29-x86_64.rpm
rpm -ivh filebeat-7.17.29-x86_64.rpm 

2.配置Filebeat

代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost filebeat]# cat filebeat.yml
filebeat.inputs:
- type: filestream
  enabled: true
  paths:
    - /var/log/nginx/access.log
    - /var/log/nginx/error.log
  fields:
    log_type: "nginx"
  fields_under_root: true

output.elasticsearch:
  hosts: ["192.168.31.171:9200", "192.168.31.172:9200", "192.168.31.173:9200"]
  index: "nginx-%{+yyyy.MM.dd}-%{+HHmm}"  # 自定义索引名,每分钟一个索引 

# 必须添加的模板配置
setup.template:
  name: "nginx_template"
  pattern: "nginx-*"
  enabled: true
  overwrite: true

setup.ilm.enabled: false  # 禁用ILM

3.启动Filebeat

Filebeat会维持读取的日志的偏移量,也就是如果Filebeat意外中断,重启恢复以后,他会接着上次的地方继续提交日志,避免重复提交。

代码语言:javascript
代码运行次数:0
运行
复制
systemctl enable filebeat
systemctl start filebeat
代码语言:javascript
代码运行次数:0
运行
复制
#Filebeat 的 注册表文件(Registry File),记录文件上传位置 
[root@localhost filebeat]# ll /var/lib/filebeat/registry/filebeat/
total 5188
-rw------- 1 root root 3985404 Aug  5 22:11 log.json
-rw------- 1 root root      15 Aug  5 21:55 meta.json
[root@localhost filebeat]# 

4.检查索引

这里刚好还有一个索引刚刚创建,因为数据还未同步,还没有变成green状态。当然这个由于未单独定义,使用的默认配置1分区,1副本。

代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost nginx]# curl -XGET 'http://192.168.31.171:9200/_cat/indices'
green  open nginx-2025.08.05-2156              SzGsufACQXathMWsio1Bqg 1 1 55458 0   9.2mb   4.6mb
green  open nginx-2025.08.05-2200              rYbTn5C6QDqy_OgXfLPLIQ 1 1 24476 0   4.1mb     2mb
green  open nginx-2025.08.05-2201              6PDT9FOdRVGGkWw-YApjcQ 1 1 31448 0     5mb   2.7mb
green  open nginx-2025.08.05-2157              WZ62OI21QrOpbPddK_WXDg 1 1 25326 0   4.3mb   2.1mb
yellow open nginx-2025.08.05-2202              3aO7sXbBTESv9HBf812eBA 1 1  1826 0 219.2kb 219.2kb
green  open nginx-2025.08.05-2158              dndUfDKTRi6TZ7aOEPMxaw 1 1 23726 0     4mb     2mb
green  open nginx-2025.08.05-2159              vP78Dg7MR_qCw5_1dYEIzA 1 1 39462 0   7.4mb   3.4mb
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档