Beats是一个代理平台,其监控数据主要发往Logstash和Elasticsearch,其官方组件大致如下:
系统审计组件;
日志文件采集组件,可采集日志对象有服务器,虚拟机,容器等;
对一个服务或者应用通过URL进行心跳检测,判断是否在alive状态;
提供对系统和应用的状态统计,比如处理器和内存以及nginx和redis应用的统计;
针对网络数据包的采集;
针对Windows系统的窗口事件采集;
本次,我们主要讲讲 Filebeat 、Metricbeat 这2个软件使用过程中遇到的问题。
Filebeat setup 命令有什么作用? 它负责在ES上初始化索引、导入kinana对象 、创建别名、ILM以及 Index Pattern等工作。正常执行setup后,ES集群上就会创建index pattern,以及相关的Dashboard. 同样,Metricbeat setup 命令作用也是如此。
问题描述: ES 7.5.1 白金版,客户执行如下命令,反馈setup等待时间过长,ES现象如下:
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 的执行日志,大概过程半个小时;
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”命令,复现了客户的问题。界面一直卡着,具体如下图所示:
一直等待约20分钟,才完成加载结束,如下图所示:
同时,为了对比,我自建了一个ES 7.2.0的集群,同样做以上filebeat setup命令,过程大概在1分钟内,很快完成,如下图:
结论:执行同样的命令云上的集群比自建集群的速度慢了几十倍,问题肯定是出在腾讯云ES集群的有关设置上。
腾讯云ES默认的refresh_interval时间是30s, 这个是针对所有索引包括系统索引。正是因为这个原因,导致了客户执行一列setup命令的时候,出现了漫长等待的过程。
执行如下命令:
PUT _all/_settings
{
"refresh_interval": "1s"
}
再次执行filebeat setup -e 命令,立马见效,整个过程在1分钟~2分钟内,客户测试确认通过,对该改动表示认可满意;
为了,测底解决后续客户的相关问题,我们把客户集群模板默认刷新时间改为1s,参见如下:
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 删除。