iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 4
0
  • 目錄
    • Introduce and analysis
    • Cluster level ELK
    • Sidecar mode
    • @ Integrate log collecting component into an app @

好的鏡頭交還給棚內主播
今天要來談談怎麼進行app-level的log收集

基本上app level的就是將logstash, filebeat等套件直接安裝到app裡面, 所以可以直接把log從app送到Elastic Search。

比如在JAVA Spring Boot中我們會寫一個logback-spring.xml去規定log format以及目標server, 並且在application.properties or application.yml指定目標server。

我自己在專案上的做法是在每個app設定format,然後在Pod裡面加filebeat去讀取log file,再送到elastic search, 比較好集中管理log。

接下來我們直接在cluster上起一個ELK吧!

首先建立一份List, 這份List包含了elastic search以及UI component - kibana

唯一要注意的地方有三處:


(這邊要不要改端看你host下ifconfig找到的網卡有沒有site這張,我是沒有,所以照預設的設定會失敗, ref: 這裏)

然後創建一個獨立的namespace:

接著大膽的apply:

下指令看看是否有pod部署失敗:

如果有失敗的話可以利用kubectl logs細查失敗的原因為何:

可以看到因為上面的network沒改,找不到_site_:

正常啟動的話會看到log一直進來:

接著要看到的是service的部分, 我們在這裡用NodePort的方式將elastic search的API以及kibana的UI介面暴露出來。

請注意: 不要在線上環境使用NodePort的方式去暴露你的服務,否則security可能會很火

透過查看services去查看是哪個port可以找到kibana UI

如果你像我一樣用AWS的Instances, 請記得上去設定security group的inbound rules, 不然還是看不到

看到這個就成功啦!

下一篇來談談除了log之外, 開發時可能會需要的實用工具。

Reference

如何建立ELK:

  1. https://www.cnblogs.com/cocowool/p/deploy_elk_and_collect_logs_via_filebeat.html
  2. https://cloud.tencent.com/developer/article/1343712

network issue:
https://github.com/pires/kubernetes-elasticsearch-cluster/issues/64


上一篇
Oh My Logs ! 談談如何在K8s中收集logs - 3
下一篇
Oh My Helm ! 部署應用的神兵利器 - 1
系列文
其實我真的沒想過要利用夾縫中求生存的 30 天K8s可以怎麼用12

尚未有邦友留言

立即登入留言