ELK Stack 權威指南, 2/e ELK Stack权威指南 第2版

饒琛琳

買這商品的人也買了...

商品描述

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

目錄大綱

前言
 

第一部分Logstash
第1章入門示例
  1.1 下載安裝
  1.2 Hello World
  1.3 配置語法
    1.3.1 語法
    1.3.2 命令行參數
    1.3.3 設置文件示例
  1.4 插件安裝
  1.5 長期運行方式
第2章插件配置
  2.1 輸入插件
    2.1.1 標準輸入
    2.1.2 文件輸入
    2.1.3 TCP輸入
    2.1.4 syslog輸入
    2.1.5 http_poller抓取
  2.2 編解碼配置
    2.2.1 JSON編解碼
    2.2.2 多行事件編碼
    2.2.3 網絡流編碼
    2.2.4 collectd輸入
  2.3 過濾器配置
    2.3.1 date時間處理
    2.3.2 grok正則捕獲
    2.3.3 dissect解析
    2.3.4 GeoIP地址查詢
    2.3.5 JSON編解碼
    2.3.6 key-value切分
    2.3.7 metrics數值統計
    2.3.8 mutate數據修改
    2.3.9 隨心所欲的Ruby處理
    2.3.10 split拆分事件
    2.3.11 交叉日誌合併
  2.4 輸出插件
    2.4.1 輸出到Elasticsearch
    2.4.2 發送email
    2.4.3 調用系統命令執行
    2.4.4 保存成文件
    2.4.5 報警發送到Nagios
    2.4.6 statsd
    2.4.7 標準輸出stdout
    2.4.8 TCP發送數據
    2.4.9 輸出到HDFS
第3章場景示例
  3.1 Nginx訪問日誌
    3.1.1 grok處理方式
    3.1.2 split處理方式
    3.1.3 JSON格式
    3.1.4 syslog方式發送
  3.2 Nginx錯誤日誌
  3.3 Postfix日誌
  3.4 Ossec日誌
    3.4.1 配置所有Ossec ag​​ent採用syslog輸出
    3.4.2 配置Logstash
    3.4.3 推薦Kibana儀錶盤
  3.5 Windows系統日誌
    3.5.1 採集端配置
    3.5.2 接收解析端配置
  3.6 Java日誌
    3.6.1 Log4J配置
    3.6.2 Logstash配置
    3.6.3 異常堆棧測試驗證
    3.6.4 JSON Event layout
  3.7 MySQL慢查詢日誌
  3.8 Docker日誌
    3.8.1 記錄到主機磁盤
    3.8.2 通過logspout收集
第4章性能與監控
  4.1 性能測試
    4.1.1 配置示例
    4.1.2 使用方式
    4.1.3 額外的話
  4.2 監控方案
    4.2.1 logstash-input-heartbeat心跳檢測方式
    4.2.2 JMX啟動參數方式
    4.2.3 API方式
第5章擴展方案
  5.1 通過Redis隊列擴展
    5.1.1 讀取Redis數據
    5.1.2 採用list類型擴展Logstash
    5.1.3 輸出到Redis
  5.2 通過Kafka隊列擴展
    5.2.1 Kafka基礎概念
    5.2.2 Input配置
    5.2.3 Output配置
    5.2.4 性能
  5.3 logstash-forwarder
    5.3.1 Indexer端配置
    5.3.2 Shipper端配置
    5.3.3 AIX上的logstash-forwarder-java
  5.4 Rsyslog
    5.4.1 常用模塊介紹
    5.4.2 與Logstash合作
    5.4.3 Mmexternal模塊
  5.5 Nxlog
  5.6 Heka
  5.7 Fluentd
    5.7.1 配置示例
    5.7.2 Fluentd插件
  5.8 Message::Passing
第6章Logstash源碼解析
  6.1 Pipeline
  6.2 Plugins
第7章插件開發
  7.1 插件格式
  7.2 插件的關鍵方法
  7.3 插件打包
  7.4 Filter插件開發示例
    7.4.1 mmdb數據庫的生成方法
    7.4.2 LogStash::Filters::Mmdb實現
    7.4.3 logstash-filter-mmdb打包
  7.5 Input插件開發示例
    7.5.1 FileWatch模塊原理
    7.5.2 LogStash::Inputs::Utmp實現
  7.6 Output插件開發示例
第8章Beats
  8.1 libbeat的通用配置
    8.1.1 過濾器配置
    8.1.2 輸出配置
    8.1.3 shipper網絡配置
    8.1.4 日誌配置
    8.1.5 運行配置
  8.2 Filebeat
    8.2.1 安裝部署
    8.2.2 配置
    8.2.3 生成的可用字段
  8.3 packetbeat抓包分析
    8.3.1 安裝部署
    8.3.2 配置示例
    8.3.3 dashboard效果
    8.3.4 Kibana 3拓撲圖
  8.4 metricbeat
    8.4.1 配置示例
    8.4.2 各模塊輸出指標示例
    8.4.3 採集Docker中的指標
  8.5 winlogbeat

第二部分Elasticsearch

第9章架構原理
  9.1 準實時索引的實現
    9.1.1 動態更新的Lucene索引
    9.1.2 利用磁盤緩存實現的準實時檢索
    9.1.3 translog提供的磁盤同步控制
  9.2 segment merge的影響
    9.2.1 歸併線程配置
    9.2.2 歸併策略
    9.2.3 forcemerge接口
  9.3 routing和replica的讀寫過程
    9.3.1 路由計算
 第10章數據接口用例
第11章性能優化
第12章測試和擴展方案
第13章映射與模板的定制
第14章監控方案
第15章Elasticsearch在運維監控領域的其他應用

第三部分Kibana

第16章Kibana的產品對比
第17章Kibana 5
第18章Kibana 5 源碼解析
第19章Kibana插件開發示例