Hər kəsə uğurlar.
Mən üçüncü tərəf xidmətlərindən istifadə edilən sistemlərdə ölçüləri qeyd etmək və toplamaq üçün onlayn ümumiləşdirilmiş bələdçi tapmadım.
Giriş
Bir çox şirkət jurnalları toplamaq, baxmaq və mərkəzləşdirmək üçün bir sıra texnologiyalardan istifadə edir
dəyərlər.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"
Günlükləri nümunəyə göndərmək üçün
Bu əlavəni hər şeyə quraşdırmalısınız
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 }}"
...
harada loki_url:
Metriklər
Metriklər PostgreSQL-dən istifadə edərək toplanır
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"
...
Daha aydınlıq üçün biz Endpoints istifadə edərək xarici dövlət xidmətlərinin adlarını yazacağıq.
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-u postgres_exporter məlumatlarını qəbul etmək üçün konfiqurasiya etmək alt diaqramdakı dəyərləri redaktə etməklə həyata keçirilir.
dəyərlər.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Alınan məlumatları vizuallaşdırmaq üçün müvafiq Dashboard quraşdırın
Nə bənzəyir?
Ümid edirəm ki, bu qısa məqalə bu həllin arxasında duran əsas fikirləri anlamağa kömək etdi və Kubernetes klasterində Loki/Prometheus üçün xarici xidmətlərin monitorinqini və qeydiyyatını qurarkən vaxtınıza qənaət etdi.
Mənbə: www.habr.com