编译二进制
go build -o log2metrics main.go
修改配置文件
http_addr: 0.0.0.0:8087
log_level: INFO
log_strategy:
- metric_name: log_var_log_messages_level_total
metric_help: /var/log/messages中的日志 total
file_path: /var/log/messages
pattern: ".*"
func: cnt
tags:
level: ".*level=(.*?) .*"
- metric_name: ngx_acc_code
metric_help: nginx access日志中的code 数字最大值
file_path: /var/log/nginx/access.log
pattern: '.*\[code=(.*?)\].*'
func: max
- metric_name: ngx_acc_code_sum
metric_help: nginx access日志中的code 数字最大值
file_path: /var/log/nginx/access.log
pattern: '.*\[code=(.*?)\].*'
func: sum
修改nginx access log的logfmat
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'[code=$status] $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
运行服务
查看metrics
echo "::1 - - [04/Sep/2021:12:21:10 +0800] "GET / HTTP/1.1" [code=504] 4833 "-" "curl/7.29.0" "-"" >> /var/log/nginx/access.log


配置prometheus采集
- job_name: 'log2metrics'
honor_timestamps: true
scrape_interval: 15s
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- 192.168.3.200:8087

配置grafana
本节重点总结 :