nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
,则说明 Nginx 已启用 stub_status 模块。--with-http_stub_status_module
参数从源码重新配置编译一个 Nginx。示例如下:./configure \\… \\ ## 之前编译nginx所需的命令--with-http_stub_status_modulemakesudo make install
/etc/nginx/conf.d
)下的 default.conf 配置信息进行拷贝,创建 ConfigMap,将配置信息添加到该 ConfigMap 中,ConfigMap 相关操作指引见 ConfigMap 管理。server {listen 8080; # 根据业务情况进行调整listen [::]:8080; # 根据业务情况进行调整server_name localhost; # 根据业务情况进行调整location = /stub_status { # 具体路径可根据业务情况进行调整stub_status;}}
nginx -tnginx -s reload
curl http://localhost:8080/stub_status ## 根据配置文件中配置内容进行相应调整
Active connections: 45server accepts handled requests1056958 1156958 4491319Reading: 0 Writing: 25 Waiting : 7
参数 | 说明 |
名称 | 集成名称,命名规范如下: 名称具有唯一性。 名称需要符合下面的正则:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$'。 |
地址 | Nginx 服务的连接地址。 |
路径 | Nginx 服务的服务状态路径,在配置中指定 |
用户名 | Nginx 服务 HTTP 验证用的用户名称。 |
密码 | Nginx 服务 HTTP 验证用的密码。 |
标签 | 给指标添加自定义 Label。 |
apiVersion: apps/v1kind: Deploymentmetadata:labels:k8s-app: nginx-exporter # 根据业务需要调整成对应的名称,建议加上 Nginx 实例的信息name: nginx-exporter # 根据业务需要调整成对应的名称,建议加上 Nginx 实例的信息namespace: nginx-demo # 根据业务需要调整成对应的命名空间spec:replicas: 1selector:matchLabels:k8s-app: nginx-exporter # 根据业务需要调整成对应的名称,建议加上 Nginx 实例的信息template:metadata:labels:k8s-app: nginx-exporter # 根据业务需要调整成对应的名称,建议加上 Nginx 实例的信息spec:containers:- args:- --web.listen-address=:8080- --nginx.scrape-uri=http://127.0.0.1:8080/stub_status # 根据业务需要调整成 Nginx 实例对应地址image: ccr.ccs.tencentyun.com/rig-agent/common-image:nginx-exporter-v1.1.0name: nginx-exporterports:- containerPort: 9113name: metric-portterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstimagePullSecrets:- name: qcloudregistrykeyrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30
wget -qO- http://localhost:8080/metrics
PodMonitors
来定义 Prometheus 抓取任务,YAML 配置示例如下:apiVersion: monitoring.coreos.com/v1kind: PodMonitormetadata:name: nginx-exporter # 填写一个唯一名称namespace: cm-prometheus # 按量实例: 集群的 namesapce; 包年包月实例(已停止售卖): namespace 固定,不要修改spec:podMetricsEndpoints:- interval: 30sport: metric-port # 填写pod yaml中Prometheus Exporter对应的Port的Namepath: /metrics # 填写Prometheus Exporter对应的Path的值,不填默认/metricsrelabelings:- action: replacesourceLabels:- instanceregex: (.*)targetLabel: instancereplacement: 'crs-xxxxxx' # 调整成对应的 Nginx 实例信息namespaceSelector: # 选择要监控pod所在的namespacematchNames:- nginx-demoselector: # 填写要监控pod的Label值,以定位目标podmatchLabels:k8s-app: nginx-exporter
名称 | 描述 |
web.telemetry-path | 指标暴露路径,默认 /metrics 。 |
nginx.scrape-uri | nginx 指标抓取 url,默认 http://127.0.0.1:8080/stub_status 。 |
[no-]nginx.plus | 是否启用 NGINX Plus,默认是启用的。 |
[no-]nginx.ssl-verify | 是否验证 ssl 证书。 |
nginx.ssl-ca-cert | ssl 证书路径。 |
nginx.ssl-client-cert | ssl 证书路径。 |
nginx.ssl-client-key | ssl 证书路径。 |
nginx.timeout | nginx 指标抓取超时。 |
prometheus.const-label | 将在每个指标中使用的标签。格式为 label=value,允许重复多次。 |
[no-]web.systemd-socket | 使用 systemd 套接字监听器代替端口监听器(仅限 Linux)。 |
web.listen-address | 监听地址,默认:9113。 |
web.config.file | 配置文件的路径,可以启用 TLS 或身份验证(实验性参数)。 |
log.level | 日志级别,默认 info。 |
log.format | 日志消息的输出格式,取值范围:[logfmt,json],默认 logfmt。 |
version | 打印版本信息。 |
本页内容是否解决了您的问题?