通過騰訊雲日誌服務收集TKE日誌

2022-09-14 23:27:14 字數 2668 閱讀 3642

在2年前的kubernetes1.12版本中,使用了efk的方案來收集日誌,那時候不管是程式還是nginx日誌都沒有格式化,本次專案主要為遊戲的官網專案,分為前端和後端,主要使用lnmp架構,所以本次要收集的日誌就是nginx和php的日誌,在kubernetes1.12實戰中,nginx日誌沒有配置為json,導致寫了大量的日誌採集規則,在今天的tke1.18中,nginx將格式化為json,這樣更容易維護以及採集。

日誌採集功能需要為每個集群手動開啟並配置採集規則。日誌採集功能開啟後,日誌採集 agent 會在集群內以 daemonset 的形式執行,並根據使用者通過日誌採集規則配置的採集源、cls 日誌主題和日誌解析方式,從採集源進行日誌採集,將日誌內容傳送到 cls 並儲存。可根據以下操作開啟日誌採集功能:

請在開啟前保證集群節點上有足夠資源。開啟日誌採集功能會占用您集群的部分資源。

若使用日誌採集功能,請確認 kubernetes 集群內節點能夠訪問日誌服務 cls。且以下日誌採集功能僅支援 kubernetes 1.10 及以上版本集群。

日誌採集 agent:tke 用於採集日誌資訊的 agent,採用 loglistener,在集群內以 daemonset 的方式執行。

日誌規則:使用者可以使用日誌規則指定日誌的採集源、日誌主題、日誌解析方式和配置過濾器。

日誌源:包含指定容器標準輸出、容器內檔案以及節點檔案。

消費端:使用者選擇日誌服務 cls 的日誌集和日誌主題作為消費端。

提取模式:日誌採集 agent 支援將採集到的日誌以單行文字、json、分隔符、多行文字和完全正則的形式傳送至使用者指定的日誌主題。

過濾器:開啟過濾器後可以根據使用者指定的規則採集部分日誌,key 支援完全匹配,過濾規則支援正則匹配,如僅採集 errorcode = 404 的日誌。

1.登入容器服務控制台,選擇左側導航欄中的集群運維>功能管理

2.在「功能管理」頁面上方選擇地域,單擊需要開啟日誌採集的集群右側的設定。如下圖所示:

3.在「設定功能」頁面,單擊日誌採集編輯,開啟日誌採集後確認。如下圖所示:

1.登入容器服務控制台,選擇左側導航欄中的集群運維>日誌規則

2.在「日誌採集」頁面上方選擇地域和需要配置日誌採集規則的集群,單擊新建。如下圖所示:

3.在「新建日誌採集規則」頁面中,選擇採集型別,並配置日誌源。目前採集型別支援容器標準輸出容器檔案路徑節點檔案路徑

說明:

對於容器的標準輸出及容器內檔案(非 hostpath 掛載),除了原始的日誌內容, 還會帶上容器或 kubernetes 相關的元資料(例如:產生日誌的容器 id)一起上報到 cls,方便使用者檢視日誌時追溯**或根據容器標識、特徵(例如:容器名、labels)進行檢索。

欄位名

含義

container_id

日誌所屬的容器 id。

container_name

日誌所屬的容器名稱。

image_name

日誌所屬容器的映象名稱 ip。

namespace

日誌所屬 pod 的 namespace。

pod_uid

日誌所屬 pod 的 uid。

pod_name

日誌所屬 pod 的名字。

pod_lable_

4.配置日誌服務 cls 為消費端。選擇日誌集和相應的日誌主題,可以選擇新建和已有日誌主題。如下圖所示:

注意:

注意:乙個日誌主題目前僅支援乙個採集配置,請保證選用該日誌主題的所有容器的日誌都可以接受採用所選的日誌解析方式。若在同一日誌主題下新建了不同的採集配置,舊的採集配置會被覆蓋。

6.根據需求開啟過濾器並配置規則,並單擊完成,完成建立。如下圖所示:

(這裡配置的是不符合日誌採集格式的採集出來用什麼標識)

參考文件:

logstash通過tcp收集日誌

1.修改配置檔案 vim etc logstash conf.d tcp.conf input output 2.檢測配置檔案語法和啟動 logstash f etc logstash conf.d tcp.conf t logstash f etc logstash conf.d tcp.conf...

日誌收集列印服務

服務的生命週期大於或等於所包含的執行緒的生命週期,一定要考慮執行緒的關閉導致的結果。class logwriter catch interruptedexception e public void start public void log string msg 沒有完備的執行緒退出關閉機制,可能導...

firewall騰訊雲伺服器通過公網ip連線不上了

1.有可能是你自己安裝了linux機器上的防火牆,禁止了ssh連線,特別是當你為了安全考慮,在裝防火牆之前把ssh連線口給修改了,然後安裝修改了firewall和iptables防火牆,卻沒有修改你的iptables,把新的ssh埠加進來。可以用vnc方式登陸 因為防火牆安裝後,埠22還是預設開啟的...