一、简介
1、基于java语言开发的搜素引擎类库
2、具有高性能、易扩展的优点
3、局限性
只能基于java语言开发
类库的接口学习曲线陡峭
原生并不支持水平扩展
二、Elasticseach 的分布式架构
1、集群规模可以从单个扩展至数百个
2、高可用、水平扩展
服务和数据两个维度
3、支持不同的节点类型
支持Hot & Warm 架构
三、Elasticseach 主要功能
1、海量数据的分户式存储以及集群管理
服务与数据的高可用,水平扩展
2、近实时搜索、性能卓越
结构化、全文、地理位置、自动完成
3、海量数据的近实时分析
聚合功能
四、版本的新特性
5.x
1)Lucene 6.x 性能提升,默认打分机制TF-IDF该为BM25
2)支持ingest节点、Painless Scription、Completion suggested 支持、原生的java rest 客户端
- Type标记成deprecated,支持keyword类型
- 性能优化
内部引擎移除了避免同一问文档并发更新的竞争锁,带来了15%-20%的性能提升
Instant aggregation, 支持分片上聚合的缓存
新增了Profile API
6.x
1)Lucene7.x
- 新功能
跨集群复制(CCR)、索引生命周期管理、SQL的支持
- 更友好的升级及数据迁移
在主要版本之间的迁移更为简单
全新的基于操作的数据复制框架,可加快恢复数据
- 性能优化
有效存储稀疏字段的方法,降低了存储成本
在索引时进行排序、可加快排序的查询性能
7.x
- Lucene8.0
- 重大改进-正式废除单个索引下多个Type的支持
- 7.1开始,Security功能免费使用
- ECK -Elasticsearch Operator on Kubernetes
- 新功能
New Cluster coordination
Feature-Complete High Level Rest Client
Script Score Query
- 性能优化
默认的Primary Shard 数从5改为1,避免Over Sharding
性能优化,更快的Top K
五、Logstash 特性
1、实时解析和转换数据
从IP地址破译出地理坐标
将PLL 数据匿名化,完全排除敏感字段
2、 可扩展
200 多个插件(日志/数据库/Arcsigh/Netflow)
3、 可靠性、安全性
Logstash 会通过持久化队列来保证至少将运行中的事件送达一次
数据传输加密
4、监控
六、ELK应用场景
1、网站搜索、垂直搜索、代码搜索
2、日志管理与分析、安全指标监控、应用性能监控、WEB抓去舆情分
七、日志重要性
1、日志是处理问题的关键点
2、ES提供:日志搜索、格式化分析、全文检索、风险告警
八、ES与数据库集成
1、单独使用ES存储
2、以下情况可以考虑与数据库集成
与现有系统的集成
需要考虑事务性
数据更新频繁
九、指标日志分析