云原生可觀測-日志觀測(Loki)最佳實踐

一、Loki 簡介

云原生可觀測三大支柱

支柱工具用途
MetricsPrometheus性能趨勢、系統負載
LogsLoki原始事件記錄、錯誤診斷
TracesTempo / Jaeger分布式鏈路追蹤

一、Loki 簡介

1.1 Loki 是什么

Loki 是由 Grafana Labs 開發的 日志聚合系統,與 Prometheus 架構一致,主打“標簽驅動(label-based)日志管理”,并與 Grafana 緊密集成。

1.2?Loki 的優勢

  • 類似 Prometheus 的標簽模型。

  • 不做全文索引,成本低。

  • 與 Promtail、Grafana 緊密協作。

  • 支持結構化日志查詢與聚合分析。


二、Loki 架構與組件

2.1 架構示例

          +-------------+|   Grafana   | <---> LogQL 查詢+------+------+            |                  +-----v-----+   +-----------------+|   Loki     |<--| Object Storage  |+-----+-----+   +-----------------+^+--------+--------+| Promtail / Fluentbit |+--------------------+

2.2 Loki 模塊角色

組件說明
Promtail日志收集 Agent,自動附加 Kubernetes 標簽
Loki存儲、索引日志元數據,只索引 Labels
Grafana可視化查詢,支持 Metrics + Logs 聯動
Ruler告警規則引擎(LogQL-based alert)

?


三、日志采集與標簽管理最佳實踐

3.1 推薦采集方式

  • Kubernetes 場景推薦使用 Promtail DaemonSet,讀取:

    /var/log/pods/<namespace>_<pod>/*.log

3.2 標簽管理策略(重點 🔥)

建議標簽選擇的三原則

  • 低基數:如 namespace, app, pod, container

  • 穩定性:避免標簽頻繁變動,如動態 IP。

  • 唯一性避免:不要將 trace_id?作為標簽!

配置示例(Promtail):

pipeline_stages:- docker: {}- labels:job: my-appenvironment: production

四、LogQL 查詢實踐

4.1 基礎語法

{job="nginx"} |= "error"

  • {...}:標簽過濾(必須)

  • |= "xxx":精確包含

  • |~ "xxx":正則匹配

  • !=, !~:負向過濾

4.2 聚合語法

count_over_time({job="api"} |= "timeout" [5m])

聚合函數列表:

函數說明
count_over_time日志數量統計
rate日志行的變化速率(類似 Prometheus)
avg_over_time提取數字后的平均值(結合 line_format
sum by (...)標簽維度聚合

?


4.3 結構化日志解析

{app="svc"} | json | level="ERROR" and request_id!="null"

或者使用正則提取:

{app="svc"} |~ "(?P<status>\\d{3}) (?P<path>/api/[^ ]+)"


五、告警策略與 LogQL

Loki 支持通過 Ruler + Alertmanager 進行日志級別的告警設置。

5.1 規則示例(YAML)

groups:
- name: error-alertsrules:- alert: HighErrorRateexpr: |rate({app="nginx"} |= "error" [5m]) > 10for: 1mlabels:severity: criticalannotations:summary: "High error rate detected"

5.2 告警推薦實踐

  • 告警表達式盡量使用 rate,避免瞬時波動。

  • 盡量避免基于高基數字段告警。


六、Grafana 可視化與聯動

6.1 日志 → 指標 → Trace 的聯動

  • 在日志行中提取 trace_id,實現與 tracing系統?的點擊跳轉。

  • 通過 Explore 標簽頁可按 TraceID 聚合多維度觀測。

6.2 日志儀表板設計建議

面板類型示例內容
表格面板最近 N 條錯誤日志
時間序列圖error 頻次?
直方圖各服務日志量分布
鏈接跳轉指向 Trace 或外部監控平臺

?


七、性能優化建議

7.1 采集優化

  • 控制 scrape_interval,避免 Promtail 頻繁讀取。

  • 開啟 batchsize, batchwait 進行日志緩沖。

7.2 存儲優化

  • 使用 MinIO / S3 存儲 Chunk,減少本地磁盤壓力。

  • 配置 retention 自動清理歷史日志(如 7 天)。

7.3 查詢優化

  • 控制查詢時間窗口,避免 [1h] 級別的大窗口。

  • 使用 label_valuesmetric name 縮小搜索空間。


八、示例場景匯總(最佳實踐)

場景查詢語句
統計每分鐘內 error 次數rate({app="web"}
查詢最近 10 分鐘內返回 500 的請求日志{status="500"}
提取 json 字段中 level=ERROR{app="svc"}
按 pod 維度聚合異常日志速率sum by(pod) (rate({app="api"}
trace_id 跳轉{job="frontend"}

?


九、總結:Loki + LogQL 的可觀測性價值

能力實現
低成本日志存儲僅索引標簽,不做全文索引
標簽驅動的快速查詢類似 Prometheus 的語法體驗
與指標/鏈路天然融合與 Prometheus / skywarking等配合打造統一觀測平臺
結構化日志支持好支持 JSON/正則解析字段
易于擴展與高可用部署Helm + Shipper + ObjectStore 架構可彈性部署

?

資料:

LogQL: Log query language | Grafana Loki documentation

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90440.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90440.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90440.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Windows Server 2003 R2系統C盤擴容教程

一、PAGreen軟件下載 下載地址&#xff1a; ExtPart.zip https://pan.baidu.com/s/1FxK61XNI0t-4JIEWK1QA8Q?pwd8888 提取碼: 8888 二、將軟件解壓縮 (1)、執行步驟一下載的程序 雙擊下圖所示可執行程序 (2)、選擇好解壓路徑&#xff0c;點擊「Unzip」進行解壓縮 (3)、磁…

Kubernetes配置管理

目錄什么是ConfigMap創建ConfigMap1&#xff1a;基于目錄創建ConfigMap1.創建conf目錄&#xff0c;放置文件2.基于目錄下的所有文件創建ConfigMap3.查看當前創建的ConfigMap2&#xff1a;基于文件創建ConfigMap1.單個文件創建ConfigMap2.使用帶有key的命令創建ConfigMap3.多個文…

golang怎么實現每秒100萬個請求(QPS),相關系統架構設計詳解

一.需求 使用Golang,以Gin框架為基礎,設計一個能夠處理每秒100萬請求(QPS 1M)的系統架構 注意:100萬QPS是一個很高的數字,單機通常難以處理,所以必須采用分布式架構,并且需要多層次的架構設計和優化 二.搭建步驟 1.系統架構設計 為了實現高并發,需要考慮以下幾個方面…

HCIA再復習

第一章.網絡基礎1.1 網絡類型分類網絡按照二層鏈路類型分為以下四種&#xff1a;多點接入網絡&#xff08;MA&#xff09;&#xff1a;1&#xff0c;廣播型多點接入&#xff08;BMA&#xff09;&#xff1a;如以太網&#xff0c;支持廣播&#xff0c;設備通過MAC地址通信&#…

Qt 數據庫連接池實現與管理

在 Qt 應用程序中&#xff0c;頻繁創建和銷毀數據庫連接會帶來顯著的性能開銷。數據庫連接池通過復用現有連接&#xff0c;避免重復創建和銷毀連接的開銷&#xff0c;從而提高應用程序的響應速度和吞吐量。本文將詳細介紹 Qt 中數據庫連接池的實現與管理方法。 一、數據庫連接池…

數據采集分析:從信息洪流中掘金的科學與藝術

——如何將原始數據轉化為商業決策的黃金&#xff1f;&#x1f310; 引言&#xff1a;我們正淹沒在數據的海洋&#xff0c;卻渴求著知識的甘泉每天全球產生 2.5萬億字節 數據&#xff08;相當于每秒下載4.5萬部高清電影&#xff09;&#xff0c;但未經分析的數據如同未提煉的原…

Oracle國產化替代:一線DBA的技術決策突圍戰

從“如履薄冰”到“游刃有余”,中國數據庫的自主之路正重塑技術人的思維地圖。 “凌晨三點的最后一次數據校驗通過,割接系統綠燈全亮——**河北移動核心賬務系統的Oracle數據庫已被GoldenDB完全替代**。”2025年6月底,這場持續兩年的攻堅戰畫上句號。當全省業務流量平穩切…

OS19.【Linux】進程狀態(1)

目錄 1.情景引入 2.操作系統學科對進程狀態的分類 運行狀態 基于時間片的輪轉調度算法 阻塞狀態 等待IO設備的例子 等待其他進程中需要獲取的數據 進程喚醒 掛起狀態(全稱為阻塞掛起狀態) 簡單談談虛擬內存管理 就緒狀態 筆面試題 3.Linux對進程狀態的分類 R和S狀…

Hadoop小文件合并技術深度解析:HAR文件歸檔、存儲代價與索引結構

HDFS小文件問題的背景與挑戰在Hadoop分布式文件系統&#xff08;HDFS&#xff09;的設計哲學中&#xff0c;"大文件、流式訪問"是核心原則。然而現實場景中&#xff0c;海量小文件&#xff08;通常指遠小于HDFS默認塊大小128MB的文件&#xff09;的涌入卻成為系統性能…

Verilog 提取信號的上升沿或者下降沿

上升沿提取代碼&#xff1a;reg [1:0] F1;always (posedge clk)beginif(rst_n 1b0) F1[1:0]<2b00;else F1[1:0]<{F1[0],start_i};endwire start_l2h (F1[1:0]2b01)?1b1:1b0;下降沿提取代碼&#xff1a;reg [1:0] F1;always (posedge clk)b…

.Net core 部署到IIS出現500.19Internal Server Error 解決方法

.Net core 部署到IIS&#xff0c;網頁出現500.19Internal Server Error 解決方法解決方法 在URL:https://dotnet.microsoft.com/zh-tw/download/dotnet/8.0下載并安裝dotnet-hosting-8.0.18-win.exe 重啟IIS服務器

Linux 基本命令整理

&#x1f427; Linux 基本命令整理 為了方便初學者快速掌握 Linux 常用命令&#xff0c;以下是經過分類整理的核心命令及用法說明。 &#x1f4c2; 目錄操作與文件管理 pwd 核心功能&#xff1a;打印當前工作目錄的絕對路徑&#xff0c;明確用戶所在位置。 實操示例&#x…

牛客周賽 Round 101(題解的token計算, 76修地鐵 ,76選數,76構造,qcjj寄快遞,冪中冪plus)

A題解的token計算要記住c中的對數函數&#xff1a;log(n) 是自然對數&#xff08;以e為底&#xff09;ln(nlog10(n) 是以10為底的對log1p(n) 是ln(1n)&#xff0c;提供更高的數值精log2(n) 是以2為底的對logl(n) 和 log10l(n) 是long double版#define _CRT_SECURE_NO_WARNINGS …

商場導航軟件:3D+AI 基于Deepseek 模型的意圖識別技術解析

本文面向室內導航工程師、商場導航系統優化師及LBS 應用開發的技術員&#xff0c;解析商場室內導航系統 3DAI 三大核心技術模塊&#xff0c;并提供可直接復用的工程解決方案。如需獲取商場導航系統技術方案可前往文章最下方獲取&#xff0c;如有項目合作及技術交流歡迎私信作者…

借助Aspose.HTML控件,使用 Python 編程將網頁轉換為 PDF

使用 Python 將網頁轉換為 PDF 有時您需要離線訪問網頁&#xff0c;使其更易于訪問。因此&#xff0c;將HTML頁面轉換為PDF即可滿足您的需求。令人驚訝的是&#xff0c;您可以在幾秒鐘內在 Python 項目中啟用 HTML 到 PDF 的轉換。本指南將為 Python 開發人員介紹一個功能強大…

數據結構:找出字符串中重復的字符(Finding Duplicates in a String)——使用位運算

目錄 預備知識 左移運算&#xff08;<<&#xff09; 位運算 一、從最樸素的方法開始 二、如果只關心“有沒有出現過”&#xff0c;不關心“次數”&#xff0c;還能不能更省&#xff1f; 三、有沒有一種更“緊湊”的方式表示26個開關&#xff1f; 四、用一個整數的…

DevOps 完整實現指南:從理論到實踐

DevOps 是一種集軟件開發&#xff08;Dev&#xff09;與 IT 運維&#xff08;Ops&#xff09;于一體的文化、實踐和工具鏈&#xff0c;旨在通過自動化流程、持續集成/持續交付&#xff08;CI/CD&#xff09;、基礎設施即代碼&#xff08;IaC&#xff09;和跨團隊協作&#xff0…

使用 5 種安全解決方案將 Android 短信導出為PDF

想要將安卓手機短信導出為 PDF 格式&#xff0c;用于法律用途、情感表達或僅僅為了記錄&#xff1f;總之&#xff0c;您可以保存安卓手機短信并將其轉換為 PDF 格式&#xff0c;確保它們井然有序&#xff0c;方便打印。快來獲取解決方案吧&#xff01;第 1 部分&#xff1a;如何…

再談fpga開發(fpga開發的幾個差異)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】學習嵌入式的同學都知道&#xff0c;嵌入式一般分成這幾種chip&#xff0c;有51&#xff0c;有stm32 mcu&#xff0c;有soc&#xff0c;有dsp&#…

Kafka運維實戰 11 - kafka查看消息的具體內容【實戰】

目錄kafka 消息查看1. 直接查看日志文件內容步驟&#xff1a;2. 使用 Kafka 工具查看日志主要參數說明常用命令&#xff1a;輸出說明&#xff1a;3. 注意事項kafka 消息日志文件詳解我們有時候遇到這樣的需求&#xff0c;需要查看下kafka消息的內容。 kafka 消息查看 查看 Ka…