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
- 配置grafana
打開http://localhost:3000 按照提示操作即可 - prometheus metrics 查看
- prometheus web console
- grafana 圖表
說明
當前支持的metrics 有計數,儀表板,直方圖,摘要,是一個不錯的工具,作者當前也在開發支持多日志文件的處理
參考資料
https://github.com/fstab/grok_exporter
https://github.com/google/mtail
https://github.com/rongfengliang/grok-exporter-docker-compose