فهرست مطالب این مقاله:
تجهیزات شبکه از پروتکل Syslog برای ارسال پیغام رخدادهای خود به یک سرور گیرندهی پیغام استفاده میکنند؛ در این مطلب به بررسی پروتکل Syslog و مفاهیم مرتبط با آن به طور کامل پرداخته شده است.
تجهیزات شبکه از پروتکل Syslog برای ارسال پیغام رخداد های خود به یک سرور گیرنده پیغام که اصطلاحا Syslog Server نامیده می شود استفاده می کنند. این پروتکل توسط بسیاری از انواع تجهیزات شبکه مانند سوئیچ ها، روترها و فایروال ها پشتیبانی می شود. تجهیزات شبکه می توانند به گونه ای تنظیم شوند تا رخداد های مختلفی را با ارسال پیغام Syslog اطلاع رسانی کنند، برای مثال یک روتر ممکن است هر بار که یک کاربر به کنسول آن وارد شد پیغام Syslog ارسال کند، و یک وب سرور زمانی که رخداد access-denied روی داد، پیغام Syslog ارسال کند.
بیشتر تجهیزات شبکه مانند سوئیچ ها و روتر ها می توانند پیغام Syslog ارسال کنند، علاوه بر اینها، همه سیستم عامل های مبتنی بر Unix و همه انواع سیستم عامل های Linux از Syslog به عنوان روش اصلی مدیریت لاگ استفاده می کنند. بسیاری از برنامه های کاربردی و سرویس ها مانند Oracle و Apache نیز از این پروتکل پشتیبانی می کنند، پس اگر در شبکه شما هر یک از موارد فوق وجود دارد، به کارگیری یک نرم افزار پیشرفته مانیتورینگ لاگ مانند زیر سیستم مانیتورینگ لاگ بینا یک امر حیاتی است.
Syslog چیست؟
Syslog پروتکلی است که سیستم های کامپیوتری از آن برای ارسال داده های مربوط به گزارش رویدادها به یک مکان مرکزی برای ذخیره سازی بهتر استفاده می کنند. سپس می توان با نرم افزار تجزیه و تحلیل و گزارش دهی برای انجام حسابرسی، نظارت، عیب یابی و سایر وظایف عملیاتی ضروری IT به این گزارش ها دسترسی داشت.
پروتکل Syslog که از دهه 1980 به عنوان روش ثبت داده ها (لاگینگ) استفاده می شود، محبوبیت خود را از طریق سهولت استفاده حفظ کرده است و انتقال پیام های مربوط به گزارش رویداد را ساده و آسان می کند.
شاید یکی از پرکاربردترین ویژگی هایی که از این سادگی پشتیبانی می کند، معماری لایه ای است که به کاربران اجازه می دهد تا با استفاده از تعدادی پروتکل مختلف، پیام ها را ارسال کنند. علاوه بر این، زمانی که کاربران به ارائه اکستنشن های خاص هر فروشنده نیاز دارند، قالب پیام Syslog به آنها اجازه می دهد این کار را در یک چارچوب ساختاریافته انجام دهند.
تفاوت Syslog با SNMP در مانیتورینگ
با استفاده از SNMP می توان از تجهیزات شبکه اطلاعات عملکردی را فراخوانی کرد که این عملیات معمولا به صورت متوالی و طبق یک زمانبندی صورت می پذیرد، در این حالت نرم افزار مانیتورینگ در فواصل زمانی کوتاه یک درخواست به دستگاه ارسال کرده و اطلاعاتی مانند فضای دیسک و یا میزان حافظه آزاد را میپرسد، و دستگاه نیز داده های درخواست شده را ارائه می دهد.
دریافت چنین اطاعاتی با Syslog امکان پذیر نیست، و تجهیزات شبکه طبق تنظیماتی که بر روی آنها انجام شده، در زمان وقوع رخدادهای بخصوصی با استفاده از پیغام های Syslog موضوع را اطلاع رسانی می کنند. در واقع نرم افزار مانیتورینگ درخواستی ارسال نمی کند و این خود تجهیزات هستند که در مواقع لازم پیغام ارسال می کنند.
اجزاء یک Syslog Server پیشرفته
استفاده از Syslog روشی مناسب برای جمع آوری و متمرکز سازی لاگ ها از همه تجهیزات شبکه است، به طور معمول همه سرورهای Syslog دارای چند جزء اصلی هستند:
- Syslog Listener: یک Syslog Server باید بتواند پیغام های سیسلاگ را از طریق شبکه دریافت کند، بنابراین در این سیستم ها یک پروسه همیشه برای دریافت پیغام های سیسلاگ گوش فرا می دهد. پیغام های Syslog به طور پیش فرض بر روی پورت 514 و پروتکل UDP ارسال می شوند، پس از آنجایی که از پروتکل UDP استفاده می شود، گارانتی برای تحویل پیغام به مقصد وجود ندارد. به همین دلیل هم برخی از تجهیزات از پروتکل TCP و پورت 1468 برای اطمینان از دریافت پیغام های Syslog استفاده می کنند.
- Database: در شبکه های بزرگ حجم زیادی از لاگ تولید می شود، لذا نرم افزار های Syslog Server پیشرفته از یک پایگاه داده متمرکز برای نگه داری لاگ ها و دسترسی سریع به لاگ های ذخیره شده استفاده می کنند.
- Management and Filtering Mechanism: به دلیل آنکه در بیشتر مواقع حجم لاگ های دریافتی در یک شبکه زیاد است، جستجو و یافتن یک لاگ بخصوص ممکن است بسیار طاقت فرسا باشد. بنابراین نرم افزار های پیشرفته مانیتورینگ لاگ مانند سیستم مانیتورینگ بینا، امکانات مفیدی را در اختیار شما قرار می دهند تا در کوتاه ترین زمان به اطلاعات مورد نظر خود دسترسی پیدا کنید.
- Alerting Module: یک Syslog Server خوب دارای امکاناتی برای ارسال اخطار به مسئولان شبکه است، تا طبق تنظیمات انجام شده، در صورت دریافت پیغام های با اهمیت با ارسال اخطار افراد مسئول را از موضوع با خبر سازد.
آشنایی با ساختار پیغام های Syslog
سایز هر پیغام Syslog میتواند حداکثر 1024 بایت باشد، و دارای اطلاعات زیر است:
- Facility
- Severity
- Hostname
- Timestamp
- Message
داشتن درک مناسبی از هر یک از این پارامتر ها شما را در راه اندازی و استفاده از نرم افزارهای مانیتورینگ Syslog کمک می کند، در ادامه هر یک از این پارامتر ها را معرفی می کنیم:
شبکه و سرور های خود را زیر نظر بگیرید و بلادرنگ از رخداد ها آگاه شوید.
– Facility
یکی از پارامتر های پیغام Syslog به نام Facility، تعیین می کند که لاگ توسط چه نوع سرویس یا نرم افزاری ایجاد شده است. برای مثال بیشتر تجهیزات Cisco از مقدارLocal7 استفاده می کنند. به صورت استاندارد مقدار Facility می تواند یکی از موارد جدول زیر باشد:
Facility Description | Keyword | Facility Number |
kernel messages | kern | 0 |
user-level messages | user | 1 |
mail system | 2 | |
system daemons | daemon | 3 |
security/authorization messages | auth | 4 |
messages generated internally by syslogd | syslog | 5 |
line printer subsystem | lpr | 6 |
network news subsystem | news | 7 |
UUCP subsystem | uucp | 8 |
clock daemon | 9 | |
security/authorization messages | authpriv | 10 |
FTP daemon | ftp | 11 |
NTP subsystem | —- | 12 |
log audit | —– | 13 |
log alert | —– | 14 |
clock daemon | cron | 15 |
local use 0 (local0) | local0 | 16 |
local use 1 (local1) | local1 | 17 |
local use 2 (local2) | local2 | 18 |
local use 3 (local3) | local3 | 19 |
local use 4 (local4) | local4 | 20 |
local use 5 (local5) | local5 | 21 |
local use 6 (local6) | local6 | 22 |
local use 7 (local7) | local7 | 23 |
– Severity
این پارامتر شدت یا به عبارتی اهمیت پیغام Syslog را نشان می دهد، بنابراین در زمان تعریف قواعد Syslog در نرم افزار مانیتورینگ بینا می توانید از این پارامتر برای تعیین بازخورد بینا در زمان دریافت پیغام ها استفاده کنید، به طور استاندارد مقدار Severity می تواند یکی از موارد جدول زیر باشد:
General Description | Description | Keyword | Severity | Code |
A “panic” condition usually affecting multiple apps/servers/sites. At this level it would usually notify all tech staff on call. | System is unusable. | emerg (panic) | Emergency | 0 |
Should be corrected immediately, therefore notify staff who can fix the problem. An example would be the loss of a primary ISP connection. | Action must be taken immediately. | alert | Alert | 1 |
Should be corrected immediately, but indicates failure in a primary system, an example is a loss of a backup ISP connection. | Critical conditions. | crit | Critical | 2 |
Non-urgent failures, these should be relayed to developers or admins; each item must be resolved within a given time. | Error conditions. | err (error) | Error | 3 |
Warning messages, not an error, but indication that an error will occur if action is not taken, e.g. file system 85% full – each item must be resolved within a given time. | Warning conditions. | Warning(Warn) | Warning | 4 |
Events that are unusual but not error conditions – might be summarized in an email to developers or admins to spot potential problems – no immediate action required. | Normal but significant condition. | notice | Notice | 5 |
Normal operational messages – may be harvested for reporting, measuring throughput, etc. – no action required. | Informational messages. | informational | Informational | 6 |
Info useful to developers for debugging the application, not useful during operations. | Debug-level messages. | debug | Debug | 7 |
برای درک بهتر هر یک از موارد به توضیحات ستون آخر دقت کنید. برای مثال در خصوص تجهیزات Cisco به طور کلی از Severity ها به روش ذیل استفاده می شود:
از سطح Emergency تا سطح Warning برای ارسال پیغام های مربوط به موضوعات سخت افزاری و نرم افزاری استفاده می شود، برای اطلاع رسانی هنگام Restart شدن دستگاه و یا تغییر وضعیت اینترفیس ها (up / down) از سطح Notice استفاده می شود، رویداد Reload با سطح Informational ارسال می شود، و خروجی دستورات debug با سطح debug ارسال می شود.
– Hostname
نام و یا آدرس IP سیستم ارسال کننده پیغام Syslog.
– Timestamp
زمان ایجاد پیغام Syslog.
– Message
متن پیغام Syslog که معمولا توضیحاتی در خصوص رخداد مربوطه ارائه می کند.
نکات مهم
به عنوان یک مدیر فناوری اطلاعات و یا راهبر شبکه باید از یک راهکار پیشرفته برای مانیتورینگ یکپارچه و همیشگی لاگ های شبکه اطمینان استفاده کنید.
یکی از چالش های اساسی در مانیتورینگ لاگ، حجم زیاد داده های ورودی است که در بسیاری از موارد ضروری نیستند، پس هنگام پیکربندی تجهیزات شبکه فقط برای رخداد های حیاتی ارسال پیغام Syslog را فعال کنید.
چگونه Syslog منتقل می شود؟
دو روش پرکاربردی برای انتقال پیام های Syslog شامل انتقال از طریق شبکه رمزگذاری شده TLS بر روی TCP یا روش قدیمی تر UDP است. در ادامه هر دو روش را توضیح می دهیم.
– روش UDP
هنگام استفاده از روش UDP، پیام ها در بخش داده یک بسته UDP قرار می گیرند و مستقیما از طریق پورت 514 توسط UDP به سرور ارسال می شوند. هر پیام به طور کلی در یک بسته واحد قرار می گیرد. UDP فاقد State و Session است. بنابراین، هیچ تاییدیه ای ارائه نمی شود و بسته ها به سادگی رله و به شبکه ارسال می شوند.
مشهودترین مشکل در این روش این است که هر نوع مشکلی در شبکه می تواند به طور بالقوه از تحویل بسته جلوگیری کند. همچنین ممکن است هرگز متوجه نشوید که شبکه از کار افتاده است، زیرا هیچ راهی برای تایید پیام و ارسال مجدد به هر کسی که در وهله اول پیام را فرستاده است وجود ندارد. در نهایت، بسته های مهم با خطر آسیب دیدن یا گم شدن در هنگام انتقال مواجه هستند.
یکی دیگر از جنبه های انتقال Syslog با روش UDP که باید در نظر داشت این است که رمزگذاری نشده است. این امر می تواند برای امنیت هر محیط کار دیجیتالی یک زنگ خطر باشد. زیرا هکرها و افراد غیرمجاز به راحتی می توانند بسته ها را رهگیری و حتی جعل کنند. بنابراین، مگر اینکه بسته های UDP از طریق یک شبکه خصوصی مجازی رمزگذاری شده ارسال شوند، استفاده از آنها از طریق زیرساخت های عمومی اینترنت ممنوع است.
– روش TCP
این روش از این جهت متفاوت است که هم رمزگذاری شده و هم مبتنی بر Session است. به علاوه، این نسخه از انتقال Syslog از امنیت TLS استفاده می کند. در این زمینه از پورت 6514 پروتکل هدایت انتقال (TCP) استفاده می شود که همان گواهینامه های احراز هویت HTTPS را ارائه می دهد.
از آنجایی که TCP یک فرآیند مبتنی بر Session دارد، در دستگاه هایی که از راه دور متصل می شوند، فقط یک Session TCP متصل به سرور باز می شود و معمولا با ارسال پیام های در صف، آن Session را فعال نگه می دارند. نمونه ای از این رویکرد را می توان در فایروال هایی دید که جریان منظمی از پیام های Syslog دارند که همیشه در حال انتقال هستند. در نتیجه، برای استفاده از این رویکرد به اتصال بدون وقفه نیاز است.
استفاده از TCP به جای UDP مزایای زیادی دارد. یکی از آنها غیرممکن بودن مشاهده و خواندن Session ها در هنگام انتقال است. این ویژگی به دلیل رمزگذاری شدن Session ها در این روش است. همچنین از آنجایی که هر دستگاه دارای یک گواهی منحصر به فرد است، سرور می تواند تایید کند که دستگاه ها قربانی جعل یا سرقت شده اند یا خیر.
یک مزیت مهم دیگر روش TCP این است که Session های مبتنی بر TCP به معنی تضمین شدن تحویل هر پیام است و حتی اگر پیام در حین انتقال از بین برود یا آسیب ببیند، می توان بدون آسیب رساندن به پیام آن را دوباره ارسال کرد.
سوالات متداول
- تفاوت Syslog با SNMP در مانیتورینگ چیست؟
با استفاده از SNMP می توان از تجهیزات شبکه اطلاعات عملکردی را فراخوانی کرد که این عملیات معمولا به صورت متوالی و طبق یک زمانبندی صورت می پذیرد، در این حالت نرم افزار مانیتورینگ در فواصل زمانی کوتاه یک درخواست به دستگاه ارسال کرده و اطلاعاتی مانند فضای دیسک و یا میزان حافظه آزاد را میپرسد، و دستگاه نیز داده های درخواست شده را ارائه می دهد. - ساختار پیغام های Syslog چیست؟
Facility – Severity – Hostname – Timestamp – Message