自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

十分鐘在K8s中部署輕量級日志系統(tǒng)Loki

云計(jì)算 云原生
由于Loki 對k8s友好支持,默認(rèn)就可以采集到pod、namespace 等標(biāo)簽數(shù)據(jù),不需要額外配置,但是要達(dá)到生產(chǎn)級可用,還需要對 Loki的數(shù)據(jù)進(jìn)行持久化配置、同時要根據(jù)采集日志數(shù)據(jù)的大小做好采集速率調(diào)整、以及日志過期策略設(shè)置?

Loki 是什么?

Loki是由Grafana Labs開源的一個水平可擴(kuò)展、高可用性,多租戶的日志聚合系統(tǒng)的日志聚合系統(tǒng)。它的設(shè)計(jì)初衷是為了解決在大規(guī)模分布式系統(tǒng)中,處理海量日志的問題。Loki采用了分布式的架構(gòu),并且與Prometheus、Grafana密切集成,可以快速地處理大規(guī)模的日志數(shù)據(jù)。該項(xiàng)目受 Prometheus 啟發(fā)

圖片圖片

  • Promtail是代理,負(fù)責(zé)收集日志并將其發(fā)送給 Loki 。
  • Loki 是主服務(wù)器,負(fù)責(zé)存儲日志和處理查詢。
  • Grafana則 用于 UI 展示。

與ELK相比優(yōu)勢在哪里?

ELK是大規(guī)模日志解決方案中的佼佼者說到Loki,免不了要拿來跟ELK做個對比

  1. 架構(gòu)簡單:Loki 則采用分布式架構(gòu)、可以將日志存儲在多個節(jié)點(diǎn)上,也可以存儲在一個節(jié)點(diǎn)上,其中Promtail進(jìn)行日志收集、Loki 負(fù)責(zé)存儲查詢、Grafana用于展現(xiàn)
  2. 存儲更?。篖oki使用了緊湊的索引和壓縮算法,相比ES 可以減少不少存儲空間
  3. 沒有采集日志格式要求:提供了更大的靈活性以及在查詢時格式化的選項(xiàng)
  4. 與 Prometheus、Grafana 和 K8s 原生集成:可以在單個用戶界面中無縫切換查詢指標(biāo)、日志等數(shù)據(jù)
  5. 輕量級:相比ELK,Loki更加輕量級,因?yàn)樗恍枰粋€單獨(dú)的Elasticsearch集群來存儲和索引日志數(shù)據(jù)

如何采集數(shù)據(jù)?

k8s 集群不提供日志收集的解決方案,一般來說有3 種方案來做日志收集:

  1. 在Node節(jié)點(diǎn)上運(yùn)行一個 agent 來收集日志(DaemonSet 采集方式)
  2. 在 Pod 中包含一個 sidecar 容器來收集應(yīng)用日志(sidecar 采集方式)
  3. 由應(yīng)用程序?qū)⑷罩拘畔⑼扑偷讲杉蠖耍ㄖ鲃硬杉绞剑?/li>

節(jié)點(diǎn)采集方式

圖片圖片

日志系統(tǒng)會以DaemonSet 方式是在每個node 節(jié)點(diǎn)上部署一個agent,來采集這個節(jié)點(diǎn)上所有的日志,默認(rèn)會收集k8s 下/var/log/pod 、/var/lib/docker/containers下的日志,對應(yīng)用程序的要求就是開啟控制臺打印,否則會收集不到日志,比較適用于功能單一或業(yè)務(wù)不是很多的集群;

Sidecar采集方式

圖片圖片

Sidecar 方式會在每一個Pod中部署一個 sidecar 容器,來進(jìn)行當(dāng)前容器的日志采集,有多少個 pod,就會有多少個Sidecar容器,因此Sidecar相對資源占用較多,但靈活性以及多租戶隔離性較強(qiáng),適合大型的 K8s 集群使用,因?yàn)槌苏加觅Y源多點(diǎn),采集性能不會有影響

Loki的Pormtail同時支持以上兩種方式,默認(rèn)為節(jié)點(diǎn)采集方式,下面我們演示如何在k8s 中快速部署一個Loki日志分析系統(tǒng)

Loki 部署

添加倉庫

helm repo add grafana https://grafana.github.io/helm-charts

下載倉庫

helm pull grafana/loki-stack

解壓包

解壓完成以后,可以查看相關(guān)參數(shù)的使用

tar -xvf loki-stack-2.10.0.tgz

配置概覽

圖片圖片

此Chart不止包含了Loki 、promtail、grafana,還包括其他組件,但是默認(rèn)未開啟,只開啟了Loki 、promtail,這里為了演示,也開啟grafana配置,通過grafana.enabled=true指定,同時如果要指定相關(guān)子 chart 參數(shù),根據(jù)子 chart 名稱.參數(shù)進(jìn)行指定,比如要指定的grafana 的admin 密碼,可以用grafana.adminPassword=admin指定

圖片圖片

啟動

注意:啟動示例沒有對日志數(shù)據(jù)進(jìn)行持久化處理,正式部署要進(jìn)行持久化配置

loki-stack中Grafana 的密碼獲取比較復(fù)雜,所以直接通過參數(shù)指定

helm install loki ./loki-stack -n loki-stack \
--set grafana.enabled=true \
--set grafana.adminPassword=admin \
--create-namespace

圖片圖片

以上啟動完成以后,會收集/var/log/pod 、/var/lib/docker/containers日志信息

查看啟動pod,由于本人k8s 集群有 6 個node節(jié)點(diǎn),所以部署了6 個promtail

圖片圖片

Grafana訪問

修改 Grafana 為 nodeport 訪問方式

kubectl edit svc loki-grafana -n loki-stack

圖片圖片

登錄成功以后,訪問Explore 功能,并點(diǎn)擊Log browser按鈕,會看到已經(jīng)采集相關(guān)數(shù)據(jù),并自動創(chuàng)建namepsace、pod等多個維度的 labels

圖片圖片

比如要查看 ingress 的日志,選擇命名空間為ingress-nginx并點(diǎn)擊 show logs

圖片圖片

圖片圖片

同時查詢結(jié)果可以支持換行、日期排序等功能

圖片圖片

以上默認(rèn)的查詢界面,使用起來可能沒那么順手,那么可以根據(jù)需求去定制不同的查詢界面,在https://grafana.com/grafana/dashboards中輸入 loki,可以下載感興趣的Dashboard

圖片圖片

loki卸載

helm uninstall loki -n loki-stack

總結(jié)

以上我們快速演示了如何在 k8s 中部署一個Loki,可以看到非常簡單,由于Loki 對k8s友好支持,默認(rèn)就可以采集到pod、namespace 等標(biāo)簽數(shù)據(jù),不需要額外配置,但是要達(dá)到生產(chǎn)級可用,還需要對 Loki的數(shù)據(jù)進(jìn)行持久化配置、同時要根據(jù)采集日志數(shù)據(jù)的大小做好采集速率調(diào)整、以及日志過期策略設(shè)置

責(zé)任編輯:武曉燕 來源: 架構(gòu)成長指南
相關(guān)推薦

2024-01-12 08:03:29

k8s配置持久化

2016-10-13 13:01:51

2023-09-24 22:47:42

Kubernetes親和性

2023-09-27 22:33:40

KubernetesK8S

2023-12-25 08:05:35

2025-02-10 12:05:15

2020-12-17 06:48:21

SQLkafkaMySQL

2019-04-01 14:59:56

負(fù)載均衡服務(wù)器網(wǎng)絡(luò)

2022-04-13 22:01:44

錯誤監(jiān)控系統(tǒng)

2021-03-03 11:36:57

Java 8Java 15Java

2021-09-07 09:40:20

Spark大數(shù)據(jù)引擎

2022-06-16 07:31:41

Web組件封裝HTML 標(biāo)簽

2024-06-19 09:58:29

2023-04-12 11:18:51

甘特圖前端

2009-04-29 17:35:47

LinuxWebMail系統(tǒng)

2024-05-13 09:28:43

Flink SQL大數(shù)據(jù)

2015-09-06 09:22:24

框架搭建快速高效app

2012-07-10 01:22:32

PythonPython教程

2023-11-30 10:21:48

虛擬列表虛擬列表工具庫

2023-12-13 13:26:41

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號