Для получения данных с 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