<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] > [home](https://grafana.com/oss/loki/) ## 概述 和其他日志系統不同的是,Loki 只會對你的日志元數據標簽(就像 Prometheus 的標簽一樣)進行索引,而不會對原始的日志數據進行全文索引。然后日志數據本身會被壓縮,并以 chunks(塊)的形式存儲在對象存儲(比如 S3 或者 GCS)甚至本地文件系統。一個小的索引和高度壓縮的 chunks 可以大大簡化操作和降低 Loki 的使用成本 ## 對比其他日志系統 **Elasticsearch** - 中的數據以非結構化 JSON 對象的形式存儲在磁盤上。每個對象的鍵和每個鍵的內容都有索引。然后可以使用 JSON 對象來定義查詢(稱為 Query DSL)或通過 Lucene 查詢語言來查詢數據。 **單二進制模式下的 Loki** - 可以將數據存儲在磁盤上,但在水平可擴展模式下,數據存儲需要在云存儲系統中,如 S3、GCS 或 Cassandra。日志以純文本的形式存儲,并標記了一組標簽的名稱和值,其中只有標簽會被索引。這種權衡使其操作起來比完全索引更便宜。Loki 中的日志使用 LogQL 進行查詢 **Fluentd** - 通常用于收集日志并轉發到 Elasticsearch。Fluentd 被稱為數據收集器,它可以從許多來源采集日志,并對其進行處理,然后轉發到一個或多個目標 日志格式 ![](https://img.kancloud.cn/f8/56/f8560299c283a753fc6500482d9c9dc8_947x285.png) Loki 采用獨特的方法,**僅索引元數據**而不是日志行的全文 ## 示例 ### go 接入 loki <details> <summary>main.go</summary> ``` package main import ( "bytes" "encoding/json" "fmt" "log" "net/http" "time" ) // 定義日志流的結構 type LogStream struct { Stream map[string]string `json:"stream"` Values [][]string `json:"values"` } // 定義 Loki 推送數據的結構 type LokiPushRequest struct { Streams []LogStream `json:"streams"` } func main() { // Loki 的 URL(根據你的環境修改) lokiURL := "http://localhost:3100/loki/api/v1/push" // 創建一個日志流,使用標簽標識日志流 logStream := LogStream{ Stream: map[string]string{ "job": "example-job", "env": "production", }, // 定義日志的時間戳和日志內容 Values: [][]string{ {fmt.Sprintf("%d", time.Now().UnixNano()/int64(time.Millisecond)), "This is a test log message."}, }, } // 構建 Loki 推送請求數據 pushRequest := LokiPushRequest{ Streams: []LogStream{logStream}, } // 將請求數據轉換為 JSON 格式 payload, err := json.Marshal(pushRequest) if err != nil { log.Fatalf("Error marshaling request: %v", err) } // 發送 POST 請求將日志推送到 Loki resp, err := http.Post(lokiURL, "application/json", bytes.NewBuffer(payload)) if err != nil { log.Fatalf("Error sending request to Loki: %v", err) } defer resp.Body.Close() // 打印響應狀態 fmt.Printf("Response status: %s\n", resp.Status) } ``` </details> ### 使用 promatil 對已存在的日志文件解析 1. 需要先啟動 loki 服務 2. 配置 Promtail ``` server: http_listen_port: 9080 clients: - url: http://localhost:3100/loki/api/v1/push # Loki 服務的地址 positions: filename: /tmp/positions.yaml # 用于存儲日志文件的位置偏移 scrape_configs: - job_name: 'system' static_configs: - targets: - localhost labels: job: 'varlogs' __path__: /var/log/your_project/*.log # 這里是你的日志文件路徑 ``` 3. 啟動 Promtail ``` promtail -config.file=/path/to/promtail-config.yaml ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看