رصد postgres داخل Openshift

يوم جيد لسكان هبر!

أريد أن أخبرك اليوم كيف كنا نرغب حقًا في مراقبة postgres واثنين من الكيانات داخل نظام OpenShift وكيف قمنا بذلك.

عند المدخل ، كان لديهم:

  • Openshift
  • خوذة
  • بروميثيوس


للعمل مع تطبيق java ، كان كل شيء بسيطًا وشفافًا ، وكان أكثر دقة ، ثم:

1) إضافة إلى build.gradle

implementation "io.micrometer:micrometer-registry-prometheus" 

2) إطلاق بروميثيوس مع التكوين

  - job_name: 'job-name' metrics_path: '/actuator/prometheus' scrape_interval: 5s kubernetes_sd_configs: - role: pod namespaces: names: - 'name' 

3) إضافة عرض في غرافانا

كان كل شيء بسيطًا وصريحًا إلى أن يحين الوقت لمراقبة القواعد القريبة منا في مساحة الاسم (نعم ، هذا سيء ، لا أحد يفعل ذلك ، لكن هذا يحدث بشكل مختلف).

كيف يعمل هذا؟


بالإضافة إلى الموقد مع postgres و prometheus نفسها ، نحن بحاجة إلى كيان آخر مصدر.

المصدر التجريدي هو وكيل يجمع المقاييس من تطبيق أو حتى خادم. بالنسبة إلى postgres ، يتم كتابة المصدر في Go ، وهو يعمل على مبدأ تشغيل البرامج النصية استنادًا إلى sql من الداخل ، ثم يأخذ prometheus النتائج. كما يسمح لك بتوسيع المقاييس التي تم جمعها عن طريق إضافة الخاصة بك.

نحن ننشرها على هذا النحو (publish.yaml example ، ليس ملزماً بأي شيء):

 --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: postgres-exporter labels: app: {{ .Values.name }} monitoring: prometheus spec: serviceName: {{ .Values.name }} replicas: 1 revisionHistoryLimit: 5 template: metadata: labels: app: postgres-exporter monitoring: prometheus spec: containers: - env: - name: DATA_SOURCE_URI value: postgresdb:5432/pstgr?sslmode=disable - name: DATA_SOURCE_USER value: postgres - name: DATA_SOURCE_PASS value: postgres resources: limits: cpu: 100m memory: 50Mi requests: cpu: 100m memory: 50Mi livenessProbe: tcpSocket: port: metrics initialDelaySeconds: 30 periodSeconds: 30 readinessProbe: tcpSocket: port: metrics initialDelaySeconds: 10 periodSeconds: 30 image: exporter name: postgres-exporter ports: - containerPort: 9187 name: metrics 

هو أيضا بحاجة إلى خدمة و imagestream.

بعد النشر ، نريد حقًا من الجميع رؤية بعضهم البعض.

أضف القطعة التالية إلى تهيئة prometheus:

  - job_name: 'postgres_exporter' metrics_path: '/metrics' scrape_interval: 5s dns_sd_configs: - names: - 'postgres-exporter' type: 'A' port: 9187 

وبعد ذلك نجح كل شيء ، يبقى إضافة كل هذا الخير إلى العنب والتمتع بالنتيجة.

بالإضافة إلى القدرة على إضافة طلبات البحث الخاصة بك ، في بروميثيوس يمكنك تغيير الإعداد ، وجمع المقاييس اللازمة أكثر استهدافًا.

تم تنفيذ طريقة مماثلة لـ:

  • كافكا
  • Elasticsearch
  • مونجو

ملاحظة: جميع البيانات المتعلقة بالأسماء والموانئ والباقي مأخوذة من السقف ولا تحمل أي معلومات.

روابط مفيدة:
قائمة مختلف المصدرين

Source: https://habr.com/ru/post/ar467915/


All Articles