Loki vs Elasticsearch 之窮人也能擁有日誌系統

把 ElasticSearch deploy 到客戶雲端機器,才知到資源有多珍貴。




優缺點
ElasticSearch
  • 優點
    • 部署方便、服務拓展成熟
    • 各種現成套件可用
    • Documentation 完整
    • 每個開發人員,熟到不能再熟的 kibana 介面
  • 缺點
    • 超吃資源,記憶體限他 2G,就給吃 4G,連自家 kibana 都能吃到 500mb
    • 什麼都要錢,沒升到黃金會員($19),連 Alert slack notice 都不給用
    • 跟 AWS 對幹中
    • 超吃空間,原設計來做搜尋引擎使用,Log 產生的索引過大,優勢變缺點
Loki
  • 優點
    • 資源需求低
    • 可用 S3、DynamicDB、GCS storage
    • 免費
  • 缺點
    • Documentation 精簡、細節不清楚
    • 太過年輕,社群資源不多


記憶體



  • elasticsearch vs loki
    • 5GiB vs 50MiB => 100倍
  • kibana vs grafana
    • 450MiB vs 25MiB => 18倍
  • fluentbit vs promtail
    • 5MiB vs 15MiB
從記憶體消耗,很明顯能感受出不同量級的差異。
另外,Loki 可搭配 fluentbit 使用,整套低消 80MiB




Storage
儲存價格 USD/GB 每月
  • AWS RDS
    • mariaDB $0.138   => 6倍
    • RDS instance $18.72
  • AWS EBS (EC2 volume)
    • SSD $0.096   => 4倍
    • HHD $0.054
  • AWS S3
    • standard $0.025
    • request - ListBucket $5/month (2022/4/24 update!)
  • AWS CloudWatch
    • 存放 $0.033 (不含 收集 $0.76, 分析 $0.0076)
  • Google GCS
    • standard $0.02
  • Local
    • SSD $0.086 => (3年)月攤 $0.0023
    • HDD $0.023 => (3年)月攤 $0.00063
    • 電費 => 每月 $19.2 (約 t3.small 等級)
如果資金有限,將 logger 存放在Local,是最佳的方案。
Local 電費等同於 ec2 instance,每個方案都必須付出,而 RDS 需再多支付 RDS 的機器費用。

GCS、S3 為雲端最佳解法,只要是同個 region 的 instance 讀取,不需支付流量費用。
而放在 RDS 最浪費,且造成備份、移轉的麻煩。

經過一段時間測試,放在 S3 似乎會造成一筆額外的費用,反而成為成本最高的選擇,可能要搭配 DynamoDB 使用,又或者直接存放在 EBS,再定期 docker volume backup to s3 (2022/4/24 update!)

Loki 執行情況
使用 boltdb-shipper 後,volume 幾乎不消耗空間


Container 裡面也算乾淨,elasticSearch 飆到 300MB


串 S3 成功後,會出現 1~2 個資料夾,照 Chunk_ 設定,可能 15m~1h 才會看到資料




config.yaml
# 最遠查詢期限,必須小於等於 retention_period
chunk_store_config:
  max_look_back_period: 1440h

#日誌保留期限
table_manager:
  retention_deletes_enabled: true
  retention_period: 1440h #2個月


畫面參考
建議 push log 時,多標記一些 label,可多維度查詢





將呼叫第三方 api 的時間、次數搜集起來,做成儀表板





Loki vs Elasticsearch 之窮人也能擁有日誌系統 Loki vs Elasticsearch 之窮人也能擁有日誌系統 Reviewed by Wild on 9/27/2021 08:31:00 上午 Rating: 5

沒有留言:

沒有Google帳號也可發表意見唷!

技術提供:Blogger.