все. Я переписываю образ nginx и добавляю nginx-module-vts через двоичную компиляцию. Через контейнер вспомогательной машины nginx-vts-exporter я получаю данные JSON из основного сервисного контейнера и преобразую их в метрики. Мне удалось получить данные вручную, но на странице Прометея не было найдено ни одного индекса запроса, только nginx_vts_exporter_build_info. Может кто-нибудь дать мне несколько идей для решения проблемы? Пожалуйста. Спасибо
Вот мой файл yaml для nginx
apiVersion: apps/v1
kind: Deployment
metadata:
name: zx-official-website
namespace: monitoring
spec:
replicas: 3
selector:
matchLabels:
app: zx-official-website
function: nginx
template:
metadata:
labels:
app: zx-official-website
function: nginx
spec:
containers:
- name: zx-official-website
image: zx-official-website:1.0.1
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 180
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
timeoutSeconds: 1
- name: nginx-exporter
image: sophos/nginx-vts-exporter:latest
env:
- name: NGINX_STATUS
value: http://localhost/status/format/json
- name: METRICS_ENDPOINT
value: /metrics
- name: METRICS_ADDR
value: :9913
- name: METRICS_NS
value: monitoring
ports:
- containerPort: 9913
hostPort: 9913
name: metrics
Вот мой файл yaml для службы nginx
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: nginx-exporter
name: nginx-exporter
namespace: monitoring
spec:
clusterIP: None
ports:
- name: metrics
port: 9913
targetPort: metrics
selector:
function: nginx
Вот мой yaml-файл для nginx serviceMonitor
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
k8s-app: nginx-exporter
name: nginx-exporter
namespace: monitoring
spec:
endpoints:
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
interval: 30s
port: metrics
scheme: http
tlsConfig:
insecureSkipVerify: true
jobLabel: k8s-app
selector:
matchLabels:
k8s-app: nginx-exporter