【问题标题】:flag provided but not defined in nginx prometheus exporter在 nginx prometheus 导出器中提供但未定义的标志
【发布时间】:2020-10-02 15:36:40
【问题描述】:

我正在尝试在 kubernetes 集群中部署一个 nginx prometheus 导出器 (https://github.com/nginxinc/nginx-prometheus-exporter),但是如果我在 args 标记中使用参数“-nginx.scrape-uri”,它会失败。如果我删除它,那么它可以工作,但使用默认值“127.0.0.1:8080”

我应该如何传递这个参数?

这是我的 deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-prometheus-exporter
  namespace: monitoring
  labels:
    k8s-app: nginx-prometheus-exporter
spec:
  selector:
    matchLabels:
      k8s-app: nginx-prometheus-exporter
  template:
    metadata:
      labels:
        k8s-app: nginx-prometheus-exporter
      annotations:
        prometheus.io/path: "/metrics"
        prometheus.io/port: "9113"
        prometheus.io/scrape: "true"
    spec:
      containers:
      - name: nginx-prometheus-exporter
        image: infra-harbor-paas.attmx-ne.local/matrixx_lab01/nginx/nginx-prometheus-exporter:0.8.0
        args: ["-nginx.scrape-uri http://10.150.152.206:8080/stub_status"]
        ports:
        - containerPort: 9113
          name: http
      imagePullSecrets:
        - name: regcred

这里是它抛出的错误

oscar@dlmx:~$ kubectl logs nginx-prometheus-exporter-84f6f6bfd5-9rv6h -n monitoring
flag provided but not defined: -nginx.scrape-uri http://10.150.152.206:8080/stub_status
Usage of /usr/bin/exporter:
  -nginx.plus
        Start the exporter for NGINX Plus. By default, the exporter is started for NGINX. The default value can be overwritten by NGINX_PLUS environment variable.
  -nginx.retries uint
        A number of retries the exporter will make on start to connect to the NGINX stub_status page/NGINX Plus API before exiting with an error. The default value can be overwritten by NGINX_RETRIES environment variable.
  -nginx.retry-interval value
        An interval between retries to connect to the NGINX stub_status page/NGINX Plus API on start. The default value can be overwritten by NGINX_RETRY_INTERVAL environment variable. (default 5s)
  -nginx.scrape-uri string
        A URI or unix domain socket path for scraping NGINX or NGINX Plus metrics.
        For NGINX, the stub_status page must be available through the URI. For NGINX Plus -- the API. The default value can be overwritten by SCRAPE_URI environment variable. (default "http://127.0.0.1:8080/stub_status")
  -nginx.ssl-ca-cert string
        Path to the PEM encoded CA certificate file used to validate the servers SSL certificate. The default value can be overwritten by SSL_CA_CERT environment variable.
  -nginx.ssl-client-cert string
        Path to the PEM encoded client certificate file to use when connecting to the server. The default value can be overwritten by SSL_CLIENT_CERT environment variable.
  -nginx.ssl-client-key string
        Path to the PEM encoded client certificate key file to use when connecting to the server. The default value can be overwritten by SSL_CLIENT_KEY environment variable.
  -nginx.ssl-verify
        Perform SSL certificate verification. The default value can be overwritten by SSL_VERIFY environment variable. (default true)
  -nginx.timeout value
        A timeout for scraping metrics from NGINX or NGINX Plus. The default value can be overwritten by TIMEOUT environment variable. (default 5s)
  -prometheus.const-labels value
        A comma separated list of constant labels that will be used in every metric. Format is label1=value1,label2=value2... The default value can be overwritten by CONST_LABELS environment variable.
  -web.listen-address string
        An address or unix domain socket path to listen on for web interface and telemetry. The default value can be overwritten by LISTEN_ADDRESS environment variable. (default ":9113")
  -web.telemetry-path string
        A path under which to expose metrics. The default value can be overwritten by TELEMETRY_PATH environment variable. (default "/metrics")

【问题讨论】:

    标签: docker nginx kubernetes prometheus


    【解决方案1】:

    试试这个:

        spec:
          containers:
          - name: nginx-prometheus-exporter
            image: infra-harbor-paas.attmx-ne.local/matrixx_lab01/nginx/nginx-prometheus-exporter:0.8.0
            args: 
            - "-nginx.scrape-uri=http://10.150.152.206:8080/stub_status"
    

    【讨论】:

    • 谢谢,我认为这是正确的答案,现在我收到此消息:2020/10/02 16:22:41 启动 NGINX Prometheus Exporter Version= GitCommit= 2020/10/02 16:22:46无法创建 Nginx 客户端:无法获取 10.150.152.206:8080/stub_status:获取“10.150.152.206:8080/stub_status”:net/http:请求在等待连接时取消(等待标头时超出 Client.Timeout)但我猜 nginx 需要公开 uri 以获取指标,我说的对吗?
    • 是的,“10.150.152.206:8080/stub_status”网址应该公开指标。
    猜你喜欢
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多