جمع مصادر بيانات Syslog باستخدام عامل Log Analytics

تنبيه

تشير هذه المقالة إلى CentOS، وهو توزيع Linux يقترب من حالة نهاية العمر الافتراضي (EOL). يرجى مراعاة استخدامك والتخطيط وفقا لذلك. لمزيد من المعلومات، راجع إرشادات نهاية العمر الافتراضي CentOS.

Syslog هو بروتوكول تسجيل أحداث شائع في Linux. ترسل التطبيقات رسائل قد يتم تخزينها على الجهاز المحلي أو تسليمها إلى جامع Syslog. عند تثبيت عامل Log Analytics لنظام Linux، يتم من خلاله تكوين تطبيق Syslog الخفي المحلي لتوجيه الرسائل إلى العامل. ثم يرسل العامل الرسائل إلى Azure Monitor حيث يتم إنشاء سجل مطابق.

هام

سيتم إيقاف عامل Log Analytics القديم بحلول أغسطس 2024. بعد هذا التاريخ، لن توفر Microsoft أي دعم لعامل Log Analytics. الترحيل إلى وكيل Azure Monitor قبل أغسطس 2024 لمتابعة استيعاب البيانات.

إشعار

يدعم Azure Monitor مجموعة من الرسائل المرسلة بواسطة rsyslog أو syslog-ng، حيث يعتبر rsyslog هو التطبيق الخفي الافتراضي. البرنامج الخفي الافتراضي ل Syslog على الإصدار 5 من Red Hat Enterprise Linux وCentOS وإصدار Oracle Linux (sysklog) غير مدعوم لمجموعة أحداث Syslog. لتجميع بيانات Syslog من هذا الإصدار من هذه التوزيعات، يجب تثبيت البرنامج الخفي ل rsyslog وتكوينه لاستبدال sysklog.

رسم تخطيطي يظهر مجموعة Syslog.

يتم دعم المرافق التالية بمجمِّع Syslog:

  • كيرن
  • المستخدم
  • mail
  • البرنامج الخفي
  • المصادقة
  • syslog
  • Lpr
  • الأخبار
  • Uucp
  • كرون
  • Authpriv
  • FTP
  • المحلية0-المحلية7

لأي مرفق آخر، عليك تكين مصدر بيانات سجلات مخصصة في Azure Monitor.

تكوين Syslog

سيقوم عامل تحليلات السجل لنظام التشغيل Linux فقط بجمع الأحداث مع المرافق، وحالات الخطورة المُحددة في تكوينها. يمكنك تكوين Syslog من خلال مدخل Azure أو عن طريق إدارة ملفات التكوين على عملاء Linux.

تكوين Syslog في مدخل Azure

تكوين Syslog من القائمة «تكوين عامل» لمساحة عمل Log Analytics. يتم توفير هذا التكوين لملف التكوين على كل عامل Linux.

يمكنك إضافة منشأة جديدة عن طريق تحديد Add facility. لكل مرفق، لن يتم جمع سوى الرسائل التي تحتوي على الخطورة المحددة. حدد الخطورة الخاصة بالمنشأة المعينة التي تريد جمعها. لا يمكنك توفير أي معايير أخرى لتصفية الرسائل.

لقطة شاشة توضح تكوين Syslog.

بشكل افتراضي، يتم دفع جميع تغييرات التكوين تلقائيًا إلى جميع العوامل. إذا كنت ترغب في تكوين Syslog يدويا على كل عامل Linux، قم بإلغاء تحديد خانة الاختيار تطبيق التكوين أدناه على أجهزتي .

تكوين Syslog على عامل Linux

عند تثبيت عامل Log Analytics على عميل Linux، فإنه يقوم بتثبيت ملف تكوين Syslog افتراضي يحدد مرفق وخطورة الرسائل التي يتم تجميعها. يمكنك تعديل هذا الملف لتغيير التكوين. يختلف ملف التكوين استنادًا إلى تطبيق Syslog الخفي الذي قام العميل بتثبيته.

إشعار

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

rsyslog

يوجد ملف التكوين ل rsyslog في /etc/rsyslog.d/95-omsagent.conf. يتم عرض محتوياته الافتراضية في المثال التالي. يجمع هذا المثال رسائل Syslog المرسلة من الوكيل المحلي لجميع المرافق بمستوى تحذير أو أعلى.

kern.warning       @127.0.0.1:25224
user.warning       @127.0.0.1:25224
daemon.warning     @127.0.0.1:25224
auth.warning       @127.0.0.1:25224
syslog.warning     @127.0.0.1:25224
uucp.warning       @127.0.0.1:25224
authpriv.warning   @127.0.0.1:25224
ftp.warning        @127.0.0.1:25224
cron.warning       @127.0.0.1:25224
local0.warning     @127.0.0.1:25224
local1.warning     @127.0.0.1:25224
local2.warning     @127.0.0.1:25224
local3.warning     @127.0.0.1:25224
local4.warning     @127.0.0.1:25224
local5.warning     @127.0.0.1:25224
local6.warning     @127.0.0.1:25224
local7.warning     @127.0.0.1:25224

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

user.error    @127.0.0.1:25224

syslog-ng

يوجد ملف التكوين ل syslog-ng في /etc/syslog-ng/syslog-ng.conf. يتم عرض محتوياته الافتراضية في هذا المثال. يجمع هذا المثال رسائل Syslog المرسلة من الوكيل المحلي لجميع المرافق وجميع الخطورة.

#
# Warnings (except iptables) in one file:
#
destination warn { file("/var/log/warn" fsync(yes)); };
log { source(src); filter(f_warn); destination(warn); };

#OMS_Destination
destination d_oms { udp("127.0.0.1" port(25224)); };

#OMS_facility = auth
filter f_auth_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(auth); };
log { source(src); filter(f_auth_oms); destination(d_oms); };

#OMS_facility = authpriv
filter f_authpriv_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(authpriv); };
log { source(src); filter(f_authpriv_oms); destination(d_oms); };

#OMS_facility = cron
filter f_cron_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(cron); };
log { source(src); filter(f_cron_oms); destination(d_oms); };

#OMS_facility = daemon
filter f_daemon_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(daemon); };
log { source(src); filter(f_daemon_oms); destination(d_oms); };

#OMS_facility = kern
filter f_kern_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(kern); };
log { source(src); filter(f_kern_oms); destination(d_oms); };

#OMS_facility = local0
filter f_local0_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local0); };
log { source(src); filter(f_local0_oms); destination(d_oms); };

#OMS_facility = local1
filter f_local1_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local1); };
log { source(src); filter(f_local1_oms); destination(d_oms); };

#OMS_facility = mail
filter f_mail_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(mail); };
log { source(src); filter(f_mail_oms); destination(d_oms); };

#OMS_facility = syslog
filter f_syslog_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(syslog); };
log { source(src); filter(f_syslog_oms); destination(d_oms); };

#OMS_facility = user
filter f_user_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };

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

#OMS_facility = user
filter f_user_oms { level(alert,crit) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };

جمع البيانات من منافذ Syslog الأخرى

يستمع عامل Log Analytics لرسائل Syslog على العميل المحلي على المنفذ 25224. عند تثبيت العامل، يتم تطبيق تكوين Syslog افتراضي ويتم العثور عليه في الموقع التالي:

  • Rsyslog: /etc/rsyslog.d/95-omsagent.conf
  • Syslog-ng: /etc/syslog-ng/syslog-ng.conf

يمكنك تغيير رقم المنفذ عن طريق إنشاء ملفي تكوين: ملف تكوين FluentD وملف rsyslog-or-syslog-ng استنادًا إلى تطبيق Syslog الخفي الذي قمت بتثبيته.

  • يجب أن يكون ملف تكوين FluentD ملفا جديدا موجودا في /etc/opt/microsoft/omsagent/conf/omsagent.d ويستبدل القيمة في port الإدخال برقم المنفذ المخصص.

    <source>
        type syslog
        port %SYSLOG_PORT%
        bind 127.0.0.1
        protocol_type udp
        tag oms.syslog
    </source>
    <filter oms.syslog.**>
        type filter_syslog
    
  • بالنسبة إلى rsyslog، يجب إنشاء ملف تكوين جديد موجود في /etc/rsyslog.d/ واستبدال القيمة %SYSLOG_PORT% برقم المنفذ المخصص.

    إشعار

    في حال تعديل هذه القيمة في ملف التكوين 95-omsagent.conf، ستتم الكتابة فوقه عند تطبيق العامل لتكوين افتراضي.

    # OMS Syslog collection for workspace %WORKSPACE_ID%
    kern.warning              @127.0.0.1:%SYSLOG_PORT%
    user.warning              @127.0.0.1:%SYSLOG_PORT%
    daemon.warning            @127.0.0.1:%SYSLOG_PORT%
    auth.warning              @127.0.0.1:%SYSLOG_PORT%
    
  • يجب تعديل تكوين syslog-ng عن طريق نسخ مثال التكوين الموضح بعد ذلك وإضافة الإعدادات المعدلة المخصصة إلى نهاية syslog-ng.conf ملف التكوين الموجود في /etc/syslog-ng/. لا تستخدم التسمية %WORKSPACE_ID%_oms الافتراضية أو %WORKSPACE_ID_OMS. حدد تسمية مخصصة للمساعدة في تمييز التغييرات.

    إشعار

    إذا قمت بتعديل القيم الافتراضية في ملف التكوين، فسيتم الكتابة فوقها عندما يطبق العامل تكوينا افتراضيا.

    filter f_custom_filter { level(warning) and facility(auth; };
    destination d_custom_dest { udp("127.0.0.1" port(%SYSLOG_PORT%)); };
    log { source(s_src); filter(f_custom_filter); destination(d_custom_dest); };
    

بعد الانتهاء من التغييرات، أعد تشغيل Syslog وخدمة عامل Log Analytics لضمان سريان تغييرات التكوين.

خصائص سجل Syslog

تحتوي سجلات Syslog على نوع من Syslog وتظهر الخصائص في الجدول التالي.

الخاصية ‏‏الوصف
الكمبيوتر جهاز الكمبيوتر الذي تم جمع الحدث منه.
المرافق يحدد جزء النظام الذي قام بإنشاء الرسالة.
HostIP عنوان IP للنظام الذي يرسل الرسالة.
HostName اسم النظام الذي يرسل الرسالة.
مستوى الأمان مستوى خطورة الحدث.
SyslogMessage نص الرسالة.
ProcessID معرفة العملية التي أنشأت الرسالة.
EventTime تاريخ ووقت إنشاء الحدث.

تسجيل الاستعلامات باستخدام سجلات Syslog

يعرض الجدول التالي أمثلة مختلفة لاستعلامات السجل التي تسترد سجلات Syslog.

الاستعلام ‏‏الوصف
Syslog جميع Syslogs
Syslog | حيث SeverityLevel == "error" جميع سجلات Syslog مع خطورة الخطأ
Syslog | يلخص AggregatedValue = العدد() حسب الكمبيوتر عدد سجلات Syslog حسب الكمبيوتر
Syslog | يلخص AggregatedValue = العدد() حسب المنشأة عدد سجلات Syslog حسب المرفق

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

  • تعرف على استعلامات السجل لتحليل البيانات التي تم تجميعها من مصادر البيانات والحلول.
  • استخدم الحقول المخصصة لتحليل البيانات من سجلات Syslog في حقول فردية.
  • تكوين عوامل Linux لجمع أنواع أخرى من البيانات.