
Zorte on guztioi.
Ez dut sarean gida orokorrik aurkitu hirugarrenen zerbitzuetatik inplementatutako sistemetan erregistratu eta neurketak biltzeko. . Nire irtenbidea argitaratzen ari naiz. Artikulu honek suposatzen du dagoeneko lan bat duzula eta beste zerbitzu batzuk. Kanpoko egoera zerbitzu baterako datu-iturburu baten adibide gisa, DBMS bat erabiliko da edukiontzi batean . Enpresak paketeen kudeatzailea erabiltzen du , behean testuan horren inguruko adibideak egongo dira. Soluzio osorako, gure diagrama propioa prestatzen ari gara, erabilitako zerbitzu guztien grafiko habiaratuak biltzen dituena.
Erregistratzea
Enpresa askok teknologia pila erabiltzen dituzte erregistroak biltzeko, ikusteko eta zentralizatzeko + + , ELK gisa laburtua. Gure kasuan, ez dago edukia indexatu beharrik eta arinago bat erabili dut . Helm pakete gisa dago eskuragarri, azpidiagrama gisa gehitu dugu sarrera eta pv balioak aldatuz gure sistemara egokitzeko.
balioak.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"
Instantzia batera erregistroak bidaltzeko erabilera .
Gehigarri hau guztia instalatu behar duzu erregistroak jaso nahi dituzun ostalariak. Daemonari betegarria nola erabili esateko hainbat modu daude. Yaml-en kontrolatzailea hautatzen dut , parte dena jolas liburua.
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 }}"
...
non loki_url:
Metrikak
Metrikak PostgreSQL-tik biltzen dira egiteko . Goiko fitxategiaren jarraipena jolas liburua.
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"
...
Argitasun handiagoa lortzeko, Endpoints erabiliz kanpoko egoera-zerbitzuen izenak idatziko ditugu.
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 }}
Prometheus postgres_exporter datuak jasotzeko konfiguratzea azpidiagramako balioak editatuz egiten da.
balioak.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Jasotako datuak ikusteko, instalatu dagokion Arbela
eta datu-iturriak konfiguratu. Hau Grafana azpidiagramako balioen bidez ere egin daiteke.
Nolakoa da

Espero dut artikulu labur honek irtenbide honen atzean dauden ideia nagusiak ulertzen lagundu izana eta denbora aurreztu izana Loki/Prometheus-en kanpoko zerbitzuen jarraipena eta saioa Kubernetes kluster batean konfiguratzean.
Iturria: www.habr.com
