docker-compose安裝使用loki+promtail+grafana 收集容器日志

image.png

背景

Loki的第一個穩(wěn)定版本于2019年11月19日發(fā)布,是 Grafana Labs 團隊最新的開源項目,是一個水平可擴展,高可用性,多租戶的日志聚合系統(tǒng)。 Grafana 對 Loki 的描述如下:

  • Loki: like Prometheus, but for logs. Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost effective and easy to operate. It does not index the contents of the logs, but rather a set of labels for each log stream.

簡單說,Loki 是專門用于聚集日志數(shù)據(jù),重點是高可用性和可伸縮性。與競爭對手不同的是,它確實易于安裝且資源效率極高。
目前運維大概上百個節(jié)點,雖然系統(tǒng)是統(tǒng)一的基線版本且使用docker運行應用,平時相安無事,但變更后的問題排查仍有點心有余悸。對一個火熱的日志系統(tǒng)elk也有淺嘗輒止,奈何對于非核心應用,多耗散一份算力意味著成本增加和利潤的減少,elk對于小團隊來說,還是過于笨重。趁著近日的疫情無法外出,調(diào)研后將 Loki 上線了生產(chǎn),可以說是完美契合了中小團隊對日志平臺的需求。

介紹

與其他日志聚合系統(tǒng)相比,Loki具有下面的一些特性:
不對日志進行全文索引(vs ELK技)。通過存儲壓縮非結構化日志和僅索引元數(shù)據(jù),Loki 操作起來會更簡單,更省成本。
通過使用與 Prometheus 相同的標簽記錄流對日志進行索引和分組,這使得日志的擴展和操作效率更高。
特別適合儲存 Kubernetes Pod 日志; 諸如 Pod 標簽之類的元數(shù)據(jù)會被自動刪除和編入索引。
受 Grafana 原生支持。
Loki 由以下3個部分組成:

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

安裝

Docker-compose.yml 可以參考Loki文檔介紹,開箱即用。

version: "3"

networks:
  loki:

services:
  loki:
    image: grafana/loki:1.5.0
    ports:
      - "3100:3100"
    command: -config.file=/etc/loki/local-config.yaml
    networks:
      - loki

  promtail:
    image: grafana/promtail:1.5.0
    volumes:
      - /Users/hfy/work/loki/:/var/log/
    command: -config.file=/etc/promtail/docker-config.yaml
    networks:
      - loki

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    networks:
      - loki

然后直接使用 docker-compose 啟動即可:

docker-compose up -d

使用

安裝完成后,訪問節(jié)點的 3000 端口訪問 grafana,默認情況下使用(admin:admin)訪問 -> 選擇添加數(shù)據(jù)源:
在數(shù)據(jù)源列表中選擇Loki,配置 Loki 源地址:


image.png

集容器日志

docker安裝loki驅(qū)動收

docker plugin install  grafana/loki-docker-driver:latest --alias loki --grant-all-permissions

然后配置需要收集日志的服務docker-compose文件

    logging:
      driver: loki
      options:
        loki-url: http://loki:3100/api/prom/push"
        loki-retries: "5"
        loki-batch-size: "400"

效果:


image.png

目前支持以下標簽匹配運算符:

  • =等于
  • !=不相等
  • =~正則表達式匹配
  • !~不匹配正則表達式

參考:https://blog.kelu.org/tech/2020/01/31/grafana-loki-for-logging-aggregation.html

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容