什麼是 ELK?

ELK 介紹

ELK 介紹

  • 什麼是 ELK?
  • ELK 用在哪裡 ?
  • Elasticsearch Cluster 介紹
  • Kibana 演示

ELK 安裝與設定

  • 手動安裝
  • logstash 設定 (grok)
  • docker 版安裝與使用方法
  • ES Cluster 安裝

ELK 使用案例

  • 系統效能監控
  • 應用程式除錯監控
  • 網路資安監控
  • 客服也能用

ELK 程式設計

  • Dev Tools
  • curl
  • python
  • Timelion

課程總覽

#DevOps = ~CA(L)MS

C(ulture) - 文化

A(utomation) - 自動化

L(ean) - 敏捷

M(etric) - 監控

S(haring) - 分享 

M(onitoring & Measuring)

- 監控與量測

  • Metric - CPU, Memory, Disk, Networking
  • Logs - Application Logs, System Logs...
  • SNMP - devices, switches...
  • Security - authd.log, auth.log, fail2ban.log
  • IoT - any data format with timestamps

傳統的 monitoring 工具

傳統的 website 架構

傳統的 website 軟體

現在的 website 架構

現在的 website 軟體

未來的 docker 世界

ELK = E(lasticsearch)

+ L(ogstash)

+ K(ibana)    

<- this is an

elk as well    

2012 年開始 Elasticsearch

漸漸被廣泛使用

3 年前開始 Elasticsearch

變成首選

7 年後的今天 Elasticsearch

遙遙領先 

ELK 用在哪裡 ?

初期

  • 開發者除錯
  • 全文檢索
  • 大數據資料收集

現在

  • 資安監控
  • AI 資料來源與分析
  • logs 資料整合
  • IoT 資料視覺化
  • APM 系統效能監測

未來

  • ???
  • 功能太強, 用途太廣, 實在無法預期還能怎麼用

以開發者除錯為例

 開發團隊這樣用 ELK

 docker 版 ELK 這樣用

用 docker

大量部署

ELK 最簡單的安裝架構

... 多台

ELK 最簡單的安裝架構

... 多台

以 IIS Web Server 為例

 

ELK log 的資料流

Redis 當 buffer

logstash

redis

Logstash config

logstash config 檔的位置

/opt/logstash/bin/logstash -f turboteam-iislog-cell.conf
/opt/logstash/bin/logstash -f turboteam-iislog-cell.conf --configtest

Configuration OK

Logstash config 範例

Elasticsearch Cluster 架構

  • indexing

  • 全文檢索

  • 查詢主機

  • 分散式資料庫

  • cluster 架構

  • 自動 shards

  • 自動 replicas

  • REST API

4 nodes 的實體架構

資料複製與 sharding

elasitcsearch 設定檔

修改 /etc/elasticsearch/elasticsearch.yml

 

sudo service elasticsearch restart

Elasticsearch Plugins

- HQ, head, BigDesk, SQL ...

安裝 plugin 指令:

cd /usr/share/elasticsearch

 

sudo bin/plugin install royrusso/elasticsearch-HQ

sudo bin/plugin install mobz/elasticsearch-head

sudo bin/plugin install lukas-vlcek/bigdesk

 

http://10.1.100.121:9200/_plugin/hq

http://10.1.100.121:9200/_plugin/head/

Kibana 做資料視覺化的 GUI

  • Web GUI

  • 資料視覺化

  • auto refresh

  • 容易查詢

  • 容易編輯

  • Dashboard

  • 輸出入 JSON

  • Plugins

Dashboard

自己做自己喜歡的畫面

Q & A

ELK 介紹

By Ming-der Wang

ELK 介紹

  • 1,202