Edu kõigile.
Ma ei leidnud veebist üldist juhendit kolmandate osapoolte teenustest kasutatavatesse süsteemidesse logimise ja mõõdikute kogumise kohta.
Logimine
Paljud ettevõtted kasutavad logide kogumiseks, vaatamiseks ja tsentraliseerimiseks paljusid tehnoloogiaid
väärtused.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"
Logide saatmiseks eksemplarile
Peate installima selle lisandmooduli kõigele
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 }}"
...
kus loki_url:
Mõõdikud
Mõõdikud kogutakse PostgreSQL-ist kasutades
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"
...
Suurema selguse huvides kirjutame väliste olekupõhiste teenuste nimed lõpp-punktide abil.
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 }}
Prometheuse konfigureerimine postgres_exporteri andmete vastuvõtmiseks toimub alamdiagrammi väärtuste redigeerimise teel.
väärtused.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Vastuvõetud andmete visualiseerimiseks installige sobiv armatuurlaud
Kuidas see välja näeb
Loodan, et see lühike artikkel aitas teil mõista selle lahenduse peamisi ideid ja säästis teie aega Kubernetese klastris Loki/Prometheuse välisteenuste jälgimise ja logimise seadistamisel.
Allikas: www.habr.com