《ELKStack權威指南》是2017年5月1日機械工業出版社出版的圖書,作者是饒琛琳。
基本介紹
- 書名:ELKStack權威指南
- 作者:饒琛琳
- 出版社:機械工業出版社
- ISBN:9787111563297
內容簡介,圖書目錄,
內容簡介
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