具體描述
YL5315 9787111563297 9787111524168
ELK Stack權威指南 第2版
ELK是Elasticsearch、Logstash、Kibana三個開源軟件的組閤,是目前開源界流行的實時數據分析方案,成為實時日誌處理領域開源界的第壹選擇。然而,ELK也並不是實時數據分析界的靈丹妙藥,使用不恰當,反而會事倍功半。本書對ELK的原理進行瞭解剖,不僅分享瞭大量實戰案例和實現效果,而且分析瞭部分源代碼,使讀者不僅知其然還知其所以然。讀者可通過本書的學習,快速掌握實時日誌處理方法,並搭建符閤自己需要的大數據分析係統。本書分為三大部分,第壹部分“Logstash”介紹Logstash的安裝與配置、場景示例、性能與測試、擴展方案、源碼解析、插件開發等,第二部分“Elasticsearch”介紹Elasticsearch的架構原理、數據接口用例、性能優化、測試和擴展方案、映射與模闆的定製、監控方案等,第三部分“Kibana”介紹Kibana3和Kibana5的特點對比,Kibana的配置、案例與源代碼解析。
前 言
1部分 Logstash
第1章 入門示例 3
1.1 下載安裝 3
1.2 Hello World 4
1.3 配置語法 8
1.3.1 語法 8
1.3.2 命令行參數 10
1.3.3 設置文件示例 11
1.4 插件安裝 12
1.5 長期運行方式 13
第2章 插件配置 15
2.1 輸入插件 15
2.1.1 標準輸入 16
2.1.2 文件輸入 17
2.1.3 TCP輸入 18
2.1.4 syslog輸入 19
2.1.5 http_poller抓取 21
2.2 編解碼配置 22
2.2.1 JSON編解碼 23
2.2.2 多行事件編碼 24
2.2.3 網絡流編碼 26
2.2.4 collectd輸入 27
2.3 過濾器配置 30
2.3.1 date時間處理 30
2.3.2 grok正則捕獲 33
2.3.3 dissect解析 35
2.3.4 GeoIP地址查詢 36
2.3.5 JSON編解碼 38
2.3.6 key-value切分 38
2.3.7 metrics數值統計 40
2.3.8 mutate數據修改 41
2.3.9 隨心所欲的Ruby處理 45
2.3.10 split拆分事件 47
2.3.11 交叉日誌閤並 48
2.4 輸齣插件 49
2.4.1 輸齣到Elasticsearch 49
2.4.2 發送email 54
2.4.3 調用係統命令執行 54
2.4.4 保存成文件 55
2.4.5 報警發送到Nagios 56
2.4.6 statsd 58
2.4.7 標準輸齣stdout 61
2.4.8 TCP發送數據 62
2.4.9 輸齣到HDFS 62............
深入理解ElasticSearch
第1章介紹ApacheLucene的工作方式、ElasticSearch的基本概念。第2章描述Lucene評分機製、如何進行查詢重寫,另外還介紹ElasticSearch的批處理API及如何使用過濾器來優化查詢。第3章描述如何修改Lucene評分,如何使用不同的倒排索引格式來改變索引字段的結構。第4章闡述如何選擇恰當的索引分片、路由工作機製、索引分片機製。第5章介紹如何為具體應用選擇正確的目錄實現,同時闡述發現、網關、恢復模塊及其配置方式,以及調優ElasticSearch的緩存機製。第6章介紹JVM垃圾收集的工作原理、重要性以及如何調優,還介紹如何控製ElasticSearch的I/O操作數量和如何診斷ElasticSearch中的問題。第7章介紹幫助修正查詢中的拼寫錯誤以及構建高效的自動完成機製——查詢建議,還通過實際的案例展示如何通過使用不同查詢類型和ElasticSearch的其他功能來提高查詢相關性。第8章重點闡釋ElasticSearch的JAVAAPI。第9章通過演示如何開發你自己的河流和語言處理插件來介紹ElasticSearch的插件開發。
譯者序前言緻謝作者簡介評審者簡介第1章 ElasticSearch簡介11.1 Apache Lucene簡介11.1.1 熟悉Lucene21.1.2 Lucene的總體架構21.1.3 分析你的數據31.1.4 Lucene查詢語言41.2 ElasticSearch簡介61.2.1 ElasticSearch的基本概念71.2.2 ElasticSearch架構背後的關鍵概念81.2.3 ElasticSearch的工作流程91.3 小結13第2章 查詢DSL進階142.1 Apache Lucene默認評分公式解釋142.1.1 何時文檔被匹配上152.1.2 TF/IDF評分公式152.1.3 ElasticSearch如何看評分162.2 查詢改寫172.2.1 前綴查詢範例172.2.2 迴顧Apache Lucene192.2.3 查詢改寫的屬性202.3 二次評分212.3.1 理解二次評分212.3.2 範例數據212.3.3 查詢222.3.4 二次評分查詢的結構222.3.5 二次評分參數配置232.3.6 小結242.4 批量操作242.4.1 批量取242.4.2 批量查詢262.5 排序272.5.1 基於多值字段的排序282.5.2 基於多值geo字段的排序282.5.3 基於嵌套對象的排序302.6 數據更新API312.6.1 簡單字段更新312.6.2 使用腳本按條件更新322.6.3 使用更新 API創建或刪除文檔332.7 使用過濾器優化查詢332.7.1 過濾器與緩存342.7.2 詞項查找過濾器362.8 ElasticSearch切麵機製中的過濾器與作用域402.8.1 範例數據402.8.2 切麵計算和過濾412.8.3 過濾器作為查詢的一部分422.8.4 切麵過濾器442.8.5 全局作用域452.9 小結47第3章 底層索引控製483.1 改變Apache Lucene的評分方式483.1.1 可用的相似度模型493.1.2 為每字段配置相似度模型493.2 相似度模型配置503.2.1 選擇默認的相似度模型513.2.2 配置被選用的相似度模型523.3 使用編解碼器533.3.1 簡單使用範例533.3.2 工作原理解釋543.3.3 可用的倒排錶格式553.3.4 配置編解碼器563.4 準實時、提交、更新及事務日誌583.4.1 索引更新及更新提交593.4.2 事務日誌603.4.3 準實時讀取623.5 深入理解數據處理623.5.1 輸入並不總是進行文本分析623.5.2 範例的使用653.5.3 索引期更換分詞器673.5.4 搜索時更換分析器683.5.5 陷阱與默認分析683.6 控製索引閤並683.6.1 選擇正確的閤並策略693.6.2 閤並策略配置703.6.3 調度723.7 小結73第4章 分布式索引架構744.1 選擇閤適的分片和副本數744.1.1 分片和過度分配754.1.2 一個過度分配的正麵例子754.1.3 多分片與多索引764.1.4 副本764.2 路由764.2.1 分片和數據774.2.2 測試路由功能774.2.3 索引時使用路由804.2.4 彆名834.2.5 多個路由值834.3 調整默認的分片分配行為844.3.1 分片分配器簡介844.3.2 even_shard 分片分配器844.3.3 balanced分片分配器854.3.4 自定義分片分配器854.3.5 裁決者864.4 調整分片分配884.4.1 部署意識894.4.2 過濾914.4.3 運行時更新分配策略924.4.4 確定每個節點允許的總分片數934.4.5 更多的分片分配屬性964.5 查詢執行偏好974.6 應用我們的知識994.6.1 基本假定994.6.2 配置1004.6.3 變化來瞭1044.7 小結105第5章 管理ElasticSearch1065.1 選擇正確的目錄實現-存儲模塊1065.2 發現模塊的配置1095.2.1 Zen發現1095.2.2 ***EC2發現1115.2.3 本地網關1145.2.4 恢復配置1155.3 索引段統計1165.3.1 segments API簡介1165.3.2 索引段信息的可視化1185.4 理解ElasticSearch緩存1195.4.1 過濾器緩存1195.4.2 字段數據緩存1215.4.3 清除緩存1265.5 小結127.........
《ELK Stack指南(第2版)》 + 《深入理解Elasticsearch》 內容簡介 這兩本精心編撰的圖書,將帶您踏上一段全麵而深入的Elastic Stack探索之旅。無論您是初次接觸日誌分析、全文搜索,還是希望在現有Elasticsearch集群上實現更高級的功能,亦或是對Elasticsearch底層原理充滿好奇,這兩本書都將成為您不可或缺的寶貴資源。它們不僅提供瞭詳盡的操作指南,更深入剖析瞭Elasticsearch的核心概念與設計哲學,助您成為一名真正掌握Elastic Stack的專傢。 《ELK Stack指南(第2版)》 本書聚焦於Elastic Stack(Elasticsearch, Logstash, Kibana)的實際應用與部署,為您提供瞭一條清晰的學習路徑,從搭建基礎環境到構建復雜的日誌分析和可視化係統,全程提供手把手的指導。 第一部分:ELK Stack基礎與入門 ELK Stack概覽與架構解析: 在開始實際操作之前,本書將首先為您清晰地闡述ELK Stack的組成部分及其在整個數據處理流程中的作用。我們將深入剖析Elasticsearch的分布式特性、Logstash的數據采集與轉換能力、以及Kibana的數據可視化與探索功能。您將理解它們如何協同工作,形成一個強大的端到端解決方案。 Elasticsearch入門: 您將學習如何安裝和配置Elasticsearch,瞭解其核心概念,如節點(Node)、集群(Cluster)、索引(Index)、文檔(Document)、映射(Mapping)和分片(Shard)。我們將通過實際示例,演示如何創建索引、添加文檔、執行基本的搜索查詢(如全文搜索、短語搜索、模糊搜索)以及如何理解搜索結果。 Logstash實戰: 本書將重點介紹Logstash的強大數據處理能力。您將學會如何配置Logstash的輸入(Input)、過濾器(Filter)和輸齣(Output)插件,以適應各種數據源(如文件、數據庫、網絡協議)和輸齣目標(如Elasticsearch、Kafka)。我們將通過豐富的案例,演示如何對原始日誌進行解析、字段提取、數據轉換(如日期格式化、IP地址解析、數據類型轉換)以及數據富化(如地理位置信息添加)。 Kibana可視化與探索: Kibana是ELK Stack的“臉麵”,它賦予瞭您直觀地探索和可視化海量數據的能力。本書將引導您熟悉Kibana的各個模塊,包括Discover(發現)用於實時數據探索,Visualize(可視化)用於創建各種圖錶(柱狀圖、摺綫圖、餅圖、地理地圖等),以及Dashboard(儀錶盤)用於整閤和展示多個可視化圖錶。您將學會如何構建精美的儀錶盤,以監控係統狀態、分析用戶行為、追蹤業務指標等。 搭建第一個ELK Stack: 結閤前述內容,本書將指導您完成一個完整的ELK Stack搭建過程。從服務器環境準備、各組件的安裝與配置,到實際采集、處理和展示日誌數據,您將親手搭建起一個功能完備的日誌分析係統。 第二部分:ELK Stack高級應用與實踐 Elasticsearch索引管理與優化: 隨著數據量的增長,索引的管理和性能優化變得至關重要。本書將深入探討Elasticsearch的索引生命周期管理(ILM),學習如何自動管理索引的創建、遷移和刪除。您還將瞭解分片策略、副本策略的優化,以及如何使用索引彆名(Index Aliases)進行平滑的數據遷移。 Logstash高級配置與性能調優: 對於復雜的數據處理場景,Logstash的配置需要更加精細。本書將介紹Logstash的流水綫(Pipeline)概念,以及如何通過配置多個流水綫來提高處理效率。同時,我們將深入探討Logstash的性能調優技巧,包括如何配置工作進程(Worker Processes)、緩衝區大小(Buffer Size)以及選擇高效的插件。 Kibana高級查詢與數據分析: Kibana的查詢功能遠不止基礎的搜索。本書將引導您掌握Kibana的KQL(Kibana Query Language)和Lucene查詢語法,學習如何構建復雜的過濾條件和聚閤查詢。您還將瞭解Kibana的Lens、TSVB(Time Series Visual Builder)等高級可視化工具,以及如何使用Canvas(畫布)創建交互式的報告。 ELK Stack的擴展與集成: 本書還將介紹如何將ELK Stack與其他係統集成,例如使用Beats(Filebeat, Metricbeat等)作為更輕量級的數據收集器,以及如何將ELK Stack與Kafka等消息隊列集成,構建更具彈性的數據管道。 安全加固與監控: 在生産環境中,ELK Stack的安全至關重要。本書將介紹如何配置Elasticsearch的安全特性(如用戶認證、權限控製),以及如何使用Kibana的監控功能來觀察ELK Stack的運行狀態,及時發現和解決潛在問題。 《深入理解Elasticsearch》 本書將帶領您超越錶麵的API操作,深入Elasticsearch的內部機製與設計哲學。您將理解“為什麼”Elasticsearch能夠以如此高效的方式進行檢索和分析,從而幫助您更好地設計數據模型、優化查詢性能,並解決實際生産環境中遇到的復雜問題。 第一部分:Elasticsearch核心原理與架構 Lucene基礎: Elasticsearch建立在Apache Lucene庫之上,因此,理解Lucene是深入理解Elasticsearch的關鍵。本書將從Lucene倒排索引(Inverted Index)的基本原理講起,深入剖析詞項(Term)、詞項嚮量(Term Vector)、文檔頻率(Document Frequency)、詞頻(Term Frequency)等概念。您將理解一個文檔是如何被索引,以及搜索引擎是如何通過倒排索引快速定位匹配的文檔的。 Elasticsearch的分布式架構: Elasticsearch作為一個分布式係統,其節點、集群、主節點(Master Node)、數據節點(Data Node)、協調節點(Coordinating Node)等角色的劃分至關重要。本書將詳細解析Elasticsearch的分布式協調機製,包括腦裂(Split Brain)問題的發生與規避,以及分片(Shard)和副本(Replica)在數據冗餘和高可用性中的作用。 數據模型與映射(Mapping): Elasticsearch的數據模型與傳統關係型數據庫有著顯著差異。本書將深入探討Elasticsearch的文檔結構、字段類型(如text, keyword, numeric, date, boolean)以及動態映射(Dynamic Mapping)和顯式映射(Explicit Mapping)的原理與最佳實踐。您將理解不同字段類型對搜索和聚閤性能的影響。 索引創建與寫入流程: 當您嚮Elasticsearch寫入文檔時,背後究竟發生瞭什麼?本書將詳細解析文檔寫入Elasticsearch的完整流程,包括客戶端請求的接收、路由到主分片、副本的分發、Translog(事務日誌)的寫入以及Segment(段)的生成與刷新(Refresh)和閤並(Merge)機製。 第二部分:Elasticsearch搜索與聚閤深度剖析 搜索API與查詢 DSL: 您將學習Elasticsearch強大的查詢 DSL(Domain Specific Language),掌握各種查詢類型(如match, term, range, bool, prefix, wildcard, regexp)的用法,以及它們是如何被翻譯成Lucene查詢的。本書將重點講解bool查詢的組閤邏輯,以及各種查詢子句(must, filter, should, must_not)的細微差彆。 相關性排序(Scoring): Elasticsearch的搜索結果是根據相關性得分排序的。本書將深入剖析TF-IDF(Term Frequency-Inverse Document Frequency)和BM25等經典的評分算法,以及Elasticsearch如何利用這些算法為搜索結果打分。您還將學習如何通過`function_score` API來自定義評分機製。 聚閤(Aggregations)詳解: Elasticsearch強大的聚閤功能是其在數據分析領域獨樹一幟的關鍵。本書將詳細介紹各種類型的聚閤,包括指標聚閤(Metrics Aggregations,如count, sum, avg, min, max)、桶聚閤(Bucket Aggregations,如terms, range, date_histogram, geo_distance)以及管道聚閤(Pipeline Aggregations)。您將學會如何構建復雜的聚閤查詢,以實現諸如用戶行為分析、銷售數據統計、日誌事件分組等高級分析任務。 搜索與聚閤的性能優化: 麵對海量數據,搜索和聚閤的性能直接影響用戶體驗。本書將從原理層麵剖析導緻性能瓶頸的常見原因,並提供行之有效的優化策略,包括查詢緩存(Query Cache)、請求緩存(Request Cache)、切片搜索(Search Sharding)的優化、以及如何利用Filter Context來避免不必要的評分計算。 Elasticsearch的內存模型與 JVM 調優: Elasticsearch運行在JVM之上,JVM的性能直接影響Elasticsearch的整體錶現。本書將簡要介紹Elasticsearch的內存模型,包括堆內存(Heap Memory)和堆外內存(Off-Heap Memory)的使用,並提供一些基本的JVM調優建議,幫助您更好地管理Elasticsearch的資源。 總結 通過閱讀這兩本圖書,您將不僅能夠熟練運用ELK Stack進行日常的數據分析和監控工作,更能深刻理解Elasticsearch底層的運行機製。這種深入的理解將使您在麵臨復雜的業務場景、性能瓶頸或架構設計時,能夠做齣更明智的決策,從而最大化Elastic Stack的價值,構建齣更穩定、高效、智能化的數據處理與分析係統。無論您是開發人員、運維工程師、數據分析師,還是對分布式係統和搜索技術充滿好奇的學習者,這兩本書都將為您提供無與倫比的指導與啓發。