华泰证券Elasticsearch在日志搜索、日志分析、链路管理系统方面的应用实践

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 2018Elastic Meetup南京交流会,由华泰证券李文强带来以“华泰证券Elasticsearch应用实践”为题的演讲。本文首先介绍了华泰证券具有系统运维繁琐、日志不能长期保存、日志数据价值没有挖掘、大数据领的一角的特点,接着介绍了它在日志搜索、日志分析和链路管理系统方面的应用实践,最后介绍了华泰证券Elasticsearch在使用中应注意的事项。

2018Elastic Meetup南京交流会,由华泰证券李文强带来以“华泰证券Elasticsearch应用实践”为题的演讲。本文首先介绍了华泰证券具有系统运维繁琐、日志不能长期保存、日志数据价值没有挖掘、大数据领的一角的特点。接着介绍了它在日志搜索、日志分析和链路管理系统方面的应用实践。最后介绍了华泰证券Elasticsearch在使用中应注意的事项。
数十款阿里云产品限时折扣中,赶快点击这里,领劵开始云上实践吧!
直播视频回顾
以下内容根据现场分享整理而成。

建设背景及现状

背景

在过去,华泰证券具有系统运维繁琐、日志不能长期保存、日志数据价值没有挖掘、大数据领的一角的四个特点。所谓的系统运维繁琐是指系统多、独立建设、服务产生大量日志、运维时需要登陆服务器才能查看日志等,遇到复杂问题时需要一台台地登陆服务器搜索相关日志文件才能定位问题。日志没有长期保存是指根据证券行业相关的法律法规,日志数需要保存一定年限并支持随时调取。日志数据价值没有挖掘是指日志中包含非常有价值的信息,但并没有深入挖掘。大数据领域的一角是指Hadoop主要面向的是结构化数据的存储和分析,而不是非结构化数据的存储和分析。

现状

  • 2016年6月,华泰证券开始建设Elasticsearch集群,由于机房通过专线进行联网,当数据量太大时机房会被占用,所以机房不一样会导致需要许多个集群,因此集群需要单独建设。
  • Elasticsearch建设容量为120T,每天数据量会占用 600G甚至800G的空间,由于Elasticsearch容量比较小,所以日志保存时间非常短,有些只能保存两个月甚至几个星期,只有非常重要的信息才能保存三个月。在未来计划将Elasticsearch容量进行扩展,预期日志保存时间能够达到一年甚至两年以上。
  • 华泰证券支持的应用包括支撑涨乐、理财平台、监控数据分析、日志分析等。例如理财平台,Elasticsearch能够发现用户的行为,并给出用户建议方案。
    展望未来,中国证券市场已发生根本性转变,现在正面临着历史性的发展机遇。面对新的形势,华泰证券将继续坚持规范化、集团化、国际化发展战略,进一步加快公司做大做强步伐,力争尽快使公司成为具有核心竞争力的、业务规模和综合实力进入行业前列的证券控股集团。

应用实践

日志搜索

在日志搜索中,日志源是整个ES上的第一部分,跟ELK的采集与展示基本一致,它主要分为日志采集模块、采集代理、日志存储模块、日志检索模型、前台展示模块、采集管理模块。
其中,日志采集模块又分为采集代理和日志处理两部分。采集处理主要用来做数据的缓存,日志处理是把日志消费成两份,一份消费进入到ES,另一份消费日志进行实时报警。日志检索模块是对日志进行展示,它主要有三个功能,即统一的日志检索、实时监控报警、统一权限管理功能。

日志分析

数据源不仅包括日志,还包括网页和数据库。数据源通过morphling将数据采集放置三个库中,三个库包含ES、HDFS和Hbase。ES最终进行日志检索,HDFS和Hbase最终通过Hve和Kylin进行展现。

链路管理系统

在链路管理系统中,由数据质量分析、统一采集框架、自动化部署、应用监控构成一个内循环系统。

  • 对于数据质量的分析而言,用户要求数据一条不能多一条不能少,但在实际上对于分支系统来讲,由于链路比较长,所以几乎是不可能实现数据不多不失的。但是链路管理系统可以做到的是去辅助链路发现是否有质量问题,并在这个系统里及时对数据质量进行分析。
    例如,一个节点发送1000万条数据,通过链路管理最终进入到ES。在这个过程中可能会出现数据延迟的现象,若发送的曲线和对应发送的最终曲线一致,那么就说明数据质量是完好的,即最终数据是一致的。若两条曲线不能拟合,那就说明有数据已丢失。
  • 对于统一采集框架而言,即在采集的日志文件中对日志进行标准化,比如,日志应该包含什么等等。
  • 自动化部署即对部署过程的每一个步骤自动化,目前部署过程涉及到应用、环境和部署流程等。要实现自动化首先要做的是将需要部署的应用、环境和流程进行建模,并需要一个自动化部署系统来支撑。
  • 应用监控,即每天巡检只需要通过应用监控系统就能够知道每个链路上的节点是否正常,如果异常则会报警。

使用经验

华泰证券Elasticsearch的使用有六点注意事项。第一,磁盘目录不易过多,建议做Raid5,便于管理;第二,索引分片根据实际需求分配;第三,冷热分离策略;第四,根据业务特点进行集群部署,通过TrieNode连接;第五,元数据不易过多,过多会导致集群性能降低,触发BUG;第六,设置节点离开时的分片延迟分配策略。
其中,对于磁盘目录不易过多问题而言,需采取官网建议,即采取裸盘。由于单台机器有24块盘,长期运行当某些分片都落在某个磁盘上时,会造成单盘的读写热点问题,且这些分片的数据量较大时,这个磁盘的空间很容易爆满,ES也不会进行数据均衡,一旦磁盘超过阈值,整个节点都不会再分配分片,造成空间利用率不足的情况。可以通过新购机器的磁盘做Raid5和统一管理来解决这个问题,这样既不会出现某一块盘爆满,还能提升整体I/O吞吐,将老机器逐渐替换。
Jstat发现Master持续GC时,CPU使用率会非常高。可能存在有内存泄露问题,这就需要把Jmap内存dump出来分析,接着进一步分析漏点,最后修改源码并验证。
对于使用经验中的第六点, 集群运行很久后,集群分片就会越来越多,元数据就会多,当集群分片个数超过1.5万时,性能将出现问题,运行一段时间后集群运行不正常,节点就会无法连接Master。
在集群实际运转过程中,往往会出现节点由于网络或GC等原因从集群中离开、日常运维时节点下线的情况。集群为避免数据丢失,必须保证每个分片都有足够的副本,所以会产生大量的网络I/O,而这时如果节点重新加入集群,Elasticsearch会为该节点再次分配数据分片,这将再次导致大量的网络I/O操作。在这种情况下,集群长期处于Yellow状态,恢复非常缓慢,通过监控可看到分片处于迁移状态。这就需要通过设置参数index.unassigned.nod_left.delayed_timeout来延迟分片平衡的时间,为运维和节点异常恢复提供缓冲时间。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
打赏
0
0
0
0
79080
分享
相关文章
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
让跨 project 联查更轻松,SLS StoreView 查询和分析实践
让跨 project 联查更轻松,SLS StoreView 查询和分析实践
网络安全视角:从地域到账号的阿里云日志审计实践
网络安全视角:从地域到账号的阿里云日志审计实践
海量日志接入 Elasticsearch Serverless 应用降本70%以上
本文将探讨在日志场景下,使用阿里云Elasticsearch Serverless相较于基于ECS自建Elasticsearch集群的成本与性能优势,展示如何通过Serverless架构实现高达 70%以上的成本节约。
217 0
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
85 13
简单聊聊MySQL的三大日志(Redo Log、Binlog和Undo Log)各有什么区别
在MySQL数据库管理中,理解Redo Log(重做日志)、Binlog(二进制日志)和Undo Log(回滚日志)至关重要。Redo Log确保数据持久性和崩溃恢复;Binlog用于主从复制和数据恢复,记录逻辑操作;Undo Log支持事务的原子性和隔离性,实现回滚与MVCC。三者协同工作,保障事务ACID特性。文章还详细解析了日志写入流程及可能的异常情况,帮助深入理解数据库日志机制。
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
53 5
图解MySQL【日志】——Redo Log
图解MySQL【日志】——Undo Log
Undo Log(回滚日志)是 MySQL 中用于实现事务原子性和一致性的关键机制。在默认的自动提交模式下,MySQL 隐式开启事务,每条增删改语句都会记录到 Undo Log 中。其主要作用包括:
59 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等