iT邦幫忙

0

如何將 Grafana Loki 的日誌數據存放在 Azure 儲存體帳戶

  • 分享至 

  • xImage
  •  

Grafana Loki 的日誌數據本身被壓縮並以塊的形式存儲在 S3 或 GCS 等對象存儲中,甚至存儲在本地文件系統中。小索引和高度壓縮的塊簡化了操作並顯著降低了 Loki 的成本。

我們的 Grafana Loki 應用情境已經測試得差不多了,今天就來教大家如何將日誌數據存放在 Azure 儲存體帳戶中的 Blob 吧。

首先到 Azure 建立儲存體並且新增一個容器

切換到存取金鑰頁面,複製您的儲存體帳戶名稱與金鑰機碼。

編輯 Loki 的配置文件

sudo vi /opt/loki/loki-local-config.yaml

文件內容如下

  • account_name 填入您的儲存體帳戶名稱
  • account_key 填入您的金鑰機碼
  • container_name 填入您的容器名稱
auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096

common:
  path_prefix: /opt/loki
  storage:
    filesystem:
      chunks_directory: /opt/loki/chunks
      rules_directory: /opt/loki/rules
  replication_factor: 1
  ring:
    instance_addr: 127.0.0.1
    kvstore:
      store: inmemory

query_range:
  results_cache:
    cache:
      embedded_cache:
        enabled: true
        max_size_mb: 100

schema_config:
  configs:
  - from: "2020-12-11"
    index:
      period: 24h
      prefix: index_
    #object_store: filesystem
    object_store: azure
    schema: v11
    store: boltdb-shipper

storage_config:
  azure:
    # Your Azure storage account name
    account_name: your_storage_account_name
    # For the account-key, see docs: https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal
    account_key: your_storage_account_key
    # See https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction#containers
    container_name: your_container_name
    request_timeout: 0
  boltdb_shipper:
    active_index_directory: /opt/loki/boltdb-shipper-active
    cache_location: /opt/loki/boltdb-shipper-cache
    cache_ttl: 24h
    shared_store: azure

querier:
  max_concurrent: 2048

query_scheduler:
  max_outstanding_requests_per_tenant: 2048

ruler:
  alertmanager_url: http://localhost:9093

記得重啟 Loki 服務

sudo service loki restart

可以看到 Loki 已經將資料存放到 Azure 儲存體中

最後 Grafana 儀表板也可以正常顯示日誌分析數據

根據最佳實踐指出,當 Loki 把壓縮的數據塊 chunk_target_size 填滿又或者數據塊的年齡超過 max_chunk_age 時,該數據塊就會變成唯讀模式不再寫入資料,進而達到讀寫分離增加查詢的效能。

  • chunk_target_size 預設為 1.5 MB
  • max_chunk_age 預設為 1小時

您需要 5–10 倍或 7.5–10MB 的原始日誌數據來填充 1.5MB 的塊。

我們可以把這些唯讀的數據塊移至非經常性儲存體來節省 Azure 費用

切換到生命週期管理,新增規則。

規則名稱填入 Move to cool access tiers for blob data,下一步。

設定上次修改時間超過 1 天,移至非經常性儲存體。

今天的分享就到這邊,希望有幫助到大家。

參考文件

  1. https://grafana.com/docs/loki/latest/storage/
  2. https://learn.microsoft.com/zh-tw/azure/cloud-adoption-framework/ready/azure-best-practices/resource-naming
  3. https://grafana.com/docs/loki/latest/best-practices/
  4. https://grafana.com/docs/loki/latest/fundamentals/architecture/components/
  5. https://learn.microsoft.com/zh-tw/azure/storage/blobs/access-tiers-overview?tabs=azure-portal

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言