前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Filebeat 执行 setup命令等待时长过久问题处理

Filebeat 执行 setup命令等待时长过久问题处理

原创
作者头像
南非骆驼说大数据
修改2020-12-02 22:18:18
1.9K0
修改2020-12-02 22:18:18
举报

一、前言

Beats是一个代理平台,其监控数据主要发往Logstash和Elasticsearch,其官方组件大致如下:

Auditbeat

系统审计组件;

Filebeat

日志文件采集组件,可采集日志对象有服务器,虚拟机,容器等;

Heartbeat

对一个服务或者应用通过URL进行心跳检测,判断是否在alive状态;

Metricbeat

提供对系统和应用的状态统计,比如处理器和内存以及nginx和redis应用的统计;

Packetbeat

针对网络数据包的采集;

Winlogbeat

针对Windows系统的窗口事件采集;

本次,我们主要讲讲 Filebeat 、Metricbeat 这2个软件使用过程中遇到的问题。

二、Filebeat setup 过程时间过长问题过程、测试

Filebeat setup 命令有什么作用? 它负责在ES上初始化索引、导入kinana对象 、创建别名、ILM以及 Index Pattern等工作。正常执行setup后,ES集群上就会创建index pattern,以及相关的Dashboard. 同样,Metricbeat setup 命令作用也是如此。

问题描述: ES 7.5.1 白金版,客户执行如下命令,反馈setup等待时间过长,ES现象如下:

代码语言:javascript
复制
root@VM_0_16_centos /etc/filebeat]# filebeat setup -e \
> -E output.logstash.enabled=false \
> -E output.elasticsearch.hosts=['IP:9200'] \
> -E output.elasticsearch.username=elastic \
> -E output.elasticsearch.password=XXXXX \
> -E setup.kibana.host==XXXXXX-ot7wei87.internal.kibana.tencentelasticsearch.com:5601

执行此命令后,陷入了漫长等待。时长,大概20分钟。同理,metrticbeat 的执行日志,大概过程半个小时;

代码语言:javascript
复制
2020-07-10T09:16:43.423+0800 INFO add_cloud_metadata/add_cloud_metadata.go:89 add_cloud_metadata: hosting provider type not detected.
2020-07-10T09:42:20.986+0800 INFO instance/beat.go:780 Kibana dashboards successfully loaded.

为了验证客户的问题,这里同样创建一个7.5.1 白金版,云ES集群,并下载对应的filebeat客户端,执行“Filebeat setup”命令,复现了客户的问题。界面一直卡着,具体如下图所示:

setup过程1
setup过程1
setup过程2
setup过程2

一直等待约20分钟,才完成加载结束,如下图所示:

setup 过程3
setup 过程3

同时,为了对比,我自建了一个ES 7.2.0的集群,同样做以上filebeat setup命令,过程大概在1分钟内,很快完成,如下图:

自建集群filebeat setup命令
自建集群filebeat setup命令

结论:执行同样的命令云上的集群比自建集群的速度慢了几十倍,问题肯定是出在腾讯云ES集群的有关设置上。

三、解决办法

腾讯云ES默认的refresh_interval时间是30s, 这个是针对所有索引包括系统索引。正是因为这个原因,导致了客户执行一列setup命令的时候,出现了漫长等待的过程。

执行如下命令:

代码语言:javascript
复制
 PUT _all/_settings
  {
    "refresh_interval": "1s"
  }  

再次执行filebeat setup -e 命令,立马见效,整个过程在1分钟~2分钟内,客户测试确认通过,对该改动表示认可满意;

为了,测底解决后续客户的相关问题,我们把客户集群模板默认刷新时间改为1s,参见如下:

代码语言:javascript
复制
GET _template/default@template
{
  "default@template" : {
    "order" : 1,
    "index_patterns" : [
      "*"
    ],
    "settings" : {
      "index" : {
        "lifecycle" : {
          "name" : "hezhenserver",
          "rollover_alias" : "nginx_weblogs"
        },
        "max_result_window" : "65536",
        "refresh_interval" : "30s",     //将这里改为1s,
        "unassigned" : {
          "node_left" : {
            "delayed_timeout" : "5m"
          }
        },
        "translog" : {
          "sync_interval" : "5s",
          "durability" : "async"
        },
        "number_of_replicas" : "1"
      }
    },
    "mappings" : {
      "dynamic_templates" : [
        {
          "message_full" : {
            "mapping" : {
              "type" : "text",
              "fields" : {
                "keyword" : {
                  "ignore_above" : 2048,
                  "type" : "keyword"
                }
              }
            }
            ......

四、后续改进

ES默认的刷新时间是1s,腾讯云ES基于索引写入优化调大了该刷新时间,但是对于一些在kibana上进行快速展示有效配置的时候往往这个30s时间又过长,影响客户体验,基于客户的反馈,我们已经将此问题提交ES产品侧,期望改动该值到一个合理的区间并以产品变更作为线上服务的默认标准配置,提升腾讯云ES用户的体验水平。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、Filebeat setup 过程时间过长问题过程、测试
  • 三、解决办法
  • 四、后续改进
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档