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的官方文件對此引數的描述如下:
下面說一下設定該引數的具體步驟,很簡單隻有兩步:
- 開啟檔案/etc/sysctl.conf,新增下面一行內容:
vm.max_map_count=655360
2. 載入sysctl配置,執行命令:sysctl -p
引數設定完成,咱們可以開始實戰了!
建立容器
- 建立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服務;