تسجيل في قاعدة بيانات Azure لـ PostgreSQL - خادم فردي

ينطبق على: قاعدة بيانات Azure لـ PostgreSQL - خادم واحد

هام

قاعدة بيانات Azure ل PostgreSQL - خادم واحد على مسار التقاعد. نوصي بشدة بالترقية إلى Azure Database for PostgreSQL - Flexible Server. لمزيد من المعلومات حول الترحيل إلى قاعدة بيانات Azure ل PostgreSQL - خادم مرن، راجع ما يحدث لقاعدة بيانات Azure لخادم PostgreSQL الفردي؟.

تسمح لك قاعدة بيانات Azure لـ PostgreSQL بتكوين السجلات القياسية لـ Postgres والوصول إليها. يمكن استخدام السجلات لتحديد أخطاء التكوين والأداء دون المستوى الأمثل واستكشاف الأخطاء وإصلاحها. تتضمن معلومات التسجيل التي يمكنك تكوينها والوصول إليها الأخطاء ومعلومات الاستعلام وسجلات الإخلاء التلقائي والاتصالات ونقاط التحقق. (الوصول إلى سجلات المعاملات غير متوفر).

يتم توفير تسجيل التدقيق من خلال ملحق PostgreSQL، pgaudit. لمعرفة المزيد، تفضل بزيارة مقالة مفاهيم التدقيق.

تكوين التسجيل

يمكنك تكوين تسجيل Postgres القياسي على الخادم الخاص بك باستخدام معلمات خادم التسجيل. على كل قاعدة بيانات Azure لخادم PostgreSQL، log_checkpoints وlog_connections قيد التشغيل بشكل افتراضي. هناك معلمات إضافية يمكنك ضبطها لتناسب احتياجات التسجيل الخاصة بك:

Azure Database لـ PostgreSQL - معلمات التسجيل

لمعرفة المزيد حول معلمات سجل Postgres، تفضل بزيارة قسمي When To Log وWhat To Log في وثائق Postgres. تتوفر معظم معلمات تسجيل Postgres، وليس كلها، للتكوين في قاعدة بيانات Azure لـ PostgreSQL.

لمعرفة كيفية تكوين المعلمات في قاعدة بيانات Azure لـ PostgreSQL، راجع وثائق المدخل أو وثائق CLI.

إشعار

يمكن أن يؤدي تكوين حجم كبير من السجلات، على سبيل المثال تسجيل العبارة، إلى إضافة حمل أداء كبير.

الوصول إلى ملفات السجل.

تنسيق السجل الافتراضي في قاعدة بيانات Azure لـ PostgreSQL هو .log. يبدو خط عينة من هذا السجل كما يلي:

2019-10-14 17:00:03 UTC-5d773cc3.3c-LOG: connection received: host=101.0.0.6 port=34331 pid=16216

توفر قاعدة بيانات Azure لـ PostgreSQL موقع تخزين قصير الأجل لملفات السجل. يبدأ الملف الجديد كل ساعة أو 100 ميجابايت، أيهما يأتي أولاً. يتم إلحاق السجلات بالملف الحالي حيث يتم إصدارها من Postgres.

يمكنك تعيين فترة الاستبقاء لتخزين السجل على المدى القصير هذا باستخدام المعلمة log_retention_period. القيمة الافتراضية هي 3 أيام؛ الحد الأقصى للقيمة هو 7 أيام. يمكن أن يحتوي موقع التخزين على المدى القصير على ما يصل إلى 1 جيجابايت من ملفات السجل. بعد 1 جيجابايت، سيتم حذف أقدم الملفات، بغض النظر عن فترة الاستبقاء، لتوفير مساحة للسجلات الجديدة.

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

يمكنك إيقاف إنشاء ملفات السجل عن طريق تعيين المعلمة logging_collector إلى إيقاف التشغيل. يوصى بإيقاف تشغيل إنشاء ملف .log إذا كنت تستخدم إعدادات تشخيص Azure Monitor. سيقلل هذا التكوين من تأثير أداء التسجيل الإضافي.

إشعار

أعد تشغيل الخادم لتطبيق هذا التغيير.

سجلات الموارد

تم تكامل قاعدة بيانات Azure لـ PostgreSQL مع إعدادات تشخيص Azure Monitor. تسمح لك إعدادات التشخيص بإرسال سجلات Postgres بتنسيق JSON إلى Azure Monitor Logs للتحليلات والتنبيه ومراكز الأحداث للدفق وتخزين Azure للأرشفة.

هام

تتوفر ميزة التشخيص هذه لسجلات الخادم فقط في مستويات الأسعار المحسنة للأغراض العامة والذاكرة.

تكوين إعدادات التشخيص

يمكنك تمكين إعدادات التشخيص لخادم Postgres باستخدام مدخل Azure وCLI وواجهة برمجة تطبيقات REST وPowerShell. فئة السجل التي يجب تحديدها هي PostgreSQLLogs. (هناك سجلات أخرى يمكنك تكوينها إذا كنت تستخدم Query Store.)

لتمكين سجلات الموارد باستخدام مدخل Microsoft Azure:

  1. في المدخل، انتقل إلى إعدادات التشخيص في قائمة التنقل لخادم Postgres.
  2. حدد إضافة إعداد تشخيص.
  3. قم بتسمية هذا الإعداد.
  4. حدد نقطة النهاية المفضلة لديك (حساب التخزين، مركز الأحداث، تحليلات السجل).
  5. حدد نوع السجل PostgreSQL Server Logs.
  6. حفظ الإعداد الخاص بك.

لتمكين سجلات الموارد باستخدام PowerShell أو CLI أو واجهة برمجة تطبيقات REST، قم بزيارة مقالة إعدادات التشخيص.

الوصول إلى سجلات الموارد

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

بالنسبة لسجلات Azure Monitor، يتم إرسال السجلات إلى مساحة العمل التي حددتها. تستخدم سجلات Postgres وضع التجميع AzureDiagnostics، بحيث يمكن الاستعلام عن ذلك من جدول AzureDiagnostics. يتم وصف الحقول الموجودة في الجدول أدناه. تعرف على المزيد حول الاستعلام والتنبيه في نظرة عامة على استعلام عن سجلات Azure Monitor.

فيما يلي الاستعلامات التي يمكنك تجربتها للبدء. يمكنك تكوين التنبيهات استناداً إلى الاستعلامات.

البحث عن جميع سجلات Postgres لخادم معين في اليوم الأخير

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 

البحث عن جميع محاولات الاتصال غير المحلية

AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)

سيظهر الاستعلام أعلاه النتائج على مدار الساعات الـ 6 الماضية لأي تسجيل لخادم Postgres في مساحة العمل هذه.

تنسيق السجل

يصف الجدول التالي حقول نوع PostgreSQLLogs. اعتماداً على نقطة نهاية الإخراج التي تختارها، قد تختلف الحقول المضمنة وترتيب ظهورها.

ميدان الوصف
TenantId معرف المستأجر
نظام المصدر Azure
TimeGenerated [توقيت عالمي متفق عليه] الطابع الزمني عندما تم تسجيل السجل في UTC
نوع نوع الـسجل. دائم AzureDiagnostics
SubscriptionId. معرّف فريد للاشتراك الذي ينتمي إليه الخادم
ResourceGroup اسم مجموعة الموارد التي ينتمي إليها الخادم
موفر المورد اسم موفر المورد. دائم MICROSOFT.DBFORPOSTGRESQL
ResourceType Servers
ResourceId URI للمورد
Resource اسم الـخادم
الفئة PostgreSQLLogs
OperationName LogEvent
errorLevel مستوى التسجيل، على سبيل المثال: LOG، ERROR، NOTICE
رسالة رسالة السجل الأساسي
النطاق إصدار الخادم، على سبيل المثال: postgres-10
التفاصيل رسالة السجل الثانوي (إذا كان ذلك ممكناً)
ColumnName اسم العمود (إن أمكن)
اسم المخطط اسم المخطط (إن أمكن)
DatatypeName اسم نوع البيانات (إن أمكن)
LogicalServerName اسم الـخادم
_ResourceId URI للمورد
البادئة بادئة سطر السجل

الخطوات التالية