Барлығына сәттілік.
Мен үшінші тарап қызметтерінен алынған жүйелерге көрсеткіштерді тіркеу және жинау бойынша жалпылама нұсқаулықты онлайнда таба алмадым.
Тіркеу
Көптеген компаниялар журналдарды жинау, қарау және орталықтандыру үшін көптеген технологияларды пайдаланады
мәндер.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"
Журналдарды данаға жіберу үшін
Бұл қосымшаны барлығына орнату керек
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 }}"
...
мұнда loki_url:
Көрсеткіштер
Көрсеткіштер PostgreSQL көмегімен жиналады
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"
...
Түсінікті болу үшін біз соңғы нүктелерді пайдаланып сыртқы күйі бар қызметтердің атауларын жазамыз.
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 }}
Postgres_exporter деректерін алу үшін Prometheus конфигурациялау ішкі диаграммадағы мәндерді өңдеу арқылы орындалады.
мәндер.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Алынған деректерді визуализациялау үшін тиісті бақылау тақтасын орнатыңыз
Бұл қалай көрінеді
Бұл қысқа мақала сізге осы шешімнің негізгі идеяларын түсінуге көмектесті және Kubernetes кластерінде Loki/Prometheus үшін сыртқы қызметтерді бақылау мен тіркеуді орнату кезінде уақытты үнемдеді деп үміттенемін.
Ақпарат көзі: www.habr.com