كيفية إعداد TOBS، تراص الرصد، لرصد Kubernetes

الحالة: مهجورة

هذا المقال مهجور ولم يعد محتفظًا به.

السبب

تم إهمال مثبت TOBS من مصادره.

انظر بدلاً من ذلك

التوثيق الرسمي لـ TOBS.

المقدمةTOBS، والمختصر لتكوين الرصد، هو توزيع جاهز مسبقًا من أدوات الرصد وواجهات لوحة القيادة التي يمكن تثبيتها في أي مجموعة Kubernetes موجودة. يتضمن العديد من أدوات الرصد مفتوحة المصدر الأكثر شهرة مع Prometheus و Grafana كقاعدة، بما في ذلك Promlens و TimescaleDB و Alertmanager، وغيرها. توفر هذه الأدوات معًا حلاً مباشرًا وقابلاً للصيانة لتحليل حركة الخادم وتحديد أي مشاكل محتملة مع نشر بنية مركبة للغاية.

TOBS، المختصر لـ The Observability Stack، هو توزيع معبأ بأدوات المراقبة المسبقة وواجهات لوحات المعاينة التي يمكن تثبيتها في أي سلطة كيرنكس القائمة. يشمل العديد من أشهر أدوات المرصد المفتوحة المصدر مع Prometheus وGrafana كأساس، بما في ذلك Promlens، TimescaleDB، Alertmanager، وغيرها. معًا، هذه توفر حلاً مباشرًا وقابل للصيانة لتحليل حركة المرور على الخوادم وتحديد أي مشاكل محتملة مع نشر حتى نطاق كبير جدًا.

يستخدم TOBS مخططات كيرنكس القياسية Helm charts من أجل تكوين وتحديث النشرات. يمكن تثبيته في أي سلطة كيرنكس، لكنه يمكن إظهاره بشكل أكثر فعالية إذا كنت تدير kubectl لإدارة سلطتك الخاصة من جهاز على الأرض بدلاً من عقدة بعيدة. سيوفر لك DigitalOcean’s Managed Kubernetes تكوينًا مثل هذا بشكل افتراضي.

في هذا البرنامج التعليمي، سوف تقوم بتثبيت TOBS في سلطة كيرنكس موجودة، وتتعلم كيفية التحديث والتكوين وتصفح لوحات مكوناته.

الشروط الأساسية

لمتابعة هذا البرنامج التعليمي، ستحتاج إلى:

الخطوة 1 – التحقق من تكوين كيبرنتيس الخاص بك

من أجل تثبيت TOBS، يجب أن يكون لديك أولاً تكوين كيبرنتيس صالح مع kubectl من خلاله يمكنك تنفيذ البريد الإلكتروني إلى عقد العمل. يمكنك اختبار هذا بتنفيذ kubectl get nodes:

  1. kubectl get nodes

إذا تمكن kubectl من الاتصال بخادم كيبرنتيس الخاص بك وكان على ما يرام، سيعيد هذا الأمر قائمة بالعقد مع حالة Ready:

Output
NAME STATUS ROLES AGE VERSION pool-uqv8a47h0-ul5a7 Ready <none> 22m v1.21.5 pool-uqv8a47h0-ul5am Ready <none> 21m v1.21.5 pool-uqv8a47h0-ul5aq Ready <none> 21m v1.21.5

إذا نجح هذا الامر، يمكنك الانتقال إلى الخطوة 2. إذا لم ينجح، يجب عليك مراجعة تفاصيل التكوين لأي مشاكل.

بشكل افتراضي، kubectl سيبحث عن ملف في المسار ~/.kube/config من أجل فهم بيئتك. من أجل التحقق من وجود هذا الملف وتحتويه على تركيبة صالحة من نصوص YAML، يمكنك تشغيل head عليه لعرض أول عدة أسطر منه، أي:

  1. head ~/.kube/config
Output
apiVersion: v1 clusters: - cluster: certificate-authority-data: …

إذا لم يكن الملف موجودًا، تأكد من تسجيل الدخول كمستخدم نفسه الذي قمت بتكوين Kubernetes معه. المسارات ~/ تعكس مساحات على الدومين المنزلية للمستخدمين الفرديين، ويتم حفظ تكوينات Kubernetes لكل مستخدم بشكل افتراضي.

إذا كنت تستخدم Managed Kubernetes من DigitalOcean، تأكد من تشغيل الأمر doctl kubernetes cluster kubeconfig save بعد إعداد النظام الجاهز حتى يتمكن جهازك المحلي من التواصل معه. سيخلق هذا ملف ~/.kube/config:

  1. doctl kubernetes cluster kubeconfig save your-cluster-name

إذا كنت تستخدم هذا الجهاز للوصول إلى عدة أنظمة جاهزة، يجب عليك مراجعة وثائق Kubernetes حول استخدام المتغيرات البيئة والملفات ال組合多個配置 لتجنب النزاعات. بعد تكوين بيئة kubectl الخاصة بك، يمكنك الانتقال إلى تثبيت TOBS في الخطوة التالية.

الخطوة 2 – تثبيت TOBS واختبار نقاط النهاية الخاصة بك

يتضمن TOBS المكونات التالية:

  • بروميثيوس هو قاعدة بيانات للسلسلة الزمنية وأداة الرصد التي تعمل عن طريق فحص نقاط القياس وجر البيانات ومعالجتها التي يتم تعريضها من هذه النقاط. يتيح لك سؤال هذه البيانات باستخدام بروم كيو ال، لغة سؤال بيانات السلسلة الزمنية.
  • أليرتمانجر، وعادة ما يتم نشره بجانب بروميثيوس، يشكل طبقة التنبيه في المكدس، ويتعامل مع التنبيهات التي تولدها بروميثيوس ويتنطق ويجمع ويوجهها إلى التكاملات مثل البريد الإلكتروني أو بيجر ديوتي. لمعرفة المزيد عن أليرتمانجر، استشر وثائق بروميثيوس حول التنبيه.
  • غرافانا هي أداة للتصور وتحليل البيانات التي تسمح لك ببناء لوحات ورسوم بيانية لبيانات القياسات الخاصة بك.
  • كوب-ستات-ميتريكس هو عبارة عن وكيل إضافي يستمع إلى خادم API كوبرنتس ويولد إحصائيات حول حالة كائنات كوبرنتس مثل التوفيرات والوحدات. تتم خدمة هذه المقاييس كنص عادي على نقاط النقل HTTP وتستهدف بروميثيوس.
  • أخيرًا يوجد node-exporter، مُصدِر Prometheus يعمل على العقد المجمعة ويوفر مقاييس النظام والأجهزة مثل استخدام الوحدة المركزية واستخدام الذاكرة لـ Prometheus. يتم تقديم هذه المقاييس أيضًا كنص عادي على نقاط نهاية HTTP ويتم استهلاكها بواسطة Prometheus.

من أجل تثبيت TOBS، تحتاج أولاً إلى تشغيل مُثبِّت TOBS على طائرتك التحكم. سيقوم هذا بإعداد الأمر tobs والدلائل التكوينية. كما ذكر في المتطلبات الأساسية، يتم تصميم الأمر tobs فقط للعمل على أنظمة Linux/macOS/BSD (مثل برامج Kubernetes الرسمية)، لذا إذا كنت تستخدم Windows حتى الآن، يجب أن تعمل في بيئة Windows Subsystem for Linux.

احصل على مُثبِّت TOBS وقم بتشغيله:

  1. curl --proto '=https' --tlsv1.2 -sSLf https://tsdb.co/install-tobs-sh |sh
Output
tobs 0.7.0 was successfully installed ? Binary is available at /root/.local/bin/tobs.

يمكنك الآن دفع TOBS إلى خادم Kubernetes الخاص بك. يتم ذلك باستخدام سطر واحد باستخدام الأمر tobs الذي قدمته حديثًا:

  1. tobs install

سيولد هذا عدة أسطر من الإخراج وقد يستغرق بضع دقائق. حسب إصدار Kubernetes الخاص بك بالضبط، قد يكون هناك عدة تحذيرات في الإخراج، لكن يمكنك تجاهل هذه طالما أنك تتلقى في النهاية رسالة Welcome to tobs:

Output
WARNING: Using a generated self-signed certificate for TLS access to TimescaleDB. This should only be used for development and demonstration purposes. To use a signed certificate, use the "--tls-timescaledb-cert" and "--tls-timescaledb-key" flags when issuing the tobs install command. Creating TimescaleDB tobs-certificate secret Creating TimescaleDB tobs-credentials secret skipping to create TimescaleDB s3 backup secret as backup option is disabled. 2022/01/10 11:25:34 Transport: unhandled response frame type *http.http2UnknownFrame 2022/01/10 11:25:35 Transport: unhandled response frame type *http.http2UnknownFrame 2022/01/10 11:25:35 Transport: unhandled response frame type *http.http2UnknownFrame Installing The Observability Stack 2022/01/10 11:25:37 Transport: unhandled response frame type *http.http2UnknownFrame W0110 11:25:55.438728 75479 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ W0110 11:25:55.646392 75479 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ … ?? Welcome to tobs, The Observability Stack for Kubernetes …

سيحتوي الإخراج من هذه النقطة وما بعده على تعليمات للاتصال بكل من Prometheus وTimescaleDB وPromLens وGrafana عبر مواقع الويب في متصفح الويب الخاص بك. يتم إعادة طباعته بالكامل أدناه كمرجع:

Output
############################################################################### ? PROMETHEUS NOTES: ############################################################################### Prometheus can be accessed via port 9090 on the following DNS name from within your cluster: tobs-kube-prometheus-prometheus.default.svc.cluster.local Get the Prometheus server URL by running these commands in the same shell: tobs prometheus port-forward The Prometheus alertmanager can be accessed via port 9093 on the following DNS name from within your cluster: tobs-kube-prometheus-alertmanager.default.svc.cluster.local Get the Alertmanager URL by running these commands in the same shell: export POD_NAME=$(kubectl get pods --namespace default -l "app=alertmanager,alertmanager=tobs-kube-prometheus-alertmanager" -o jsonpath="{.items[0].metadata.name}") kubectl --namespace default port-forward $POD_NAME 9093 WARNING! Persistence is disabled on AlertManager. You will lose your data when the AlertManager pod is terminated. ############################################################################### ? TIMESCALEDB NOTES: ############################################################################### TimescaleDB can be accessed via port 5432 on the following DNS name from within your cluster: tobs.default.svc.cluster.local To get your password for superuser run: tobs timescaledb get-password -U <user> To connect to your database, chose one of these options: 1. Run a postgres pod and connect using the psql cli: tobs timescaledb connect -U <user> 2. Directly execute a psql session on the master node tobs timescaledb connect -m ############################################################################### ? PROMLENS NOTES: ############################################################################### PromLens is a PromQL query builder, analyzer, and visualizer. You can access PromLens via a local browser by executing: tobs promlens port-forward Then you can point your browser to http://127.0.0.1:8081/. ############################################################################### ? GRAFANA NOTES: ############################################################################### 1. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster: tobs-grafana.default.svc.cluster.local You can access grafana locally by executing: tobs grafana port-forward Then you can point your browser to http://127.0.0.1:8080/. 2. The 'admin' user password can be retrieved by: tobs grafana get-password 3. You can reset the admin user password with grafana-cli from inside the pod. tobs grafana change-password <password-you-want-to-set>

كل من هذه يتم توفيرها باسم DNS داخلي لمجموعتك الفرعية حتى يمكن الوصول إليها من أي من العقد العاملة لديك، على سبيل المثال tobs-kube-prometheus-alertmanager.default.svc.cluster.local لبروميثيوس. بالإضافة إلى ذلك، هناك أمر توجيه المنافذ المضبوط لكل منها يتيح لك الوصول إليها من جهاز الويب المحلي.

في терمينال جديد، اجري tobs prometheus port-forward:

  1. tobs prometheus port-forward

هذا سيحتل النافذة ما دامت عملية توجيه المنفذ نشطة. يمكنك الضغط على Ctrl+C للخروج بشكل لطيف من عملية حظر مثل هذه عندما تريد التوقف عن توجيه المنفذ. بعد ذلك، في جهاز الويب، انتقل إلى عنوان URL http://127.0.0.1:9090/. يجب أن ترى واجهة بروميثيوس الكاملة التي تعمل وتنتج مقاييس من مجموعتك الفرعية:

يمكنك القيام بالشيء نفسه بالنسبة لغرافانا، الذي يمكن الوصول إليه في http://127.0.0.1:8080/ طالما توجيه المنفذ نشط في عملية أخرى. أولاً، ستحتاج إلى استخدام الأمر get-password المقدم من نتائج المثبت:

  1. tobs grafana get-password
Output
your-grafana-password

يمكنك بعد ذلك استخدام هذه الكلمة السرية لتسجيل الدخول إلى واجهة غرافانا بتشغيل أمر توجيه المنفذ وفتح http://127.0.0.1:8080/ في المتصفح.

  1. tobs grafana port-forward

لديك الآن مكتبة TOBS العاملة في مجموعة فرعية من كيانات كوبنتينوس. يمكنك الرجوع إلى وثائق المكونات الفردية من أجل تعلم ميزات كل منها. في الخطوة الأخيرة من هذا البرنامج التعليمي، ستتعلم كيفية إجراء تحديثات إلى تكوين TOBS نفسه.

الخطوة 3 – تحرير إعدادات TOBS والترقية

تحتوي تكوين TOBS على بعض المعلمات للتطبيقات الفردية في المكدس وبعض المعلمات لنشر TOBS نفسه. يتم إنشاؤه وتخزينه كرسم تخطيطي لينكوبي رسم تخطيطي Helm. يمكنك إخراج تكوينك الحالي عن طريق تشغيل tobs helm show-values. ومع ذلك ، سيؤدي هذا إلى إخراج التكوين الطويل بأكمله إلى терمينالك ، وهو من الصعب قراءته. بدلاً من ذلك ، يمكنك تحويل الإخراج إلى ملف مع امتداد .yaml ، لأن رسوم تخطيطي Helm هي جميعها بنية معتمدة YAML:

  1. tobs helm show-values > values.yaml

ستبدو محتويات الملف هكذا:

~/values.yaml
2022/01/10 11:56:37 Transport: unhandled response frame type *http.http2UnknownFrame
# القيم لتكوين نشر TimescaleDB
# ملفات README للرسوم التخطيطي في:
#    https://github.com/timescale/timescaledb-kubernetes/tree/master/charts/timescaledb-single
# تحقق من الخيارات التكوينية المختلفة (دليل الإدارة) في:
#    https://github.com/timescale/timescaledb-kubernetes/blob/master/charts/timescaledb-single/admin-guide.md
cli: false

# تجاوز اسم مجال النشر
namespaceOverride: ""
…

يمكنك مراجعة المعلمات الإضافية المتاحة لتكوين TOBS من خلال قراءة وثائق TOBS

إذا قمت يومًا بتعديل هذا الملف لتحديث نشرتك، يمكنك إعادة تثبيت TOBS فوق نفسه باستخدام التكوين المُحدَّث. ما عليك سوى تمرير الخيار -f إلى أمر tobs install مع ملف YAML كمُعلمة إضافية:

  1. tobs install -f values.yaml

وأخيرًا، يمكنك ترقية TOBS باستخدام الأمر التالي:

  1. tobs upgrade

يُنفذ هذا ما يعادل ترقية helm عن طريق جلب أحدث مخطط فوق المصدر.

الاستنتاج

في هذا البرنامج التعليمي، تعلمت كيفية نشر وتكوين TOBS، وهو مجموعة الرصد، على عُقد Kubernetes الحالي. يعتبر TOBS مفيدًا بشكل خاص لأنه يُزيل الحاجة إلى الحفاظ على تفاصيل التكوين بشكل فردي لكل هذه التطبيقات، بينما يوفر رصدًا موحدًا للتطبيقات التي تعمل على عُقدك.

قد ترغب في التعرف على كيفية استخدام Cert-Manager لمعالجة استقبال HTTPS إلى عقد Kubernetes الخاص بك في الخطوة التالية.

Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-tobs-the-observability-stack-for-kubernetes-monitoring