Onnea kaikille.
En ole löytänyt verkosta yleistettyä opasta kolmannen osapuolen palveluiden tietojen kirjaamisesta ja keräämisestä järjestelmiin, jotka on otettu käyttöön
Kirjaaminen
Monet yritykset käyttävät pinoa tekniikoita lokien keräämiseen, tarkastelemiseen ja keskittämiseen
arvot.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"
Lokien lähettäminen esiintymään
Sinun on asennettava tämä lisäosa kaikkeen
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 }}"
...
missä loki_url:
Mittarit
Mittarit kerätään PostgreSQL:stä käyttämällä
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"
...
Selvyyden vuoksi kirjoitamme ulkoisten tilallisten palveluiden nimet käyttämällä päätepisteitä.
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 }}
Prometheusin määrittäminen vastaanottamaan postgres_exporter-tietoja tehdään muokkaamalla alakaavion arvoja.
arvot.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Jos haluat visualisoida vastaanotetut tiedot, asenna sopiva hallintapaneeli
Mitä se näyttää
Toivon, että tämä lyhyt artikkeli auttoi sinua ymmärtämään tämän ratkaisun tärkeimmät ideat ja säästät aikaasi, kun määrität Loki/Prometheuksen ulkoisten palvelujen valvontaa ja kirjaamista Kubernetes-klusteriin.
Lähde: will.com