همگی موفق باشید.
من یک راهنمای کلی آنلاین در مورد ثبت و جمعآوری معیارها از خدمات شخص ثالث به سیستمهای مستقر در
ورود به سیستم
بسیاری از شرکت ها از مجموعه ای از فناوری ها برای جمع آوری، مشاهده و متمرکز کردن گزارش ها استفاده می کنند
ارزش ها.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"
...
برای وضوح بیشتر، نام سرویس های حالت دار خارجی را با استفاده از 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 }}
پیکربندی Prometheus برای دریافت داده های postgres_exporter با ویرایش مقادیر در نمودار فرعی انجام می شود.
ارزش ها.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
برای تجسم داده های دریافتی، داشبورد مناسب را در آن نصب کنید
چه چیزی به نظر می رسد
امیدوارم این مقاله کوتاه به شما در درک ایده های اصلی این راه حل کمک کرده باشد و در زمان تنظیم نظارت و ثبت سرویس های خارجی برای Loki/Prometheus در یک خوشه Kubernetes در وقت شما صرفه جویی کند.
منبع: www.habr.com