使用grok exporter 做為log 與prometheus 的橋


grok 是一個工具,可以用來解析非結構化的日志文件,可以使其結構化,同時方便查詢,grok 被logstash 大量依賴
同時社區也提供了一個prometheus 的exporter 可以方便的進行log 指標,暴露為promethesu 的標准數據格式,當
然谷歌的mtail 也是一個不錯的選擇,同時性能很不錯,擴展也很方便(提供了自己的處理語言),對於比較熟悉
logstash 的同學grok 是一個很不錯的選擇。
以下演示一個簡單的基於grok exporter的log 統計分析功能

環境准備

  • docker-compose 文件
 
version: "3.7"
services: 
  grafana:
    image: grafana/grafana
    ports:
    - "3000:3000"
  prometheus:
    image: prom/prometheus
    volumes:
    - "./prometheus.yml:/etc/prometheus/prometheus.yml"
    ports:
    - "9090:9090" 
  grok:
    image: dalongrong/grok-exporter
    volumes: 
    - "./example:/opt/example"
    - "./grok.yaml:/grok/config.yml"
    ports: 
    - "9144:9144"
  • grok 配置文件說明
global:
    config_version: 2
input:
    type: file
    path: /opt/example/examples.log
    readall: true
grok:
    patterns_dir: ./patterns
metrics:
    - type: counter
      name: grok_example_lines_total
      help: Counter metric example with labels.
      match: '%{DATE} %{TIME} %{USER:user} %{NUMBER}'
      labels:
          user: '{{.user}}'
server:
    port: 9144
  • promethesu 靜態配置文件
scrape_configs:
  - job_name: grok
    metrics_path: /metrics
    scrape_interval: 10s
    scrape_timeout: 10s
    static_configs:
      - targets: ['grok:9144']
  • log 日志文件格式
30.07.2016 14:37:03 alice 1.5
30.07.2016 14:37:33 alice 2.5
30.07.2016 14:43:02 bob 2.5
30.07.2016 14:45:59 alice 2.5
30.07.2016 14:46:59 dalong 2.5
30.07.2016 14:47:59 dalong 2.5
30.07.2016 14:48:59 dalong 2.5

啟動&&測試

  • 啟動
docker-compose up -d

 

  • prometheus web console

 

  • grafana 圖表

 

說明

當前支持的metrics 有計數,儀表板,直方圖,摘要,是一個不錯的工具,作者當前也在開發支持多日志文件的處理

參考資料

https://github.com/fstab/grok_exporter
https://github.com/google/mtail
https://github.com/rongfengliang/grok-exporter-docker-compose


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM