Для получения данных с Nginx status монитора в Prometheus необходим запуск Prometheus exporter в Kubernetes кластере. Напишем deployment манифест для запуска экспортера в Prometheus.
Создадим файл exporter.yaml:
apiVersion: apps/v1beta1 kind: Deployment metadata: name: nginx-prometheus-exporter spec: replicas: 1 template: metadata: labels: app:nginx-prometheus-exporter spec: containers: - name:nginx-prometheus-exporter image: "nginx/nginx-prometheus-exporter:0.8.0" imagePullPolicy: Always args: ["-nginx.scrape-uri", "https://mywebsite/basic_status"] ports: - containerPort: 9113 name: http --- apiVersion: v1 kind: Service metadata: name: nginx-prometheus-exporter annotations: prometheus.io/scrape: 'true' prometheus.io/port: '9113' spec: ports: - name: http port: 80 protocol: TCP targetPort: 9113 selector: app: nginx-prometheus-exporter type: ClusterIP
Для того, чтобы Prometheus мог забирать данные с pod-ов очень важно добавить соответствующую аннотацию в Service манифест:
prometheus.io/scrape: 'true' prometheus.io/port: '9113'
Далее применяем манифест:
kubectl apply -f exporter.yaml