地址:
https://github.com/martin-helmich/prometheus-nginxlog-exporter
https://www.martin-helmich.de/en/blog/monitoring-nginx.html
客户端配置:
配置接口监控:
cd /opt/prometheus/prometheus-nginxlog-exporter
vim prometheus-nginxlog-exporter.yaml
listen:
port: 4040
address: "0.0.0.0"
namespaces:
- name: nginx
# 指定日志格式,必须与 nginx.conf 中的定义匹配
format: format = '[$time_local]-[$real_ip]- \"$request\" $status $body_bytes_sent \"$http_referer\" \"$http_user_agent\" \"$upstream_response_time\" > $request_time'
source:
files:
- /data/logs/nginx/www. xx.com.log # nginx日志地址
# 核心配置:从 'request' 字段中提取请求的 URI
relabel_configs:
- target_label: request_uri
from: request
split: 2
separator: ' '
labels:
job: "nginx"
environment: "prod"
# 系统启动配置
cat /etc/systemd/system/prometheus-nginxlog-exporter.service
[Unit]
Description=NGINX metrics exporter for Prometheus
Documentation= https://github.com/martin-helmich/prometheus-nginxlog-exporter
After=network-online.target
[Service]
Type=simple
ExecStart=/opt/prometheus/prometheus-nginxlog-exporter/prometheus-nginxlog-exporter -config-file /opt/prometheus/prometheus-nginxlog-exporter/prometheus-nginxlog-exporter.yaml
Restart=always
RestartSec=5
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/data/logs/nginx
NoNewPrivileges=true
CapabilityBoundingSet=
[Install]
WantedBy=multi-user.target
启动命令:
systemctl daemon-reload
systemctl start prometheus-nginxlog-exporter
服务端配置:
# 警告配置alert.yml
# /auth/rest/register-new-account-common该接口5分钟内访问超过20次发报警邮件
- name: nginx_api_alert
rules:
- alert: HighFrequencyRegisterAPI
expr: sum(increase(nginx_http_requests_total{uri="/auth/rest/register-new-account-common"}[5m])) > 20
for: 0m # 条件满足立即告警
labels:
severity: warning
service: user-registration
annotations:
summary: "用户注册接口调用频率过高 (实例: {{ $labels.instance }})"
description: "接口 /auth/rest/register-new-account-common 在过去5分钟内已被访问 {{ $value }} 次,超过20次的阈值。"
# prometheus.yaml配置
- job_name: "nginxlog"
static_configs:
- targets: ["192.168.1.10:4040"]
metrics_path: '/metrics'
scrape_interval: 15s
在http://192.168.1.1:9090/的status-》target中可以看到


浙公网安备 33010602011771号