الحالة: مهجورة
هذا المقال مهجور ولم يعد محتفظًا به.
السبب
تم إهمال مثبت 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 في سلطة كيرنكس موجودة، وتتعلم كيفية التحديث والتكوين وتصفح لوحات مكوناته.
الشروط الأساسية
لمتابعة هذا البرنامج التعليمي، ستحتاج إلى:
-
سبك Kubernetes مع تحكم الوصول حسب الأدوار (RBAC) المفعلة. سيتم استخدام سبك DigitalOcean Kubernetes لهذا الإعداد، لكنك حر في إنشاء سبك باستخدام طريقة أخرى. يجب أن يتطابق إصدار Kubernetes الخاص بك مع إصدار TOBS المدعوم.
-
أداة الأمر الأوامر
kubectl
المثبتة على جهاز الكمبيوتر المحلي ومكيفة للاتصال بسبكك. يمكنك قراءة المزيد حول تثبيتkubectl
في الوثائق الرسمية. إذا كنت تستخدم سبك DigitalOcean Kubernetes، يرجى الرجوع إلى كيفية الاتصال بسبك DigitalOcean Kubernetes لمعرفة كيفية الاتصال بسبكك باستخدامkubectl
.
الخطوة 1 – التحقق من تكوين كيبرنتيس الخاص بك
من أجل تثبيت TOBS، يجب أن يكون لديك أولاً تكوين كيبرنتيس صالح مع kubectl
من خلاله يمكنك تنفيذ البريد الإلكتروني إلى عقد العمل. يمكنك اختبار هذا بتنفيذ kubectl get nodes
:
إذا تمكن kubectl
من الاتصال بخادم كيبرنتيس الخاص بك وكان على ما يرام، سيعيد هذا الأمر قائمة بالعقد مع حالة Ready
:
OutputNAME 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
عليه لعرض أول عدة أسطر منه، أي:
OutputapiVersion: v1
clusters:
- cluster:
certificate-authority-data:
…
إذا لم يكن الملف موجودًا، تأكد من تسجيل الدخول كمستخدم نفسه الذي قمت بتكوين Kubernetes معه. المسارات ~/
تعكس مساحات على الدومين المنزلية للمستخدمين الفرديين، ويتم حفظ تكوينات Kubernetes لكل مستخدم بشكل افتراضي.
إذا كنت تستخدم Managed Kubernetes من DigitalOcean، تأكد من تشغيل الأمر doctl kubernetes cluster kubeconfig save
بعد إعداد النظام الجاهز حتى يتمكن جهازك المحلي من التواصل معه. سيخلق هذا ملف ~/.kube/config
:
إذا كنت تستخدم هذا الجهاز للوصول إلى عدة أنظمة جاهزة، يجب عليك مراجعة وثائق 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 وقم بتشغيله:
Outputtobs 0.7.0 was successfully installed ?
Binary is available at /root/.local/bin/tobs.
يمكنك الآن دفع TOBS إلى خادم Kubernetes الخاص بك. يتم ذلك باستخدام سطر واحد باستخدام الأمر tobs
الذي قدمته حديثًا:
سيولد هذا عدة أسطر من الإخراج وقد يستغرق بضع دقائق. حسب إصدار Kubernetes الخاص بك بالضبط، قد يكون هناك عدة تحذيرات في الإخراج، لكن يمكنك تجاهل هذه طالما أنك تتلقى في النهاية رسالة Welcome to tobs
:
OutputWARNING: 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
:
هذا سيحتل النافذة ما دامت عملية توجيه المنفذ نشطة. يمكنك الضغط على Ctrl+C
للخروج بشكل لطيف من عملية حظر مثل هذه عندما تريد التوقف عن توجيه المنفذ. بعد ذلك، في جهاز الويب، انتقل إلى عنوان URL http://127.0.0.1:9090/
. يجب أن ترى واجهة بروميثيوس الكاملة التي تعمل وتنتج مقاييس من مجموعتك الفرعية:
يمكنك القيام بالشيء نفسه بالنسبة لغرافانا، الذي يمكن الوصول إليه في http://127.0.0.1:8080/
طالما توجيه المنفذ نشط في عملية أخرى. أولاً، ستحتاج إلى استخدام الأمر get-password
المقدم من نتائج المثبت:
Outputyour-grafana-password
يمكنك بعد ذلك استخدام هذه الكلمة السرية لتسجيل الدخول إلى واجهة غرافانا بتشغيل أمر توجيه المنفذ وفتح http://127.0.0.1:8080/
في المتصفح.
لديك الآن مكتبة TOBS العاملة في مجموعة فرعية من كيانات كوبنتينوس. يمكنك الرجوع إلى وثائق المكونات الفردية من أجل تعلم ميزات كل منها. في الخطوة الأخيرة من هذا البرنامج التعليمي، ستتعلم كيفية إجراء تحديثات إلى تكوين TOBS نفسه.
الخطوة 3 – تحرير إعدادات TOBS والترقية
تحتوي تكوين TOBS على بعض المعلمات للتطبيقات الفردية في المكدس وبعض المعلمات لنشر TOBS نفسه. يتم إنشاؤه وتخزينه كرسم تخطيطي لينكوبي رسم تخطيطي Helm. يمكنك إخراج تكوينك الحالي عن طريق تشغيل tobs helm show-values
. ومع ذلك ، سيؤدي هذا إلى إخراج التكوين الطويل بأكمله إلى терمينالك ، وهو من الصعب قراءته. بدلاً من ذلك ، يمكنك تحويل الإخراج إلى ملف مع امتداد .yaml
، لأن رسوم تخطيطي Helm هي جميعها بنية معتمدة 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 كمُعلمة إضافية:
وأخيرًا، يمكنك ترقية TOBS باستخدام الأمر التالي:
يُنفذ هذا ما يعادل ترقية helm
عن طريق جلب أحدث مخطط فوق المصدر.
الاستنتاج
في هذا البرنامج التعليمي، تعلمت كيفية نشر وتكوين TOBS، وهو مجموعة الرصد، على عُقد Kubernetes الحالي. يعتبر TOBS مفيدًا بشكل خاص لأنه يُزيل الحاجة إلى الحفاظ على تفاصيل التكوين بشكل فردي لكل هذه التطبيقات، بينما يوفر رصدًا موحدًا للتطبيقات التي تعمل على عُقدك.
قد ترغب في التعرف على كيفية استخدام Cert-Manager لمعالجة استقبال HTTPS إلى عقد Kubernetes الخاص بك في الخطوة التالية.