Sterkte aan almal.
Ek het nie 'n algemene gids aanlyn gevind oor die aanteken en insamel van statistieke van derdeparty-dienste na stelsels wat in
Tekening
Baie maatskappye gebruik 'n stapel tegnologie om logs te versamel, te bekyk en te sentraliseer
waardes.yaml
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: kube-loki.example.domain
paths:
- /
tls: []
....
persistence:
type: pvc
enabled: true
accessModes:
- ReadWriteOnce
size: 100Gi
finalizers:
- kubernetes.io/pvc-protection
existingClaim: "pv-loki"
Om logs na 'n instansie te stuur
U moet hierdie byvoeging op alles installeer
postgres.yaml
- name: Run containers
docker_compose:
project_name: main-postgres
definition:
version: '3.7'
services:
p:
image: "{{ postgres_version }}"
container_name: postgresql
restart: always
volumes:
- "{{ postgres_dir }}/data:/var/lib/postgresql/data"
- "{{ postgres_dir }}/postgres_init_scripts:/docker-entrypoint-initdb.d"
environment:
POSTGRES_PASSWORD: {{ postgres_pass }}
POSTGRES_USER: {{ postgres_user }}
ports:
- "{{ postgres_ip }}:{{ postgres_port }}:5432"
logging:
driver: "loki"
options:
loki-url: "{{ loki_url }}"
loki-batch-size: "{{ loki_batch_size }}"
loki-retries: "{{ loki_retries }}"
...
waar loki_url:
Metrieke
Metrieke word van PostgreSQL ingesamel met behulp van
postgres.yaml
...
pexp:
image: "wrouesnel/postgres_exporter"
container_name: pexporter
restart: unless-stopped
environment:
DATA_SOURCE_NAME: "postgresql://{{ postgres_user }}:{{ postgres_pass }}@p:5432/postgres?sslmode=disable"
ports:
- "{{ postgres_ip }}:{{ postgres_exporter_port }}:9187"
logging:
driver: "json-file"
options:
max-size: "5m"
...
Vir groter duidelikheid, sal ons die name van eksterne stateful dienste met behulp van Eindpunte skryf.
postgres-service.yaml
apiVersion: v1
kind: Endpoints
metadata:
name: postgres-exporter
subsets:
- addresses:
- ip: {{ .Values.service.postgres.ip }}
ports:
- port: {{ .Values.service.postgres.port }}
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: postgres-exporter
labels:
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
spec:
ports:
- protocol: TCP
port: {{ .Values.service.postgres.port }}
targetPort: {{ .Values.service.postgres.port }}
Die opstel van Prometheus om postgres_exporter-data te ontvang, word gedoen deur waardes in die subgrafiek te wysig.
waardes.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Om die ontvangde data te visualiseer, installeer die toepaslike Dashboard in
Hoe lyk dit
Ek hoop dat hierdie kort artikel jou gehelp het om die hoofgedagtes agter hierdie oplossing te verstaan ββen jou tyd bespaar het met die opstel van monitering en aantekening van eksterne dienste vir Loki/Prometheus in 'n Kubernetes-groepering.
Bron: will.com