Semoga sukses untuk semuanya.
Saya belum menemukan panduan umum online tentang pencatatan dan pengumpulan metrik dari layanan pihak ketiga ke dalam sistem yang diterapkan
Penebangan
Banyak perusahaan menggunakan serangkaian teknologi untuk mengumpulkan, melihat, dan memusatkan log
nilai.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"
Untuk mengirim log ke sebuah instance
Anda harus menginstal add-on ini pada semuanya
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 }}"
...
di mana loki_url:
Metrik
Metrik dikumpulkan dari PostgreSQL menggunakan
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"
...
Untuk lebih jelasnya, kami akan menulis nama layanan stateful eksternal menggunakan Endpoint.
postgres-layanan.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 }}
Mengonfigurasi Prometheus untuk menerima data postgres_exporter dilakukan dengan mengedit nilai di subchart.
nilai.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Untuk memvisualisasikan data yang diterima, instal Dashboard yang sesuai
Seperti apa bentuknya
Saya harap artikel singkat ini membantu Anda memahami ide utama di balik solusi ini dan menghemat waktu Anda saat menyiapkan pemantauan dan pencatatan layanan eksternal untuk Loki/Prometheus di cluster Kubernetes.
Sumber: www.habr.com