سب کو مبارک ہو۔
میں نے تعینات کردہ سسٹمز میں تھرڈ پارٹی سروسز سے میٹرکس کو لاگ ان کرنے اور جمع کرنے کے بارے میں آن لائن کوئی عام گائیڈ نہیں ملا
لاگنگ
بہت سی کمپنیاں لاگز کو جمع کرنے، دیکھنے اور سنٹرلائز کرنے کے لیے ٹیکنالوجیز کا ایک ڈھیر استعمال کرتی ہیں۔
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"
کسی مثال کے لیے لاگ بھیجنے کے لیے
آپ کو یہ ایڈ آن ہر چیز پر انسٹال کرنا ہوگا۔
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 ڈیٹا حاصل کرنے کے لیے کنفیگر کرنا سب چارٹ میں اقدار میں ترمیم کرکے کیا جاتا ہے۔
values.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
موصولہ ڈیٹا کو دیکھنے کے لیے، مناسب ڈیش بورڈ انسٹال کریں۔
ایسا کیا لگتا ہے؟
مجھے امید ہے کہ اس مختصر مضمون نے اس حل کے پیچھے بنیادی خیالات کو سمجھنے میں آپ کی مدد کی ہے اور کبرنیٹس کلسٹر میں لوکی/پرومیتھیس کے لیے بیرونی خدمات کی نگرانی اور لاگنگ ترتیب دیتے وقت آپ کا وقت بچایا ہے۔
ماخذ: www.habr.com