求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

ELKStack權威指南檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋

來自 孔夫子網 的圖片

ELKStack權威指南》,饒琛琳 著,出版社: 機械工業出版社。

機械工業出版社成立於1950年,是建國後國家設立的第一家科技出版社,前身為科學技術出版社,1952年更名為機械工業出版社[1]。機械工業出版社(以下簡稱機工社)由機械工業信息研究院作為主辦單位,目前隸屬於國務院國資委[2]

內容簡介

ELK是Elasticsearch、Logstash、Kibana三個開源軟件的組合,是目前開源界流行的實時數據分析方案,成為實時日誌處理領域開源界的第壹選擇。然而,ELK也並不是實時數據分析界的靈丹妙藥,使用不恰當,反而會事倍功半。本書對ELK的原理進行了解剖,不僅分享了大量實戰案例和實現效果,而且分析了部分源代碼,使讀者不僅知其然還知其所以然。讀者可通過本書的學習,快速掌握實時日誌處理方法,並搭建符合自己需要的大數據分析系統。本書分為三大部分,第壹部分「Logstash」介紹Logstash的安裝與配置、場景示例、性能與測試、擴展方案、源碼解析、插件開發等,第二部分「Elasticsearch」介紹Elasticsearch的架構原理、數據接口用例、性能優化、測試和擴展方案、映射與模板的定製、監控方案等,第三部分「Kibana」介紹Kibana3和Kibana5的特點對比,Kibana的配置、案例與源代碼解析。

目錄

前 言

第一部分 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

第3章 場景示例 64

3.1 Nginx訪問日誌 64

3.1.1 grok處理方式 64

3.1.2 split處理方式 65

3.1.3 JSON格式 68

3.1.4 syslog方式發送 69

3.2 Nginx錯誤日誌 69

3.3 Postfix日誌 71

3.4 Ossec日誌 72

3.4.1 配置所有Ossec agent採用syslog輸出 72

3.4.2 配置Logstash 72

3.4.3 推薦Kibana儀錶盤 73

3.5 Windows系統日誌 73

3.5.1 採集端配置 73

3.5.2 接收解析端配置 75

3.6 Java日誌 77

3.6.1 Log4J配置 77

3.6.2 Logstash配置 78

3.6.3 異常堆棧測試驗證 78

3.6.4 JSON Event layout 79

3.7 MySQL慢查詢日誌 80

3.8 Docker日誌 82

3.8.1 記錄到主機磁盤 82

3.8.2 通過logspout收集 83

第4章 性能與監控 85

4.1 性能測試 85

4.1.1 配置示例 85

4.1.2 使用方式 86

4.1.3 額外的話 87

4.2 監控方案 87

4.2.1 logstash-input-heartbeat心跳檢測方式 88

4.2.2 JMX啟動參數方式 89

4.2.3 API方式 90

第5章 擴展方案 94

5.1 通過Redis隊列擴展 95

5.1.1 讀取Redis數據 95

5.1.2 採用list類型擴展Logstash 96

5.1.3 輸出到Redis 97

5.2 通過Kafka隊列擴展 98

5.2.1 Kafka基礎概念 99

5.2.2 Input配置 100

5.2.3 Output配置 101

5.2.4 性能 103

5.3 logstash-forwarder 103

5.3.1 Indexer端配置 104

5.3.2 Shipper端配置 104

5.3.3 AIX上的logstash-forwarder-java 106

5.4 Rsyslog 107

5.4.1 常用模塊介紹 107

5.4.2 與Logstash合作 109

5.4.3 Mmexternal模塊 109

5.5 Nxlog 112

5.6 Heka 114

5.7 Fluentd 115

5.7.1 配置示例 115

5.7.2 Fluentd插件 117

5.8 Message::Passing 117

第6章 Logstash源碼解析 119

6.1 Pipeline 120

6.2 Plugins 122

第7章 插件開發 125

7.1 插件格式 125

7.2 插件的關鍵方法 126

7.3 插件打包 127

7.4 Filter插件開發示例 128

7.4.1 mmdb數據庫的生成方法 129

7.4.2 LogStash::Filters::Mmdb實現 130

7.4.3 logstash-filter-mmdb打包 131

7.5 Input插件開發示例 132

7.5.1 FileWatch模塊原理 132

7.5.2 LogStash::Inputs::Utmp實現 133

7.6 Output插件開發示例 136

第8章 Beats 138

8.1 libbeat的通用配置 138

8.1.1 過濾器配置 138

8.1.2 輸出配置 139

8.1.3 shipper網絡配置 142

8.1.4 日誌配置 142

8.1.5 運行配置 142

8.2 Filebeat 142

8.2.1 安裝部署 143

8.2.2 配置 144

8.2.3 生成的可用字段 145

8.3 packetbeat抓包分析 145

8.3.1 安裝部署 146

8.3.2 配置示例 146

8.3.3 dashboard效果 147

8.3.4 Kibana 3拓撲圖 148

8.4 metricbeat 150

8.4.1 配置示例 152

8.4.2 各模塊輸出指標示例 152

8.4.3 採集Docker中的指標 164

8.5 winlogbeat 164

第二部分 Elasticsearch

第9章 架構原理 169

9.1 准實時索引的實現 169

9.1.1 動態更新的Lucene索引 169

9.1.2 利用磁盤緩存實現的准實時檢索 170

9.1.3 translog提供的磁盤同步控制 171

9.2 segment merge的影響 172

9.2.1 歸併線程配置 173

9.2.2 歸併策略 174

9.2.3 forcemerge接口 174

9.3 routing和replica的讀寫過程 174

9.3.1 路由計算 175

參考文獻