美文网首页DBA
记一次ES日志系统的接入

记一次ES日志系统的接入

作者: mysia | 来源:发表于2019-11-21 20:00 被阅读0次

0 - 前言

近期接了一个新项目,某部门的日志要从HDFS迁移到ES中,每天15T,保留15天,每天有150亿条数据写入,这对于我们现有集群吞吐量是一个很大的挑战。

1 - 现状

目前默认ES集群采用3 master、3 data的结构。数据节点服务器:

CPU: 24 核、Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
MEM:128G
Disk: Intel 4510 * 4 单盘挂载

默认集群可承载25w/s的请求,index速度可以达到120w/s,吞吐量最大可到25MB/s。如果每天有150亿的写入,QPS在20w左右,默认的集群配置可以接受,但是,问题出在了Logstash上。

我们的离线日志接入流程是:

Log file -> Flume -> Kafka -> Logstash -> ES

我们使用40 Cores Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz的机器来做Logstash节点(内存> 64G),发现消费速度仅为1w/s,仅是实际值的5%。

于是,我们调整Logstash配置,加大pipeline参数:

pipeline.workers: 40
pipeline.batch.size: 500
pipeline.batch.delay: 10

此时,写入量达到了2w/s,但还是不够。接下来,我们只好通过水平扩展Logstash节点来增加吞吐量,结果还是比较喜人的,机器数量和吞吐量呈线性增长。但是耗费的机器数量也是巨大的,常态需要10台左右,为防止业务激增,需要准备至少20台服务器。用这么多机器来做一个离线日志系统,显然不太合理。

于是,机器不够,人工来凑,我们开始对ES集群进行针对性优化。

  1. 日志数据允许丢失,我们关掉了副本,只保留主分片;
  2. 为了增加吞吐量,刷新间隔增加到了100s;
  3. 为了降低translog占用的资源,增大了缓存的日志大小、调整了刷新间隔和方法;

具体索引配置如下:

"index.refresh_interval":"100s",
"number_of_replicas": 0,
"translog.flush_threshold_size": "1024mb",
"translog.sync_interval": "100s",
"translog.durability": "async",
"merge.scheduler.max_thread_count": "1",
"merge.policy.max_merged_segment": "2gb"

经过一番折腾,耗费的服务器减少了一半,吞吐量增加了30%。

完。

相关文章

  • 记一次ES日志系统的接入

    0 - 前言 近期接了一个新项目,某部门的日志要从HDFS迁移到ES中,每天15T,保留15天,每天有150亿条数...

  • EKL日志分析系统(接入篇)

    新系统需要接入ELK日志分析系统教程 1.在新系统需要进行日志收集的结点安装logstash cd/usr/loc...

  • 1210笔记

    一、接入es 接入es依赖指令: composer require elasticsearch/elasticse...

  • 2019-07-03 log4j2 自定义ElasticSear

    简易自定义ElasticSearchAppender 通过自定义appender可实现日志系统日志直接存储到ES ...

  • 再见友盟!Acra详细分析 -Part 1

    概述 Acra是老牌的bug自动采集系统。接入sdk后,可以实现程序崩溃自动发送崩溃日志。发送自定义的错误日志等功...

  • filtbeat Pod OOM

    背景:容器化之前已经有一套es+flume+kibana日志收集系统,由于flume agent采集日志时候消耗的...

  • BLoger摇一摇查看日志

    项目介绍: CocoaLumberjack/Swift框架的扩展,一键接入日志系统,Debug模式下摇一摇即可查看...

  • 4.9.1 接入 Tree Shaking

    4.9.1 接入 Tree Shaking问题一:接入 Tree Shaking? 首先,为了把采用 ES6 模块...

  • filebeat7.5+logstash7.5 利用tags多输

    说明 需求的场景需要把nginx,apache,mysql,系统等日志收集到es系统中. 每个服务器都需要单独的索...

  • 接入es数据到hdfs

    最近接到一个需求,需要接入es日志数据到hdfs,进行分析,网上查找了一下资料,总结一下方法大致有如下几种 hiv...

网友评论

    本文标题:记一次ES日志系统的接入

    本文链接:https://www.haomeiwen.com/subject/mhtebctx.html