مراقبة PostgreSQL باستخدام Zabbix

مراقبة PostgreSQL باستخدام Zabbix
تقرير داريا فيلكوفا لـ Zabbix Meetup Online

أود أن أقدم لكم PostgreSQL وأداة مراقبة نظام التشغيل ، والتي يتم تطويرها بواسطة شركتنا باستخدام Zabbix.

لقد اخترنا Zabbix كأداة مراقبة خاصة بنا لفترة طويلة لأنها منصة مفتوحة المصدر يدعمها مجتمع نشط يحظى بشعبية كبيرة في روسيا.

أنشأنا وكيلًا نشطًا - Mamonsu ، والذي قدم مراقبة أكثر مرونة من الأدوات القياسية في ذلك الوقت المسموح به ، وضمن جمع المقاييس وإرسالها إلى Zabbix Server. في شركتنا ، يتم استخدام Mamonsu في التدقيق.

مامونسو

Mamonsu هو وكيل نشط (Zabbix Trapper) لمراقبة PostgreSQL ونظام التشغيل. يسمح لك Mamonsu (المكتوب بلغة Python) بتهيئة PostgreSQL وإعدادات مراقبة نظام التشغيل في خمس دقائق.

لدى Mamonsu أدوات إضافية:

  • mamonsu tune هو أمر يقوم بتحرير الإعدادات في ملف تكوين PostgreSQL للجهاز الذي تم تثبيت وكيل Mamonsu عليه.
  • تقرير mamonsu هو أمر يولد إجابات حول نظام التشغيل و PostgreSQL.

يتم تثبيت Mamonsu على خادم DBMS ، ويجمع المعلومات ، ويؤلفها في JSON ، والذي يرسلها إلى Zabbix Server من أجل التصور ، حيث يجب أن يكون هناك نموذج لمقاييسه.

مراقبة PostgreSQL باستخدام Zabbix

مخطط عمل مامونسو

ميزات مامونسو

  • العمل الفعال مع PostgreSQL. الاتصال المستمر بـ PostgreSQL هو الميزة الرئيسية لـ Mamonsu. في هذه الحالة ، يكون الحد الأقصى لعدد الاتصالات مساويًا للحد الأقصى لعدد قواعد البيانات التي يتصل بها.
  • التوسعة. Mamonsu هو وكيل "مكون إضافي" بالكامل ، ونظرًا للهيكل الثابت لكل مكون إضافي وبساطة Python النسبية ، يمكن للمرء أن يتعلم بسهولة كيفية كتابة مكونات إضافية قياسية جديدة أو تحريرها ، أي معلمات مجموعة المقاييس.
  • تغطية واسعة لمقاييس المراقبة لـ PotgreSQL بما في ذلك المقاييس الخاصة بالملحق.
  • التشغيل السريع، التوفر خارج الصندوق.
  • تحميل القوالب وملفات التكوين، وكذلك التحميل على خادم Zabbix.
  • عبر منصة، وهو أمر مهم لعملائنا الذين يستخدمون توزيعات Linux المختلفة ، بما في ذلك التوزيعات المحلية.
  • ترخيص شرط BSD.

في الوقت الحالي ، نقدم الكثير من المكونات الإضافية وفي كل إصدار تالٍ نحاول إضافة شيء جديد.

  • 14 ملحقًا لـ PostgreSQL ،
  • 8 ملحقات لنظام التشغيل OS Linux ،
  • 4 ملحقات لنظام التشغيل Windows.

يجمع Mamonsu أكثر من 110 مقياسًا من PostgreSQL ونظام التشغيل:

  • 70 مقاييس PostgreSQL ،
  • 40 مقياسًا لنظام التشغيل Linux ،
  • 8 مقاييس نظام التشغيل Windows.

تشمل المقاييس الرئيسية توافر نظام إدارة قواعد البيانات ، وعدد الاتصالات ، وحجم قاعدة البيانات ، ونقاط التفتيش ، وسرعة القراءة / الكتابة ، والأقفال ، وعدد عمليات الفراغ التلقائي ، وسرعة إنشاء WAL. تتوفر قائمة كاملة بالمقاييس المتاحة ، بالإضافة إلى وصف تفصيلي لجميع الأدوات ، بتنسيق مستودعات على موقع GitHub.

مراقبة PostgreSQL باستخدام Zabbix

قائمة المقاييس المتاحة على جيثب

قم بتشغيل Mamonsu في 5 دقائق

لإعداد مراقبة PostgreSQL ونظام التشغيل باستخدام Mamonsu ، يمكنك القيام بذلك في 5 دقائق باتباع 5 خطوات بسيطة.

  1. تركيب مامونسو. يمكن بناء Mamonsu من المصدر أو استخدام الحزم المتاحة.

$ git clone ... && cd mamonsu && python setup.py

build && python setup.py install

  1. إعداد الاتصال. من الضروري تعيين معلمات الاتصال لـ PostgreSQL و Zabbix Server في ملف agent.conf.

/etc/mamonsu/agent.conf

  1. تصدير القالب إلى خادم Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. إضافة مضيف إلى خادم Zabbix. سيتم توصيل القالب الذي تم تصديره تلقائيًا بالمضيف الجديد على خادم Zabbix.

$ mamonsu zabbix host create mamonsu-demo

  1. إطلاق.

$ service mamonsu start

اتجاهات التنمية مامونسو

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

وحدة مراقبة PostgreSQL كجزء من Zabbix Agent 2

يتم استخدام برنامج تشغيل سريع وشائع للاتصال بـ PostgreSQL pgx (برنامج تشغيل PG ومجموعة أدوات لـ Go).

حتى الآن ، نستخدم واجهتين: Exporter ، التي تستدعي المعالج بالمفتاح ، و Configurator Zabbix Agent 2 ، الذي يقرأ ويتحقق من معلمات الاتصال مع الخادم المحدد في ملف التكوين.

لقد حاولنا تحسين عمل نظام إدارة قواعد البيانات (DBMS) من خلال تجميع المقاييس واستخدام معالج (معالج) للمقاييس ومجموعات المقاييس ، وكذلك استخدام مجموعات المقاييس في JSON كمتغيرات تابعة (عناصر التبعية) ، والاكتشاف منخفض المستوى (قواعد الاكتشاف) ).

الميزات الرئيسية

  • الحفاظ على اتصال مستمر بـ PostgreSQL بين الشيكات ؛
  • دعم فترات الاقتراع المرنة ؛
  • التوافق مع إصدارات PostgreSQL بدءًا من 10 و Zabbix Server بدءًا من الإصدار 4.4 ؛
  • القدرة على الاتصال بمثيلات PostgreSQL المتعددة ومراقبتها في نفس الوقت نظرًا لأن Zabbix Agent 2 يسمح لك بإنشاء جلسات متعددة.

مستويات معلمة اتصال PostgreSQL

في المجموع ، تتوفر ثلاثة مستويات من معلمات اتصال PostgreSQL ، أي المهام والإعدادات:

  • عالمي ،
  • الجلسات ،
  • وحدات الماكرو.

  1. يتم تعيين المعلمات العامة على مستوى الوكيل ، وتحدد معلمات الجلسة ووحدات الماكرو معلمات اتصال قاعدة البيانات.

  2. معلمات الاتصال بـ PostgreSQL - يتم تعيين الجلسات في الملف zabbix_agent2.conf.

مراقبة PostgreSQL باستخدام Zabbix

خيارات اتصال PostgreSQL - الجلسات

  • بعد الكلمات الرئيسية الجلسات يتم تحديد اسم جلسة فريد ، والذي يجب تحديده في المفتاح (النموذج).
  • المعلمات URI и اسم المستخدم مطلوب لكل جلسة.
  • إذا لم يتم تحديد الاسم الأساسي ، فسيتم استخدام الاسم الأساسي الافتراضي لجميع جلسات PostgreSQL ، والذي يتم تعيينه أيضًا في ملف التكوين.

  1. معلمات الاتصال بـ PostgreSQL - يتم تعيين وحدات الماكرو في المفتاح المتري في القالب (على غرار الطريقة المستخدمة في Zabbix Agent 1) ، أي يتم إنشاؤها في القالب ثم تحديدها كمعلمات في المفتاح. في هذه الحالة ، يتم إصلاح تسلسل وحدات الماكرو ، على سبيل المثال ، URI دائما مدرج أولا.

مراقبة PostgreSQL باستخدام Zabbix

معلمات اتصال PostgreSQL - وحدات الماكرو

تتضمن وحدة المراقبة PostgreSQL بالفعل أكثر من 95 مقياسًا تسمح لك بتغطية نطاق واسع إلى حد ما من معلمات PostgreSQL ، بما في ذلك:

  • عدد التوصيلات
  • حجم قاعدة البيانات ،
  • أرشفة ملفات وول ،
  • نقاط تفتيش،
  • عدد الطاولات "المتضخمة" ،
  • حالة النسخ المتماثل ،
  • تأخير نسخة طبق الأصل.

لا تعد مقاييس PostgreSQL مفيدة بدون معلمات نظام التشغيل. لكن Zabbix Agent 2 يعرف بالفعل كيفية جمع معلمات نظام التشغيل ، لذلك للحصول على الصورة الكاملة ، نقوم ببساطة بتوصيل القوالب الضرورية بالمضيف.

معالج

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

للحصول على مقياس بسيط:

  1. أنشئ ملفًا للحصول على مقياس جديد:

zabbix / src / go / plugins / postgres / handler_uptime.go

  1. نقوم بتوصيل الحزمة وتحديد المفتاح الفريد (المفاتيح) للمقاييس:

مراقبة PostgreSQL باستخدام Zabbix

  1. نقوم بإنشاء معالج (معالج) بطلب ، أي أننا نبدأ متغيرًا يحتوي على النتيجة:

مراقبة PostgreSQL باستخدام Zabbix

  1. نقوم بتنفيذ الطلب:

مراقبة PostgreSQL باستخدام Zabbix

من الضروري التحقق من طلب الأخطاء ، وبعد ذلك سيتم التقاط النتيجة بواسطة عملية Zabbix Agent 2.

  1. قم بتسجيل مفتاح القياس الجديد:

مراقبة PostgreSQL باستخدام Zabbix

بعد تسجيل المقياس ، يمكنك إعادة بناء الوكيل باستخدام المقياس الجديد.

الوحدة متاحة بدءًا من Zabbix 5.0 على الموقع الإلكتروني https://www.zabbix.com/download. في هذا الإصدار من Zabbix ، يتم تعيين المعلمات بشكل منفصل عبر المضيف والمنفذ. في Zabbix 5.0.2 ، الذي سيصدر قريبًا ، سيتم تجميع معلمات الاتصال في URI واحد.

شكرا لك!

وصلات مفيدة

جيثب مامونسو

توثيق مامونسو

Zabbix جيت

المصدر: www.habr.com

إضافة تعليق