نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی

لینوکس. Rsyslog

من یک نقطه ضعف دارم - من عاشق سیستم های نظارتی مختلف هستم. یعنی برای من وضعیت ایده آل زمانی است که شما بتوانید وضعیت هر یک از اجزای سیستم را در هر نقطه از زمان مشاهده کنید. با بیدرنگ، همه چیز کم و بیش واضح است: می توانید داده ها را جمع آوری کرده و روی داشبورد زیبا نمایش دهید. همه چیز با آنچه در گذشته اتفاق افتاده پیچیده تر می شود، زمانی که شما باید در یک لحظه خاص رویدادهای مختلف را کشف کنید و آنها را با یکدیگر مرتبط کنید.

این کار در واقع آنقدرها هم پیش پا افتاده نیست. در مرحله اول، شما باید سیاهههای مربوط به سیستمهای کاملاً متفاوت را جمع آوری کنید، که اغلب هیچ شباهتی با یکدیگر ندارند. ثانیاً، آنها باید به یک مقیاس زمانی گره بخورند تا بتوان رویدادها را با یکدیگر مرتبط کرد. و سوم، سازماندهی کارآمد ذخیره سازی و جستجوی این حجم عظیم داده ضروری است. با این حال، همانطور که معمولاً اتفاق می‌افتد، قسمت دشوار از قبل قبل از ما انجام شده بود. من چند گزینه مختلف را امتحان می کنم، بنابراین یک بررسی کوچک از آنچه تاکنون با آن کار کرده ام انجام خواهم داد.

خدمات آنلاین

ساده ترین گزینه، که در ابتدا برای من عالی کار کرد، استفاده از سرویس ابری است. چنین ابزارهایی به طور فعال در حال توسعه هستند و از تعداد فزاینده ای از پشته های فناوری پشتیبانی می کنند و با ویژگی های سیستم های IaaS/PaaS منفرد مانند AWS و Heroku تنظیم می شوند.

اسپلانک

من و الکسی سینتسف اخیراً در ستونی در مورد این سرویس نوشتیم. به طور کلی، این فقط یک جمع‌آوری گزارش نیست، بلکه یک سیستم تحلیلی قدرتمند با سابقه طولانی است. بنابراین، وظیفه جمع آوری کنده ها و تجمیع آنها برای پردازش و جستجوی بیشتر، برای او یک لقمه است. بیش از 400 نرم افزار مختلف از جمله بیش از صد نرم افزار در زمینه مدیریت عملیات فناوری اطلاعات وجود دارد که به شما امکان می دهد اطلاعات را از سرورها و برنامه های خود جمع آوری کنید.

logly

این سرویس در حال حاضر به طور ویژه برای تجزیه و تحلیل گزارش طراحی شده است و به شما امکان می دهد هر نوع گزارش متنی را جمع آوری کنید. Ruby، Java، Python، C/C++، JavaScript، PHP، Apache، Tomcat، MySQL، syslog-ng، rsyslog، nxlog، Snare، روترها و سوئیچ ها - مهم نیست. شما می توانید روزانه تا 200 مگابایت به صورت رایگان جمع آوری کنید (که بسیار زیاد است) و برنامه پولی بعدی از 49 دلار شروع می شود. آن خیلی خوب کار می کند.

یک سرویس عالی که لاگ های برنامه، هر گونه گزارش متنی، syslog و غیره را جمع می کند. جالب است: شما می توانید با داده های جمع آوری شده از طریق مرورگر، خط فرمان یا API کار کنید. جستجو با پرس و جوهای ساده ای مانند "3 بعدازظهر دیروز" (دریافت داده ها از همه سیستم ها در ساعت سه صبح برای دیروز) انجام می شود. همه رویدادهای مرتبط گروه بندی خواهند شد. برای هر شرایطی، می توانید برای دریافت به موقع هشدارها هشدار دهید (تنظیمات در تنظیمات تغییر کرده است). می توانید از S3 برای ذخیره لاگ ها استفاده کنید. در ماه اول 5 گیگابایت به عنوان پاداش می دهند، سپس فقط 100 مگابایت در ماه رایگان ارائه می شود.


یکی دیگر از خدمات خوب برای جمع آوری داده ها، که به شما امکان می دهد تا حداکثر یک گیگابایت گزارش در ماه را به صورت رایگان جمع آوری کنید. اما قابلیت‌ها هنوز یکسان هستند: جستجوی قدرتمند، دم در زمان واقعی (هر چیزی که در لحظه از گزارش‌ها می‌آید نمایش داده می‌شود)، ذخیره‌سازی داده در AWS، نظارت بر PaaS، IaaS و فریم‌ورک‌ها و زبان‌های محبوب. طرح رایگان به شما امکان می دهد تا هفت روز داده را ذخیره کنید.


NewRelic

بله، این سرویس واقعاً برای جمع آوری سیاهه ها نیست. اما اگر سوال در مورد نظارت بر عملکرد سرورها و برنامه ها باشد، این یکی از بهترین گزینه ها است. علاوه بر این، در بیشتر موارد می توانید به صورت رایگان با آن کار کنید، چیزی که ما برای مدت طولانی در تحریریه برای نظارت بر برنامه ها و وضعیت سرور استفاده می کردیم.

همه چیز را در خانه گسترش دهید

آزمایش‌های من با خدمات آنلاین زمانی به پایان رسید که داده‌های زیادی وجود داشت که مجبور شدم مبالغ سه رقمی را برای تجمیع آنها بپردازم. با این حال، معلوم شد که شما می توانید چنین راه حلی را خودتان مستقر کنید. دو گزینه اصلی وجود دارد.

logstash

این یک سیستم باز برای جمع آوری رویدادها و گزارش ها است که خود را به خوبی در جامعه ثابت کرده است. البته استقرار آن دشوار نیست - اما دیگر یک سرویس آماده خارج از جعبه نیست. بنابراین، برای اشکالات در اسناد پراکنده، اشکالات ماژول و موارد مشابه آماده باشید. اما logstash با وظیفه خود مقابله می کند: گزارش ها جمع آوری می شوند و جستجوها از طریق رابط وب انجام می شوند.

روان

اگر راه حل مستقلی را انتخاب کنم، فلوئنتد را بیشتر دوست داشتم. برخلاف logstash که به زبان JRuby نوشته شده است و به همین دلیل به JVM نیاز دارد (که من آن را دوست ندارم)، در CRuby پیاده سازی شده است و قسمت های حیاتی عملکرد به زبان C نوشته شده است. سیستم دوباره باز است و به شما امکان می دهد جریان های بزرگی را جمع آوری کنید. لاگ با استفاده از بیش از 1500 پلاگین مختلف. به خوبی مستند و بسیار واضح است. نسخه فعلی من از جمع‌آوری گزارش در Fluentd مستقر شده است.

این مقاله را با دوستان خود به اشتراک بگذارید.

با سلام خدمت خواننده وبلاگ من. مدتی بود که مقاله ای نوشتم. تغییرات زیادی در زندگی ... مقاله امروز به syslog، و یا به جای rsyslog، که به طور فعال به جای syslogd قدیمی (معروف به sysklogd) در آخرین نسخه های توزیع ها (به عنوان مثال، و غیره) در حال پیاده سازی است. من در مقاله مربوطه توضیحات اولیه عملکرد را ارائه کردم. بنابراین، قبل از خواندن آنچه در زیر توضیح داده شده است، خواندن آن را به شدت توصیه می کنم. وظیفه فعلی من این است گزارش های سیستم را از تجهیزات شبکه جمع آوری کنیدبه مقدار ~ 100 میزبان با افزایش بعدی تعداد آنها. من سعی خواهم کرد این قابلیت را در این مقاله پیاده سازی کنم، که قبلاً توضیح داده شده است و. تمام این موارد بر اساس Debian 6 توضیح داده می شود، در توزیع های دیگر، اگر تجربه دارید، با حداقل حرکات با یک فایل، فکر می کنم تنظیم آن چندان دشوار نخواهد بود. بنابراین، بیایید شروع کنیم ...

مقدمه ای بر rsyslog

همانطور که قبلاً گفتم، rsyslogبه بسته پیش فرض در اکثر توزیع های لینوکس (شاید همه) تبدیل شده است. Rsyslogکاملاً منطبق است پروتکل syslogشرح داده شده در، و همچنین شامل برخی از ویژگی های اضافی است. مانند انتقال TCP، فیلتر کردن و مرتب‌سازی پیام‌ها، ذخیره پیام‌ها در DBMS، رمزگذاری و بسیاری موارد دیگر. در مقاله سعی خواهم کرد توضیحات، توضیحات را در نظر بگیرم دیمون rsyslogd را کنترل کنیدو .

نصب rsyslogd

نصب rsyslog (اگر به دلایلی به طور پیش فرض نصب نشده باشد) به یک دستور خلاصه می شود:

Aptitude install rsyslog # در کلاه قرمزی، گزینه yum install rsyslog امکان پذیر است

دستورالعمل های پیکربندی

دستورالعمل های پیکربندی گاهی اوقات دستورالعمل های جهانی نامیده می شوند و آنها را مشخص می کنند پارامترهای کلی دیمون rsyslogd. بخشنامه دارای قالب است پارامتر $Directive

############################### دستورالعمل های جهانی ################ # ############## # استفاده از قالب کلاسیک مُهر زمان (Month DD HH:MM:SS) را مشخص می‌کند. # برای فعال کردن قالب timestamps یونیکس، باید خط را نظر دهید. $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # # پیش‌فرض فایل‌های گزارش را تنظیم می‌کند. $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 # # مکان قرقره و فایل های ثابت (برای ذخیره فایل هایی مانند صف پیام) را تنظیم می کند $WorkDirectory /var/spool/spool/rsyslog all #s. conf از دایرکتوری /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf

کامل ترین لیست دستورالعمل های جهانی را می توان یافت.

الگوهای rsyslog

بسیار مهم و کلیدی ویژگی rsyslogdقابلیت استفاده از قالب ها است. الگو به شما اجازه می دهد: 1. تنظیم فرمت اطلاعات خروجی، 2. استفاده از نام های پویا از فایل های ورود به سیستم بر اساس برخی از قوانین. در حقیقت، همهپیام های خروجی در rsyslogd بر اساس الگوها تولید می شوند. در اینجا ممکن است یک سوال مربوطه مطرح شود - اگر هیچ قالبی را در آن مشخص نکنید، خروجی چگونه تولید می شود rsyslog.conf(بالاخره هیچ قالبی به طور پیش فرض مشخص نشده است)؟ ساده است. برخی از الگوها وجود دارد (برگرفته از موارد سازگار و به صورت ایستا در منابع rsyslog نوشته شده است). شواهدی از این امر را می توان در فایل کد منبع syslogd.c با جستجوی "template_" یافت (شما /* الگوهای استاندارد سخت کد شده (برای پیش فرض ها استفاده می شود) */ را پیدا خواهید کرد). قالب ها باید مشخص شوند قبل ازدر قوانین استفاده کنید

قالب نحوی

به طور کلی، ساختار قالب را می توان در نحو زیر نشان داد:

$template template_name , template_description[، گزینه ها (در صورت نیاز)]

بیایید به هر نقطه نگاه کنیم. $قالب- نشان می دهد که شرحی از الگو در ادامه خواهد آمد. نام الگو- یک مقدار دلخواه که به وضوح توضیح می دهد که الگو چیست و چرا (از نام برای ارجاع به الگو استفاده می شود). گزینه ها- می تواند معنایی به خود بگیرد sql و sqlstd این امر باعث می‌شود که نتیجه نهایی الگو به ترتیب به فرمی مناسب برای MySQL یا استاندارد SQL قالب‌بندی شود (در واقع، برخی از کاراکترهای خاص در پیام syslog را به قالبی که توسط سرور SQL پشتیبانی می‌شود جایگزین می‌کند). گزینه‌ها فقط برای قالب‌های خروجی به sql اعمال می‌شوند.

template_description در گیومه است در گیومه، هر متنی به معنای واقعی کلمه گرفته می شود (همانطور که هست)، به جز متن محصور شده در علائم درصد ( %text%). چنین متنی یک متغیر است و به شما امکان می دهد به محتوای داخلی پیام دریافتی "دسترسی" داشته باشید و در نتیجه به انواع ویژگی های تغییر سرگرم کننده دست یابید). همچنین، به اصطلاح را می توان در علامت نقل قول استفاده کرد. دنباله‌های فرار به شکل بک اسلش و چند کاراکتر پشت خط (مثلاً \n - خط جدید، \7 - ...).

استفاده از متغیرها در قالب های rsyslog

بیایید ساختار مقادیر نشان داده شده در %% را مرتب کنیم.

%proper_name [:شروع خط :پایان خط :options [:fieldname]]%

name_proper(موسوم به نام ملک، همینطور است متغیر_نام) - نام ویژگی را مشخص می کند (یک خاصیت در این زمینه را می توان به عنوان برخی از ویژگی \ فیلد پیام syslog در نظر گرفت که از طریق دیمون می گذرد)، در اینجا برخی از موارد استفاده شده با خواص rsyslog:

  • پیام- بدنه ی پیام
  • نام میزبان- نام میزبان\ ip از پیام
  • از میزبان- نام میزبانی که پیام از آن آمده است
  • fromhost-ip- آدرس میزبانی که پیام ها از آن دریافت شده است (127.0.0.1 برای پیام های محلی)
  • syslogtag- نام و شماره فرآیند ("rsyslogd:") که پیام را صادر کرده است (استخراج شده از پیام)
  • نام برنامه- نام فرآیندی که پیام را صادر کرده است (استخراج شده از پیام)
  • pri- منبع و اولویت، به عنوان یک عدد
  • متن اولیه- منبع رمزگشایی و اولویت ( امکانات.اولویت، برای مثال syslog.emer)
  • تسهیلات syslog- فقط منبع به عنوان یک عدد
  • syslogfacility-text- فقط منبع رمزگشایی شده ("local0")
  • شدت سیستم- فقط اولویت به عنوان یک عدد
  • syslogseverity-text- فقط سطح رمزگشایی شده ("اشکال زدایی")
  • زمان تولید شده است- زمان دستیابی (رزولیشن بالا)
  • زمان گزارش شده- زمان استخراج شده از پیام
  • نام ورودی- نام ماژول ورودی
  • $ ساعت، $ دقیقه- زمان فعلی
  • $myhostname- پردازش نام میزبان

همانطور که می بینید، برخی از ویژگی ها با علامت دلار شروع می شوند - آنها محلی\سیستم در نظر گرفته می شوند.

به علاوه - گزینه ها. گزینه ها به شما امکان می دهند یک متغیر را در محدوده علامت درصد به علامت درصد تغییر دهید. می توانید چندین گزینه را همزمان با کاما از هم جدا کنید. اگر چندین مورد متناقض (مثلاً حروف بزرگ، کوچک) را مشخص کنید، آخرین مورد مشخص شده (کوچک) اعمال خواهد شد. در اینجا چند گزینه وجود دارد:

  • حروف بزرگ- تبدیل به حروف بزرگ
  • حروف کوچک- تبدیل به حروف کوچک
  • date-mysql- تبدیل به فرمت تاریخ MySQL
  • فضا-سی سی- کاراکترهای کنترل را با فاصله جایگزین کنید
  • قطره سی سی- حذف کاراکترهای کنترل

نام زمینه- این فیلد از نسخه 6.3.9+ موجود است و کاراکتر بسیار خاصی دارد. میتونی فراموشش کنی...

همانطور که از الگوی متغیر بالا می بینید، مقادیر بریس های فرفری اختیاری هستند، یعنی به سادگی می توانید به عنوان مثال %hostname% را مشخص کنید. اما اگر از گزینه‌ها استفاده می‌شود، باید فیلدهای خالی قبلی نیز مشخص شود، به عنوان مثال %hostname::: کوچک. فیلدهایی که بین کولون ها وجود ندارد start_of_line و end_of_line. در همان زمان، به دلایلی نام فیلد خالی نشان داده نمی شود.

الگوهایی که در rsyslog کدگذاری شده اند (اما می توان آنها را با یک دستورالعمل تغییر داد $ActionFileDefaultTemplate):

قالب RSYSLOG_SyslogProtocol23- قالب تعریف شده در پیش نویس استاندارد IETF ietf-syslog-protocol-23 از این الگو پیروی می کند:

"<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n\"

RSYSLOG_FileFormat- قالب سنتی گزارش، با اضافه کردن کسری از ثانیه و منطقه، مطابق با الگو است:

"%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n\"

RSYSLOG_TraditionalFileFormat- فرمت لاگ سنتی برای نوشتن روی یک فایل، با الگوی زیر مطابقت دارد:

"%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n\"

RSYSLOG_ForwardFormat- فرمت لاگ سنتی برای انتقال با افزودن کسری از ثانیه و منطقه، از الگوی زیر پیروی می کند:

"<%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\"

RSYSLOG_TraditionalForwardFormat- فرمت ورود به سیستم سنتی برای انتقال به یک سرور راه دور

"<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\"

قوانین مرتب سازی rsyslog (خط قانون)

هر خط از قوانین مرتب‌سازی یک قالب کلاسیک دارد، درست مانند یک syslog معمولی. برای درک اینکه چه چیزی و چگونه، باید مقاله را بخوانید. به طور خلاصه: قاعده شامل انتخابگر و اقدامات ، با فاصله یا برگه از هم جدا شده است. انتخابگربه نوبه خود شامل منبعو اولویت. هر پیام در برابر انتخابگر از هر قانون به ترتیب بررسی می شود، اگر پیام و انتخابگر قانون مطابقت داشته باشند، عمل مشخص شده انجام می شود. در همان زمان، پس از اولین مسابقه، پردازش متوقف نمی شود. قبل از عمل، پیام مطابق با الگو تبدیل می شود (الگوی پیش فرض مشخص شده در دستورالعمل مربوطه (به جای الگوی پیش فرض)، الگوی مشخص شده در این عمل یکی از سه مورد است).

به ویژگی های استاندارد انتخابگرهای syslogبرخی از ویژگی های اضافی اضافه شده است (اجازه دهید یادآوری کنم که به طور کلاسیک انتخابگر است منبع.اولویت، موسوم به امکانات.اولویت). در rsyslog می توانید از مقادیر به عنوان انتخابگر استفاده کنید. در rsyslog استفاده از متغیرها در انتخابگر نامیده می شود فیلترها. در بالا در مقاله، و همچنین در رویکرد کلاسیک به فیلتر بر اساس منبع.اولویت(باصطلاح انتخابگرهای مبتنی بر شدت و تسهیلات "سنتی".). علاوه بر فیلترهای سنتی، موارد زیر نیز وجود دارد انواع فیلتراسیون: فیلترهای مبتنی بر RainerScript(فیلتر کردن بر اساس زبان RainerScript - در واقع معمول if - then - else)، فیلترهای مبتنی بر ویژگی(فیلتر کردن بر اساس ویژگی های پیام (مانند)). بیایید به هر دو نگاه کنیم:

فیلترهای مبتنی بر RainerScript

همانطور که گفتم، RainerScript یک زبان کلاسیک است. در rsyslog، RainerScript از تودرتوی شرایط، عملیات حسابی، منطقی و رشته پشتیبانی می کند. به طور کلی، نحو به شرح زیر است:

اگر شرط است action_block other action_block

به ترتیب، اگر پس از آن- اینها اپراتورهای اجباری هستند که ساخت شرط را تعریف می کنند، دیگر- از روی ضرورت action_block - می تواند شامل یک عمل ()، یا یک بلوک تودرتو از شرایط باشد. اگر یک بلوک شرط شامل چندین عمل باشد، در داخل پرانتز قرار می گیرد. وضعیت- شامل یک شرط برای انتخاب پیام برای action_block است. در شرایطی که می توانید استفاده کنید:

  1. عبارات منطقی(و، یا، نه)، و همچنین گروه بندی این عبارات به شکل: نه شرط0 و (شرط 1 و شرط2).
  2. خواص- متغیرها به شکل $variable_name مشخص می شوند (به عنوان مثال $hostname یا $msg)
  3. عملیات مقایسه(== - برابر، != - مساوی نیست، > - بزرگتر،< - меньше, <= - меньше или равно, >= - بزرگتر یا مساوی، (!) حاوی - (نداشته) است، (!)با شروع می شود - (با شروع نمی شود)
  4. نظرات /* نظرات */(نکته مشکوک...آیا باید مثل در bash فرار کرد؟؟؟)

سیسکو

as53xx231#conf t دستورات پیکربندی را در هر خط یکی وارد کنید. با CNTL/Z پایان دهید. as53xx231(config)#logging 10.0.0.1 as53xx231(config)#exit

VMware ESXi

برای یک هایپروایزر قدیمی:

باید موارد زیر را به /etc/syslog.conf اضافه کنید:

*.* @10.0.0.1 # در فایروال باید به syslog اجازه دهید و آن را ذخیره کنید: esxcfg-firewall -o 514,udp,out,syslog esxcfg-firewall -l # راه اندازی مجدد سرویس syslog راه اندازی مجدد syslog

در آخرین نسخه هایپروایزر، همه چیز از طریق کلاینت GUI انجام می شود. در تنظیمات Hypervisor Advansed -> Syslog -> remote آدرس سرور rsyslog را مشخص کنید.

ذخیره ورود به سیستم rsyslog در MySQL DBMS

در دبیان، راه‌اندازی فضای ذخیره‌سازی در پایگاه داده بسیار ساده است (تقریباً مانند یک دستگاه فروش خودکار)). به طور کلی کافی است بسته rsyslog-mysql را نصب کنید. در این حالت، نصب کننده ماژول ommysql.so را در پوشه /usr/lib/rsysloul/spang/ قرار می دهد و ویزارد پیکربندی را راه اندازی می کند که رمز عبور مدیر MySQL را درخواست می کند، یک کاربر جداگانه ایجاد می کند و برای آن رمز عبور می خواهد. پایگاه داده مربوطه را از اسکریپت /usr/share/dbconfig-common/data/rsyslog-mysql/install/mysql ایجاد می کند. تنظیمات به دست آمده در /etc/rsyslog.d/mysql.conf قرار می گیرند. پیکربندی از 2 خط تشکیل شده است:

# اتصال ماژول: $ModLoad ommysql # ارسال همه پیام‌ها به MySQL (اقدامات بالا را به خاطر بسپارید) *.* :ommysql:server_address، پایگاه_نام، نام_کاربر، رمز عبور

رابط وب برای rsyslog

ما Loganalizer را از adiscon به عنوان یک رابط وب پیکربندی می کنیم. نصب رابط وب بسیار ساده است. این شامل دانلود آرشیو، باز کردن آن در فهرست وب سرور و راه اندازی جادوگر تنظیمات گرافیکی است. بنابراین، از اینجا (http://loganalyzer.adiscon.com/downloads) بایگانی را با فایل ها دانلود کنید (به عنوان مثال: http://download.adiscon.com/loganalyzer/loganalyzer-3.5.6.tar.gz). البته قبل از راه اندازی باید وب سرور و ماژول php5 نصب شده باشد (aptitude install apache2 libapache2-mod-php5). و بله، همچنین php5-gd برای نمایش گزارش ها.

~ # # دانلود بایگانی: ~ # wget http://download.adiscon.com/loganalyzer/loganalyzer-3.5.6.tar.gz ~ # # بایگانی را باز کنید: ~ # tar xf loganalyzer-3.5.6.tar. gz

دایرکتوری loganalyzer-3.5.6 در دایرکتوری فعلی ظاهر می شود که حاوی اطلاعاتی است که ارزش خواندن دارد:

~ # ls -l مجموع 12 drwxr-xr-x 3 ریشه ریشه 4096 20 سپتامبر 22:51. drwx------ 13 root root 4096 سپتامبر 20 23:01 .. drwxrwxr-x 5 root root 4096 سپتامبر 10 17:26 loganalyzer-3.5.6 ~ # ls -l loganalyzer-3.5.6 -rw total 11 -rw-r-- 1 root root 41186 Sep 10 17:26 ChangeLog drwxrwxr-x 2 root root 4096 Sep 20 23:01 contrib -rw-rw-r-- 1 root root 35497 Sep 10 17:26 drwxrwxr OP 2 root root 4096 Sep 10 17:34 doc -rw-rw-r-- 1 root root 8449 Sep 10 17:26 INSTALL drwxrwxr-x 14 root root 4096 Sep 10 17:34 src ~ # # از دایرکتوری نیاز داریم برای کپی کردن محتویات در /var/www/loganalyzer: ~ # mkdir /var/www/loganalyzer ~ # cp -r loganalyzer-3.5.6/src/* /var/www/loganalyzer ~ # # در مرحله بعد، باید یک فایل پیکربندی خالی، ~ # # که به طور خودکار توسط نصب کننده پر می شود ~ # لمس /var/www/loganalyzer/config.php ~ # # مجوزهای نوشتن را تنظیم کنید (پس از نصب، این حقوق را می توان حذف کرد) ~ # chmod 666 / var/www/loganalyzer/config.php

اینجا کلیک کنید

می بینیم که چرا مجوزهای 666 را داده ایم، روی Next کلیک کنید

در اینجا تنظیمات مورد نظر را انتخاب می کنیم. پارامتر Enable User Database به توجه ویژه نیاز دارد. اگر آن را انتخاب کنید، یک پایگاه داده جداگانه برای ذخیره تنظیمات رابط وب ایجاد می شود. همچنین امکان ایجاد کاربر و گروه نیز در دسترس خواهد بود. Next را کلیک کنید.

یک اضافه کوچک وجود دارد - سرور وب به فایل های معمولی در فهرست /var/log/ دسترسی ندارد. بنابراین، گزارش ممکن است نمایش داده نشود. برای حل این مشکل، باید کاربر www-data را به گروه adm اضافه کنید:

~ # usermod -G adm www-data

علاوه بر Loganalyzer، Logzilla نیز وجود دارد که عملکرد مشابهی دارد. همچنین ارزش آن را دارد که در صورت تمایل آن را نصب کنید.

چند نکته و ترفند برای rsyslog

گاهی اوقات، وقتی rsyslog یک سرویس شبکه برای جمع‌آوری گزارش‌های از راه دور است، ذخیره پیام‌ها با نام میزبان ناخوشایند یا غیرمولد یا چیز دیگری است. برای غیرفعال کردن حل آدرس های IP در نام هاست، باید پارامتر -x را اضافه کنید:

~ # cat /etc/default/rsyslog RSYSLOGD_OPTIONS="-c5 -x"

برای اینکه به بسته های UDP اجازه عبور داده شود، باید از دستور زیر استفاده کنید:

~ # iptables -A INPUT -p udp -s source_subnet --dport 514 -i interface -j ACCEPT

چند نمونه از قوانین همراه با نظرات:

اگر یک انتخابگر مانند این ایجاد کنید: اگر $fromhost-ip با "10.0.1" شروع شود. سپس /something/ # باید به آخرین نقطه آدرس توجه کنید، در غیر این صورت آدرس های زیر شبکه 10.0.111.0، 10.0.12.0 و دیگران تحت قانون قرار می گیرند.

برای یک سرور متمرکز برای جمع‌آوری گزارش‌ها از دستگاه‌های شبکه، می‌توانید منبع (امکانات) دستگاه‌های شبکه را روی هر مقداری از local0-local7 تنظیم کنید. این به شما امکان می دهد پیام ها را به راحتی مرتب کنید، به عنوان مثال:

# cisco: net-device-cisco#conf t دستورات پیکربندی را در هر خط یکی وارد کنید. با CNTL/Z پایان دهید.<...>net-device-cisco(config)#logging facility local2<...># rsyslog-server local2.* /var/log/remote-cisco.log & ~

به این ترتیب، می توانید به راحتی پیام های محلی را از راه دور فیلتر کنید.

در اینجا پیکربندی وجود دارد که به شما امکان می‌دهد اعلان‌های ایمیلی درباره رویدادها ارسال کنید (!!! سرور ایمیل باید پیام‌ها را بدون احراز هویت بپذیرد):

$ModLoad ommail $ActionMailSMTPSسرور smtp_address $ActionMailSMTPPport 25 $ActionMailFrom sender@address $ActionMailTo recipient@address $template mail_subject,"در میزبان %hostname%, سطح خطا توسط سروری"$logerFrome%Stemplate.s. syslogpriority% در %timegenerated% در میزبان: %HOSTNAME%\r\n %msg%" $ActionMailSubject mail_subject # فاصله زمانی (مکث بین حروف) $ActionExecOnlyOnceEveryInterval 10 # فیلتر انتخاب و اگر نه ($msg حاوی "چیزی" یا $msg حاوی "something other"\ یا $msg حاوی " maybe_something other") و ($syslogseverity-text =="err"\ یا $syslogseverity-text =="crit"\ یا $syslogseverity-text =="هشدار است. "\ or $syslogseverity-text =="emerg")\ then:ommail:;mail_body

عیب یابی

برای تشخیص عملکرد syslog، یک دستور مثال برای نظارت بسیار مفید است:

~ # tcpdump -vvv -nn -i رابط udp پورت 514

و البته خود /var/log/syslog.

چیز غیرعادی ندیدم

15 فوریه 17:47:23 log-n1 yum: نصب شده: syslog-ng-3.5.6-3.el7.x86_64
15 فوریه 17:47:36 log-n1 systemd: بارگذاری مجدد.

15 فوریه 17:47:40 log-n1 syslog-ng: syslog-ng راه اندازی. نسخه='3.5.6'
15 فوریه 17:47:40 log-n1 systemd: گوش دادن در سوکت Syslog.
15 فوریه 17:47:40 log-n1 systemd: راه اندازی سوکت Syslog.
15 فوریه 17:47:40 log-n1 systemd: شروع سیستم Logger Daemon…
15 فوریه 17:47:40 log-n1 systemd: سیستم Logger Daemon را شروع کرد.
15 فوریه 17:52:41 log-n1 syslog-ng: syslog-ng خاموش می شود. نسخه='3.5.6'
15 فوریه 17:52:41 log-n1 systemd: توقف سیستم Logger Daemon…


15 فوریه 17:52:41 log-n1 systemd: زمان توقف syslog-ng.service به پایان رسید، زمان‌بندی راه‌اندازی مجدد.
15 فوریه 17:52:41 log-n1 systemd: شروع سیستم Logger Daemon…
15 فوریه 17:52:41 log-n1 systemd: syslog-ng.service: فرآیند اصلی خارج شد، کد=خروج شد، وضعیت=2/INVALIDARGUMENT
15 فوریه 17:52:41 log-n1 systemd: سیستم Logger Daemon راه اندازی نشد.
15 فوریه 17:52:41 log-n1 systemd: واحد syslog-ng.service وارد وضعیت ناموفق شد.
15 فوریه 17:52:41 log-n1 systemd: syslog-ng.service ناموفق بود.



15 فوریه 17:52:42 log-n1 systemd: زمان توقف syslog-ng.service به پایان رسید، زمان‌بندی راه‌اندازی مجدد.
15 فوریه 17:52:42 log-n1 systemd: شروع سیستم Logger Daemon…
15 فوریه 17:52:42 log-n1 systemd: syslog-ng.service: فرآیند اصلی خارج شد، کد=خروج شد، وضعیت=2/INVALIDARGUMENT
15 فوریه 17:52:42 log-n1 systemd: سیستم Logger Daemon راه اندازی نشد.
15 فوریه 17:52:42 log-n1 systemd: واحد syslog-ng.service وارد وضعیت ناموفق شد.
15 فوریه 17:52:42 log-n1 systemd: syslog-ng.service ناموفق بود.
15 فوریه 17:52:42 log-n1 systemd: زمان توقف syslog-ng.service به پایان رسید، زمان‌بندی راه‌اندازی مجدد.
15 فوریه 17:52:42 log-n1 systemd: شروع سیستم Logger Daemon…
15 فوریه 17:52:42 log-n1 systemd: syslog-ng.service: فرآیند اصلی خارج شد، کد=خروج شد، وضعیت=2/INVALIDARGUMENT
15 فوریه 17:52:42 log-n1 systemd: سیستم Logger Daemon راه اندازی نشد.
15 فوریه 17:52:42 log-n1 systemd: واحد syslog-ng.service وارد وضعیت ناموفق شد.
15 فوریه 17:52:42 log-n1 systemd: syslog-ng.service ناموفق بود.
15 فوریه 17:52:42 log-n1 systemd: زمان توقف syslog-ng.service به پایان رسید، زمان‌بندی راه‌اندازی مجدد.
15 فوریه 17:52:42 log-n1 systemd: سیستم Logger Daemon راه اندازی نشد.
15 فوریه 17:52:42 log-n1 systemd: واحد syslog-ng.service وارد وضعیت ناموفق شد.
15 فوریه 17:52:42 log-n1 systemd: syslog-ng.service ناموفق بود.
15 فوریه 17:52:42 log-n1 systemd: درخواست شروع خیلی سریع برای syslog-ng.service تکرار شد
15 فوریه 17:52:42 log-n1 systemd: سیستم Logger Daemon راه اندازی نشد.
15 فوریه 17:52:42 log-n1 systemd: واحد syslog.socket وارد وضعیت ناموفق شد.
15 فوریه 17:52:42 log-n1 systemd: syslog-ng.service ناموفق بود.
15 فوریه 17:53:11 log-n1 systemd: گوش دادن در سوکت Syslog.

بهترین مقالات در این زمینه