通过腾讯云日志服务收集TKE日志
在2年前的kubernetes1.12版本中,使用了EFK的方案來收集日志,那時(shí)候不管是程序還是nginx日志都沒有格式化,本次項(xiàng)目主要為游戲的官網(wǎng)項(xiàng)目,分為前端和后端,主要使用LNMP架構(gòu),所以本次要收集的日志就是nginx和php的日志,在kubernetes1.12實(shí)戰(zhàn)中,nginx日志沒有配置為json,導(dǎo)致寫了大量的日志采集規(guī)則,在今天的TKE1.18中,nginx將格式化為json,這樣更容易維護(hù)以及采集。
1.操作場景
日志采集功能是容器服務(wù) TKE 為用戶提供的集群內(nèi)日志采集工具,可以將集群內(nèi)服務(wù)或集群節(jié)點(diǎn)特定路徑文件的日志發(fā)送至騰訊云日志服務(wù)(CLS)。日志采集功能適用于需要對(duì) Kubernetes 集群內(nèi)服務(wù)日志進(jìn)行存儲(chǔ)和分析的用戶。
日志采集功能需要為每個(gè)集群手動(dòng)開啟并配置采集規(guī)則。日志采集功能開啟后,日志采集 Agent 會(huì)在集群內(nèi)以 DaemonSet 的形式運(yùn)行,并根據(jù)用戶通過日志采集規(guī)則配置的采集源、CLS 日志主題和日志解析方式,從采集源進(jìn)行日志采集,將日志內(nèi)容發(fā)送到 CLS 并存儲(chǔ)。可根據(jù)以下操作開啟日志采集功能:
開啟日志采集
采集容器標(biāo)準(zhǔn)輸出日志
采集容器文件日志
采集節(jié)點(diǎn)文件日志
2.前提條件
請(qǐng)?jiān)陂_啟前保證集群節(jié)點(diǎn)上有足夠資源。開啟日志采集功能會(huì)占用您集群的部分資源。
占用 CPU 資源:0.11 - 1.1核,日志量過大時(shí)可根據(jù)情況自行調(diào)大。
占用內(nèi)存資源:24 - 560MB,日志量過大時(shí)可根據(jù)情況自行調(diào)大。
日志長度限制:單條512K,如超過會(huì)截?cái)唷?/p>
若使用日志采集功能,請(qǐng)確認(rèn) Kubernetes 集群內(nèi)節(jié)點(diǎn)能夠訪問日志服務(wù) CLS。且以下日志采集功能僅支持 Kubernetes 1.10 及以上版本集群。
3.概念
日志采集 Agent:TKE 用于采集日志信息的 Agent,采用 Loglistener,在集群內(nèi)以 DaemonSet 的方式運(yùn)行。
日志規(guī)則:用戶可以使用日志規(guī)則指定日志的采集源、日志主題、日志解析方式和配置過濾器。
日志采集 Agent 會(huì)監(jiān)測日志采集規(guī)則的變化,變化的規(guī)則會(huì)在最多10s內(nèi)生效。
多條日志采集規(guī)則不會(huì)創(chuàng)建多個(gè) DaemonSet,但過多的日志采集規(guī)則會(huì)使得日志采集 Agent 占用的資源增加。
日志源:包含指定容器標(biāo)準(zhǔn)輸出、容器內(nèi)文件以及節(jié)點(diǎn)文件。
在采集容器標(biāo)準(zhǔn)輸出日志時(shí),用戶可選擇所有容器、或指定工作負(fù)載和指定 Pod Labels 內(nèi)的容器服務(wù)日志作為日志的采集源。
在采集容器文件路徑日志時(shí),用戶可指定工作負(fù)載或 Pod Labels 內(nèi)容器的文件路徑日志作為采集源。
在采集節(jié)點(diǎn)文件路徑日志時(shí),用戶可設(shè)定日志的采集源為節(jié)點(diǎn)文件路徑日志。
消費(fèi)端:用戶選擇日志服務(wù) CLS 的日志集和日志主題作為消費(fèi)端。
提取模式:日志采集 Agent 支持將采集到的日志以單行文本、JSON、分隔符、多行文本和完全正則的形式發(fā)送至用戶指定的日志主題。
過濾器:開啟過濾器后可以根據(jù)用戶指定的規(guī)則采集部分日志,key 支持完全匹配,過濾規(guī)則支持正則匹配,如僅采集 ErrorCode = 404 的日志。
4.操作步驟
4.1 開啟日志采集
1.登錄容器服務(wù)控制臺(tái),選擇左側(cè)導(dǎo)航欄中的集群運(yùn)維>功能管理。
2.在“功能管理”頁面上方選擇地域,單擊需要開啟日志采集的集群右側(cè)的設(shè)置。如下圖所示:
3.在“設(shè)置功能”頁面,單擊日志采集編輯,開啟日志采集后確認(rèn)。如下圖所示:
4.2 配置日志規(guī)則
1.登錄容器服務(wù)控制臺(tái),選擇左側(cè)導(dǎo)航欄中的集群運(yùn)維>日志規(guī)則。
2.在“日志采集”頁面上方選擇地域和需要配置日志采集規(guī)則的集群,單擊新建。如下圖所示:
3.在“新建日志采集規(guī)則”頁面中,選擇采集類型,并配置日志源。目前采集類型支持容器標(biāo)準(zhǔn)輸出、容器文件路徑和節(jié)點(diǎn)文件路徑。
說明:
對(duì)于容器的標(biāo)準(zhǔn)輸出及容器內(nèi)文件(非 hostPath 掛載),除了原始的日志內(nèi)容, 還會(huì)帶上容器或 kubernetes 相關(guān)的元數(shù)據(jù)(例如:產(chǎn)生日志的容器 ID)一起上報(bào)到 CLS,方便用戶查看日志時(shí)追溯來源或根據(jù)容器標(biāo)識(shí)、特征(例如:容器名、labels)進(jìn)行檢索。
容器或 kubernetes 相關(guān)的元數(shù)據(jù)請(qǐng)參考下方表格
| 字段名 | 含義 |
| container_id | 日志所屬的容器 ID。 |
| container_name | 日志所屬的容器名稱。 |
| image_name | 日志所屬容器的鏡像名稱 IP。 |
| namespace | 日志所屬 pod 的 namespace。 |
| pod_uid | 日志所屬 pod 的 UID。 |
| pod_name | 日志所屬 pod 的名字。 |
| pod_lable_{label name} |
日志所屬 pod 的 label(例如一個(gè) pod 帶有兩個(gè) label:app=nginx,env=prod, 則在上傳的日志會(huì)附帶兩個(gè) metedata:pod_label_app:nginx,pod_label_env:prod)。 |
4.配置日志服務(wù) CLS 為消費(fèi)端。選擇日志集和相應(yīng)的日志主題,可以選擇新建和已有日志主題。如下圖所示:
注意:
日志服務(wù) CLS 目前只能支持同地域的容器集群進(jìn)行日志采集上報(bào)。
若日志主題下已存在10個(gè)日志主題,則不能新建日志主題。
5.單擊下一步,選擇日志提取模式。如下圖所示:
注意:一個(gè)日志主題目前僅支持一個(gè)采集配置,請(qǐng)保證選用該日志主題的所有容器的日志都可以接受采用所選的日志解析方式。若在同一日志主題下新建了不同的采集配置,舊的采集配置會(huì)被覆蓋。
6.根據(jù)需求開啟過濾器并配置規(guī)則,并單擊完成,完成創(chuàng)建。如下圖所示:
(這里配置的是不符合日志采集格式的采集出來用什么標(biāo)識(shí))
參考文檔:https://cloud.tencent.com/document/product/457/36771
作者:小家電維修
相見有時(shí),后會(huì)無期。
總結(jié)
以上是生活随笔為你收集整理的通过腾讯云日志服务收集TKE日志的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ2828 Buy Ticket
- 下一篇: 笔记本电脑外接显示器,仅显示器的时候卡顿