1. 程式人生 > >Docker下ELK三部曲之一:極速體驗

Docker下ELK三部曲之一:極速體驗

《Docker下ELK三部曲》一共三篇文章,為您揭示如何快速搭建ELK環境,以及如何將web應用的日誌上報到ELK用,三部曲內容簡述如下:
1. 極速體驗ELK服務,即本章的內容;
2. 細說技術詳情,例如集成了filebeat服務的映象如何製作,web應用如何與filebeat服務整合在一個映象等;
3. 在kubernetes環境搭建ELK服務和web服務,模擬一個應用部署在多個server上,都在往ELK上報日誌;

真實Linux環境下如何搭建ELK

如果您想了解在真實的Linux環境如何搭建ELK,可以參考《CentOS7搭建ELK-6.2.3版本》,在這裡您也可以瞭解ELK搭建時的細節;

實戰環境

本次實戰相關的環境資訊如下所示:
1. 作業系統:Ubuntu 16.04.3 LTS
2. docker:1.12.6, build 78d1802
3. docker-compose:1.20.1, build 5d8c71b

請務必使用Linux環境,如果您的電腦是windows,建議通過VM虛擬機器建立一個Linux系統來實戰;

系統引數設定

實戰前需要修改linux的系統引數,否則啟動ELK容器會失敗,ELK的官方文件對此引數的描述如下:

這裡寫圖片描述

下面說一下設定該引數的具體步驟,很簡單隻有兩步:

  1. 開啟檔案/etc/sysctl.conf,新增下面一行內容:
vm.max_map_count=655360


2. 載入sysctl配置,執行命令:sysctl -p

引數設定完成,咱們可以開始實戰了!

建立容器

  1. 建立docker-compose.yml檔案,內容如下:
version: '2'
services:
  elk:
    image: sebp/elk:622
    ports:
      - "5601:5601"
    restart: always
  webapp:
    image: bolingcavalry/elkdemo:0.0.1-SNAPSHOT
    depends_on:
      - elk
links: - elk:elkhost ports: - "18080:8080" restart: always


2. 在docker-compose.yml所在的目錄下,執行命令docker-compose up -d,此時會去hub.docker.com網站下載兩個映象檔案,請您稍作等待,下載完成後容器啟動;
3. 假設當前linux電腦的IP是192.168.31.89,在瀏覽器輸入,看見Kibana啟動成功了,如下圖:
這裡寫圖片描述
4. 點選左上角的Discover按鈕,如下圖所示,提示建立“index pattern”:
這裡寫圖片描述
5. 如下圖,紅框中輸入filebeat-*,再點選Next step:
這裡寫圖片描述
6. 如下圖,下拉框中選擇@timestamp,再點選Create index pattern
這裡寫圖片描述
7. 在彈出的頁面上,再次點選左上角的Discover按鈕,然後點選右上角的Last 15 minutes,如下圖:
這裡寫圖片描述
8. 此時頁面上會顯示最近15分鐘內的日誌,如果最近15分鐘內沒有任何日誌上報,您也可以點選下圖紅框中的Today按鈕,展示今天的所有日誌:
這裡寫圖片描述
9. 展示的查詢結果如下圖所示,紅框中的內容就是日誌的原始資訊:
這裡寫圖片描述

驗證業務日誌

經過上面的操作已經能查到web應用的啟動日誌了,接下來我們訪問web應用提供的http介面,檢視實時生成並上報的業務日誌;
1. 假設當前linux電腦的IP是192.168.31.89,在瀏覽器輸入,可以看到瀏覽器會返回一些響應資訊,請多按幾次“F5”按鈕重新整理這個頁面;
2. 去Kibana頁面已經可以查到剛剛產生的業務日誌了,如下圖,紅框1表示剛才那個時間點的日誌量,紅框2是日誌原始內容,與請求url中的引數是對應的:
這裡寫圖片描述

至此,我們的極速體驗已經完成了,通過一個docker-compose.yml檔案就搭建了ELK以及能上報日誌的web應用,相比在真實linux環境下搭建系統,本章的操作簡單了很多,接下來的章節,我們一起來關注這次極速體驗背後的技術細節,學會如何將自己的web應用也能如此方便的用上ELK服務;