まず、何がそれをElasticSearch?
ElasticSearchはすぐに、大量のデータからあなたを助ける関連データの情報を見つけることができる非常に強力な、オープンソースのLuceneベースの検索および分析エンジンです。
たとえば、あなたはGitHubの上で検索した場合、ElasticSearchだけで、あなたも、あなたがコードレベルの検索を達成するのを助けることができ、関連するコードライブラリを検索し、強調表示を助けることはできません。あなたがオンラインで買い物をするとき、ElasticSearchあなたは関連商品を推薦することができます;あなたが車を打ったとき、elasticSearchは、スケジューリングプラットフォームの最適化を支援するために、運転手と乗客の近くに配置することができます。
また、検索Kibana、Logstashを結合する、オープンソース製品をビート、弾性スタックは(ELKを参照さ)も広く含めた大規模なデータのほぼリアルタイム分析の分野で使用されている:指標、情報セキュリティを監視、分析をログに記録します。それはあなたが、機械学習、異常状態の自動識別を使用してデータを監視するための視覚的なレポート、設定したアラームしきい値を作成するために必要な構造化データと非構造化データ、大量のを探ることができます。
ElasticSearch基づいてRESTfulなWEBAPI、Javaの言語検索エンジンライブラリのクラスを使用して開発した、と発表されApacheのライセンス条件の下でオープンソースとしては、現在人気のあるエンタープライズクラスの検索エンジンです。Javaの、C#、PHP、Pythonや他の多くの言語では、そのクライアントが利用できます。:適切なアドレスのダウンロード https://www.elastic.co/guide/en/elasticsearch/client/index.htmlを
だから、ElasticSearchは、2つの利点があります。
1)天然に分布し、水平にスケーラブルなサポート。
2)繧インターフェイスは、それが任意のプログラミング言語によって呼び出すことができるので、繧インタフェースは、フルテキスト検索のための学習曲線を低減提供します。
長所と短所についてLuceneの話:
利点: 1)高性能; 2)を展開するのは簡単。
短所:
1)それが唯一のJava言語の開発に基づくことができます。
2)インタフェースライブラリ急な学習曲線。
3)天然の水平拡張をサポートしていません。
二、弾性スタック構成
1、JSONベースの分散検索と分析エンジンであるElasticSearchデータ検索、分析及びストレージ、拡張性、信頼性、管理および設計の容易性のレベルを達成するように設計されました。
次のステップに分け、その実装の原則:
1)まず、ユーザElasticSearchは、データベースにデータを送信します。
次いで、2)ワード単位および対応する制御文。
3)その重みに一緒にセグメンテーション結果、ユーザは重量に基づいて、データを検索準備するには、結果がユーザに返され、ランク付けおよびスコアリングをもたらします。
2、Kibanaデータの可視化は、その役割は航空でElasticSearchで行われます。Kibanaは、グラフ形式のデータで提示し、フルレンジElasticSearchの拡張可能なユーザーインターフェース、構成および管理を有することができます。
Kibana早い時間は、弾性が2013年に取得した後Logstashが作成したツールをベースにしています。
1)Kibanaは、種々の視覚化グラフを提供することができます。
2)事前に不審な質問のための異常な状況を検出するための機械学習技術により、
3、ビート軽量プラットフォームのコレクタであり、これらのコレクタは移動言語、比較的高速運転効率によって開発されたエッジLogstash、ElasticSearchにマシンからデータを送信してもよいです。図からわかるように、それは、異なるデータソースの異なる拍パッケージです。
異なるストレージライブラリーに変換されたデータ、及びデータを送信する、データをサポートするために、様々なソースから収集された拡張可能なプラグ生態系を有する4、Logstash動的データ収集パイプ。これは、弾性、同社が2013年に取得した後、ElasticSearchとの強力な相乗効果を持つことができます。
これは、次の特性があります。
1)解析し、データを変換するリアルタイム。
2)プラグ200を複数有する、拡張することができます。
3)信頼性とセキュリティ。耐久性のあるキューによってLogstashは、暗号化されたデータが転送される間、少なくとも1つのサービス・イベントの動作を保証するであろう。
4)モニタリング。
对于日志的解决方案一般分为:日志搜索、格式化分析、全文检索、风险告警;
三、为什么要学习ElasticSearch?
根据DB Engine的排名显示,ElasticSearch是最受欢迎的企业级搜索引擎。根据https://db-engines.com/en/ranking网站排名可知,比较靠前的有三家大数据搜索引擎公司,除了ElasticSearch,还有Splunk和Solr。其中Solr也是基于Lucene。
1、在当前软件行业中,搜索是一个软件系统或平台的基本功能, 学习ElasticSearch就可以为相应的软件打造出良好的搜索体验。
2、其次,ElasticSearch具备非常强的大数据分析能力。虽然Hadoop也可以做大数据分析,但是ElasticSearch的分析能力非常高,具备Hadoop不具备的能力。比如有时候用Hadoop分析一个结果,可能等待的时间比较长。
3、ElasticSearch可以很方便的进行使用,可以将其安装在个人的笔记本电脑,也可以在生产环境中,将其进行水平扩展。
4、国内比较大的互联网公司都在使用,比如小米、滴滴、携程等公司。另外,在腾讯云、阿里云的云平台上,也都有相应的ElasticSearch云产品可以使用。
5、在当今大数据时代,掌握近实时的搜索和分析能力,才能掌握核心竞争力,洞见未来。(涨工资)
四、学习ElasticSearch的入手层面
1、开发层面
1)了解ElasticSearch有基本功能;2)底层分布式工作原理;3)针对数据进行数据建模;
2、运维层面
1)进行集群的容量规划;2)对集群进行滚动升级;3)对性能的优化;4)出现问题后,对问题的诊断与解决;
3、方案层面
1)学习ElasticSearch后,可以针对实际情况,解决搜索的相关问题;2)可以将ELK运用到大数据分析场景中;
五、ElasticSearch的主要功能及应用场景
1、主要功能:
1)、海量数据的分布式存储以及集群管理,达到了服务与数据的高可用以及水平扩展;
2)、近实时搜索,性能卓越。对结构化、全文、地理位置等类型数据的处理;
3)、海量数据的近实时分析(聚合功能)
2、应用场景:
1)网站搜索、垂直搜索、代码搜索;
2)日志管理与分析、安全指标监控、应用性能监控、Web抓取舆情分析;
六、Elastic Stack的生态圈
从上图中可以看到,ElasticSearch做为ELK中的核心部分,它起到了数据存储的作用。而Kibana在上层可以为使用者提供一个可视化的界面。Logstash和Beats可以将各种各样的数据进行抓取和收集。
在右侧的X-Pack部分,是Elastic公司所提供的几种收费服务,同时Elastic公司也提供云的解决方案。
七、ElasticSearch与DB的集成
针对上图,可以分为两种情况:
1、将ElasticSearch当成数据库来存储数据,好处是架构比较简单;
2、若数据更新比较频繁,同时需要考虑数据事务性时,应该先将数据存入数据库,然后建立一个合适的同步机制,将数据同步到ElasticSearch中;
八、ELK在数据指标收集,日志分析的架构设计
从上图中可以知道,通过Beats或者程序来进行数据方面的收集,当收集的数据量较大时,需要加入一层(Redis、Kafka、RabbitMQ)进行数据缓冲,然后将数据送入Logstash进行聚合及数据处理,最后通后ElasticSearch进行分词、创建索引并存储,通过Kibana或者Grafana这类图形化工具进行数据的可视化和数据分析。
知识学习来源:《Elasticsearch核心技术与实战》