編輯推薦
本書著重介紹關於Elastic Stack的基本知識,帶領讀者深入瞭解Elastic Stack的實際應用,通過對數據搜索、日誌挖掘與結果可視化展示等相關功能的介紹和實戰,引導讀者掌握相關的大數據搜索、日誌分析和可視化技術。本書還詳細介紹瞭X-Pack和Beats組件,展示瞭在Elastic Stack中的一些實踐。
內容簡介
對大數據的搜索、挖掘、可視化以及集群管理,在當今的“互聯網+”時代是很有必要的。本書的分布式大數據搜索、日誌挖掘、可視化、集群監控與管理等方案是基於Elastic Stack 5而提齣的,它能有效應對海量大數據所帶來的分布式數據存儲與處理、全文檢索、日誌挖掘、可視化、集群管理與性能監控等問題。構建在全文檢索開源軟件Lucene之上的Elasticsearch,不僅能對海量規模的數據完成分布式索引與檢索,還能提供數據聚閤分析;Logstash能有效處理來源於各種數據源的日誌信息;Kibana是為Elasticsearch提供數據分析的Web接口,可使用它對數據進行高效的搜索、可視化、分析等操作;X�睵ack監控組件可通過Kibana監控集群的狀態;Beats是采集係統監控數據的代理。瞭解基於Elastic Stack 5的各相關組件並掌握它們的基本使用方法和技巧,對於大數據搜索與挖掘及管理是很有必要的。
和第1版、第2版相比,本書力求反映基於Elastic Stack 5架構的*新成果,內容新穎,強調實踐。本書可為高等學校相關專業(如計算機科學與技術、軟件工程、物聯網、信息管理與信息係統、數據科學與大數據技術)學生的學習和科研工作提供幫助,同時對於從事大數據搜索與挖掘、日誌分析、信息可視化、集群管理與性能監控的工程技術人員和希望瞭解網絡信息檢索技術的人員也具有較高的參考價值和工程應用價值。
作者簡介
高凱,本書主編。教授,博士畢業於上海交通大學計算機應用技術專業,省級重點學科“計算機軟件與理論”中“信息檢索與雲計算”方嚮學術帶頭人,研究生導師,中國計算機學會高級會員,中國計算機學會計算機應用專委會常委,International Journal of Computer Applications in Technology副主編;主要研究方嚮為大數據搜索與挖掘、自然語言處理、網絡信息檢索、社會計算等;近幾年齣版瞭《信息檢索與智能處理》、《大數據搜索與挖掘》、《網絡信息檢索技術及搜索引擎係統開發》等學術專著及多部規劃教材;在Expert Systems With Applications、International Journal on Intelligent Information and Database System、International Journal on Modelling, Identification and Control、《中文信息學報》、《電子學報》、《小型微型計算機係統》等學術期刊以及在PAKDD等國際學術會議上發錶學術論文五十餘篇;主持及參與國傢自然科學基金課題、省級科技支撐計劃課題、省級自然科學基金課題等多項,申請計算機軟件著作權登記十餘項。
目錄
第1章概述1
1.1Elasticsearch概述3
1.1.1Elasticsearch的安裝與簡單配置4
1.1.2Elasticsearch API的簡單使用方式7
1.2Logstash7
1.3Kibana8
1.4其他8
1.5擴展知識與閱讀9
1.6本章小結10
第2章文檔索引及管理11
2.1文檔索引概述11
2.2Head: Elasticsearch的數據管理工具13
2.3建立索引16
2.4通過映像mappings配置索引20
2.4.1在索引中使用映像21
2.4.2管理/配置映像22
2.4.3獲取映像信息22
2.4.4刪除映像24
2.5管理索引文件24
2.5.1打開、關閉、檢測、刪除索引文件24
2.5.2清空索引緩存25
2.5.3刷新索引數據25
2.5.4優化索引數據26
2.5.5Flush操作26[1][2][1][3]2.6設置中文分析器26
2.7對文檔的其他操作29
2.7.1獲取指定的文檔信息29
2.7.2刪除文檔中的信息31
2.7.3數據更新31
2.7.4基於POST方式批量獲取文檔34
2.8實例36
2.9擴展知識與閱讀40
2.10本章小結41
第3章信息檢索與聚閤42
3.1實驗數據集描述43
3.2基本檢索44
3.2.1檢索方式44
3.2.2query查詢45
3.2.3from / size查詢45
3.2.4查詢結果排序46
3.2.5高亮搜索詞48
3.2.6查詢模闆50
3.3檢索進階50
3.3.1全文檢索51
3.3.2詞項檢索54
3.3.3復閤查詢58
3.3.4跨度查詢60
3.3.5特殊查詢63
3.3.6腳本script64
3.4聚閤67
3.4.1metrics aggregations68
3.4.2bucket aggregations72
3.4.3pipeline aggregations81
3.4.4matrix aggregations85
3.5實例87
3.6擴展知識與閱讀92
3.7本章小結93
第4章麵嚮Java的Elasticsearch Client部分功能實現94
4.1Elasticsearch節點實例化94
4.1.1通過Maven添加Elasticsearch依賴94
4.1.2初始化TransportClient96
4.2索引數據98
4.2.1準備JSON數據98
4.2.2索引JSON數據100
4.3對索引文檔的操作101
4.3.1獲取索引文檔數據101
4.3.2刪除索引文檔104
4.3.3更新索引文檔105
4.3.4批量操作索引文件105
4.4信息檢索107
4.4.1概述107
4.4.2MultiSearch109
4.4.3Search template110
4.4.4Query DSL概述110
4.4.5matchAllQuery111
4.4.6全文檢索的部分方法112
4.4.7詞項檢索的部分方法115
4.4.8復閤查詢的部分方法119
4.4.9跨度查詢的部分方法121
4.4.10特殊查詢124
4.5聚閤126
4.5.1Metrics聚閤126
4.5.2Bucket聚閤130
4.6對檢索結果的進一步處理134
4.6.1控製每頁的顯示數量及顯示排序依據134
4.6.2基於scroll的檢索結果及其分頁135
4.7實例137
4.7.1在Elasticsearch中建立索引137
4.7.2連接Elasticsearch138
4.7.3信息采集與索引構建139
4.7.4搜索模塊的實現141
4.7.5推薦模塊的實現142
4.7.6聚閤模塊的實現143
4.8擴展知識與閱讀145
4.9本章小結145
第5章Elasticsearch配置與集群管理146
5.1Elasticsearch部分基本配置及其說明146
5.2索引和查詢效率的優化149
5.3監控集群狀態150
5.4控製索引分片與副本分配152
5.5集群管理154
5.6擴展知識與閱讀155
5.7本章小結156
第6章基於Logstash的日誌處理157
6.1概述158
6.2Input: 處理輸入的日誌數據160
6.2.1處理基於file方式輸入的日誌信息161
6.2.2處理基於generator産生的日誌信息162
6.2.3處理基於log4j的日誌信息163
6.2.4處理基於redis的日誌信息165
6.2.5處理基於stdin方式輸入的信息168
6.2.6處理基於TCP傳輸的日誌數據169
6.2.7處理基於UDP傳輸的日誌數據173
6.3codecs: 格式化日誌數據174
6.3.1JSON格式175
6.3.2rubydebug格式177
6.3.3plain格式177
6.4基於filter的日誌處理與轉換178
6.4.1JSON filter178
6.4.2grok filter180
6.4.3kv filter182
6.5output: 輸齣日誌數據184
6.5.1將處理後的日誌輸齣到Elasticsearch中185
6.5.2將處理後的日誌輸齣至文件中186
6.5.3將處理後的部分日誌輸齣到csv格式的文件中187
6.5.4將處理後的日誌輸齣到redis中189
6.5.5將處理後的部分日誌通過UDP協議輸齣190
6.5.6將處理後的部分日誌通過TCP協議輸齣192
6.5.7將收集到的日誌信息傳輸到自定義的HTTP接口中195
6.6擴展知識與閱讀196
6.7本章小結197
第7章基於Kibana的數據分析可視化198
7.1Kibana概述199
7.2安裝Kibana199
7.3使用Management管理配置200
7.3.1添加index pattern200
7.3.2高級設置202
7.3.3管理已保存的檢索、可視化和儀錶闆205
7.4使用Discover執行查詢206
7.4.1設置時間過濾器206
7.4.2在index pattern中執行搜索207
7.4.3字段過濾208
7.4.4查看文檔數據210
7.5使用Visualize創建統計圖錶211
7.6使用Dashboard創建動態儀錶闆214
7.6.1創建新的動態儀錶闆215
7.6.2打開已保存的動態儀錶闆215
7.6.3分享動態儀錶闆216
7.7使用Timelion創建時間綫216
7.8使用Dev Tools執行命令行218
7.8.1在Console中執行命令218
7.8.2Console的快捷鍵220
7.8.3Console的配置221
7.9網站性能監控可視化應用的設計與實現221
7.9.1概述222
7.9.2使用Visualize實現可視化222
7.9.3使用Dashboard整閤可視化結果225
7.10擴展知識與閱讀227
7.11本章小結227
第8章基於X�睵ack的係統運行監控229
8.1X�睵ack概述229
8.2安裝X�睵ack230
8.3Security插件與安全性231
8.3.1身份驗證機製與用戶管理231
8.3.2匿名訪問233
8.3.3基於域的用戶認證234
8.3.4基於角色的訪問權限配置236
8.3.5IP過濾238
8.3.6帶有身份認證的TransportClient240
8.3.7帶有身份認證的RESTful命令243
8.4使用Monitoring監控係統運行狀態243
8.4.1係統運行狀態監控243
8.4.2配置Monitoring247
8.4.3搭建獨立的Monitoring集群248
8.5Alerting插件與異常事件警報250
8.5.1通過RESTful方式設置監視器250
8.5.2通過Java程序設置監視器254
8.6Reporting與報告生成256
8.6.1在程序中生成報告256
8.6.2通過監視器自動生成報告257
8.7使用Graph探索數據關聯259
8.8擴展知識與閱讀261
8.9本章小結261
第9章基於Beats的數據解析傳輸262
9.1基於Packetbeat的網絡數據包傳輸263
9.1.1概述263
9.1.2安裝263
9.1.3配置264
9.1.4加載索引模闆266
9.1.5啓動和關閉267
9.1.6使用Kibana進行展示268
9.2基於Filebeat的日誌傳輸269
9.2.1概述269
9.2.2安裝和配置269
9.2.3啓動和關閉272
9.2.4使用Kibana進行展示272
9.3基於Metricbeat的係統指標數據傳輸273
9.3.1概述273
9.3.2安裝和配置274
9.3.3啓動和關閉275
9.3.4使用Kibana進行展示276
9.4基於Winlogbeat的Windows事件日誌數據傳輸277
9.4.1概述277
9.4.2安裝278
9.4.3配置279
9.4.4啓動和關閉282
9.4.5使用Kibana進行展示283
9.5擴展知識與閱讀284
9.6本章小結285
第10章網絡信息檢索與分析實踐1286
10.1信息采集286
10.2基於Python的信息檢索及Web端設計291
10.2.1安裝Python及Django291
10.2.2安裝Elasticsearch的Python插件292
10.2.3Web頁麵設計293
10.3基於Logstash的日誌處理296
10.3.1安裝和配置Nginx297
10.3.2設計麵嚮日誌文件的pattern297
10.3.3在Logstash中進行相關配置298
10.4基於Kibana的日誌分析結果可視化設計與實現299
10.4.1圖錶1: 狀態碼走勢分析300
10.4.2圖錶2: 查詢詞分析302
10.4.3圖錶3: 分析各狀態碼隨時間的變遷302
10.4.4集成圖錶304
10.5擴展知識與閱讀304
10.6本章小結305
第11章網絡信息檢索與分析實踐2306
11.1麵嚮動態網站的信息采集307
11.1.1軟件準備307
11.1.2瀏覽器驅動程序準備307
11.1.3創建索引和映像308
11.1.4導入依賴309
11.1.5數據采集310
11.2基於Spring MVC的信息檢索及Web程序設計317
11.2.1創建和配置Spring MVC項目317
11.2.2前端頁麵設計319
11.2.3後端控製器類324
11.3基於Logstash的日誌處理329
11.4基於Beats的數據傳輸330
11.5基於Kibana的數據可視化331
11.5.1可視化索引文件中的信息331
11.5.2對Logstash、Beats的可視化展示333
11.6基於X�睵ack的係統監控335
11.7擴展知識與閱讀337
11.8本章小結337
參考文獻339
精彩書摘
Chapter 5第5章Elasticsearch配置與集群管理“Elasticsearch comes with reasonable defaults for most settings. Before you set out to tweak and tune the configuration,make sure you understand what are you trying to accomplish and the consequences. The primary way of configuring a node is via the elasticsearch.yml file. This template lists the most important settings you may want to configure for a production cluster.”——elasticsearch.yml
基於Elasticsearch,可以完成很多和信息存儲、檢索等相關的問題。本章將對Elasticsearch的配置、集群管理等進行說明,並對提高索引和查詢效率的策略進行簡述。通過對本章的學習,能達到更好地配置和使用Elasticsearch的目的。
5.1Elasticsearch部分基本配置及其說明
Elasticsearch的大多數配置信息位於{es_home}/config/elasticsearch.yml文件中,所有配置都可使用環境變量。另一個是日誌配置文件{es_home}/config/log4j2.properties,它對日誌進行配置,其設置按普通log4j2配置文件來設置即可。
Elasticsearch.yml負責設置服務器的默認狀態,Elasticsearch的大多數配置在該配置文件中完成。參考文獻[Open,2014a][子猴博客,2014],本節給齣針對elasticsearch.yml的部分配置設置信息,包括:
(1) 集群名稱cluster.name: 例如“cluster.name: elasticsearch”。設置好以後,會自動發現在同一網段下的節點,如果在同一網段下有多個集群,可用這個屬性來區分不同的集群。
(2) 節點名稱node.name: Elasticsearch啓動時會自動創建節點名稱,但也可在node.name中配置,例如“node.name: "Franz Kafka"”。指定節點名稱有助於利用API訪問具體的節點。雖然默認的集群啓動時會給每個節點初始化一個名稱,但仍然建議在這裏手動設置節點名稱。
(3) 節點是否為master主節點: 每個節點都可被配置成為主節點,默認值為true,如“node.master: true”。在node.master: true中進行設置,目的是指定該節點是否有資格被選舉成為node,默認集群中的第一颱機器為master,如果這颱機器宕機就會重新選舉master。
[1][2][1][3](4) 設置節點是否存儲數據: 默認值為true,即設置node.data的值為“node.data: true”。如果希望節點隻是一個master但不存儲數據,則應當設置為代碼段5.1所示的屬性(注: 的#標記後的文字是注釋說明)。#代碼段5.1: 設置節點是master但不存儲數據
node.master: true
node.data: false
如果希望節點隻存儲數據但不是一個master,則應當設置為代碼段5.2所示的屬性。#代碼段5.2: 設置節點不作為master但存儲數據
node.master: false
node.data: true
如果既不希望該節點為一個master也不想它存儲數據,則應該設置為代碼段5.3所示的屬性。對部分相關配置的說明如下:#代碼段5.3: 設置節點既不是master也不存儲數據
node.master: false
node.data: false
(1
大數據搜索與挖掘及可視化管理方案(第3版) 下載 mobi epub pdf txt 電子書