Good luck sa lahat.
Wala akong nakitang pangkalahatang gabay sa Internet sa pag-log at pagkolekta ng mga sukatan mula sa mga serbisyo ng third-party sa mga system na naka-deploy sa
Pagtotroso
Maraming mga kumpanya ang gumagamit ng isang stack ng mga teknolohiya upang mangolekta, tingnan at isentro ang mga log
values.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"
Upang magpadala ng mga log sa isang instance
Dapat mong i-install ang add-on na ito sa lahat
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 }}"
...
saan loki_url:
Mga sukatan
Ang mga sukatan ay kinokolekta mula sa PostgreSQL gamit
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"
...
Para sa higit na kalinawan, isusulat namin ang mga pangalan ng panlabas na stateful na serbisyo gamit ang Endpoints.
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 }}
Ang pag-configure ng Prometheus upang makatanggap ng data ng postgres_exporter ay ginagawa sa pamamagitan ng pag-edit ng mga halaga sa subchart.
values.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Upang mailarawan ang natanggap na data, i-install ang naaangkop na Dashboard sa
Ano ang hitsura nito
Umaasa akong nakatulong sa iyo ang maikling artikulong ito na maunawaan ang mga pangunahing ideya sa likod ng solusyong ito at nakatipid ka ng oras kapag nagse-set up ng pagsubaybay at pag-log ng mga panlabas na serbisyo para sa Loki/Prometheus sa isang Kubernetes cluster.
Pinagmulan: www.habr.com