زنگ

کسانی هستند که قبل از شما این خبر را می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه دوست دارید زنگ را بخوانید
بدون هرزنامه

برای شروع سرور 01شما باید بسته nagios را نصب کنید. برای انجام این کار، در ترمینال وارد کنید:

sudo apt-get نصب پلاگین nagios3 nagios-nrpe

از شما خواسته می شود که یک رمز عبور برای کاربر وارد کنید nagiosadmin. حساب های کاربری در /etc/nagios3/htpasswd.users قرار دارند. برای تغییر رمز عبور کاربر nagiosadminیا اضافه کردن کاربران دیگر برای اجرای اسکریپت های Nagios CGI از این ابزار استفاده کنید htpasswd، که بخشی از بسته بندی است apache2-utils.

به عنوان مثال برای تغییر رمز عبور کاربر nagiosadminدر ترمینال تایپ کنید:

sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin

برای افزودن کاربر:

sudo htpasswd /etc/nagios3/htpasswd.users استیو

sudo apt-get install nagios-nrpe-server

NRPEبه شما امکان می دهد تا بررسی های محلی را روی یک کامپیوتر راه دور انجام دهید. اما راه های دیگری نیز برای رسیدن به این هدف با استفاده از افزونه های دیگر Nagios و همچنین راه های دیگر بررسی وجود دارد.

نمای کلی فایل پیکربندی

چندین دایرکتوری حاوی فایل های پیکربندی Nagios و همچنین فایل های چک وجود دارد.

1. /etc/nagios3:حاوی فایل های پیکربندی برای اجرای nagios daemon، فایل های CGI، توضیحات کامپیوتر و غیره است.

2. /etc/nagios-plugins:فایل های پیکربندی برای بررسی خدمات

3. /etc/nagios:حاوی فایل های پیکربندی در رایانه راه دور است nagios-nrpe-server.

4. /usr/lib/nagios/plugins/:در اینجا چک های باینری وجود دارد. برای مشاهده گزینه های اسکن، از کلید "-h" استفاده کنید.

مثلا:/usr/lib/nagios/plugins/check_dhcp -h

چک های Nagios زیادی وجود دارد که می توان آنها را برای اجرا در هر ماشینی پیکربندی کرد. در این مثال، Nagios برای بررسی فضای دیسک، سرویس DNS و گروه های کاربری MySQL پیکربندی می شود. بررسی DNS انجام خواهد شد server02، و گروه ماشین MySQL شامل هر دو خواهد شد سرور 01بنابراین server02.

بخش را ببینید HTTPD - وب سرور Apache2برای تنظیمات بیشتر Apache، سرویس نام دامنه (DNS) برای راه اندازی DNS، و MySQL برای راه اندازی MySQL.

علاوه بر این، چند اصطلاح برای کمک به شما در راه اندازی آسان Nagios داده می شود:

کامپیوتر (میزبان):سرور، ایستگاه کاری، دستگاه شبکه و غیره که در حال نظارت است.

گروه کامپیوتر:گروهی از کامپیوترهای مشابه به عنوان مثال، می توانید تمام وب سرورها، سرورهای فایل و غیره را گروه بندی کنید.

سرویس:سرویسی که بر روی رایانه نظارت می شود. به عنوان مثال HTTP، DNS، NFS و غیره.

گروه خدمات:به شما امکان می دهد چندین سرویس را با هم ترکیب کنید. به عنوان مثال، این برای ادغام چندین وب سرور مفید خواهد بود.

مخاطب:شخصی که هنگام وقوع یک رویداد مطلع می شود. Nagios را می توان برای ارسال ایمیل، اس ام اس و غیره پیکربندی کرد.

به طور پیش‌فرض، Nagios برای بررسی HTTP، فضای دیسک، SSH، کاربران فعلی، فرآیندها و نظارت بر سطوح بار در ماشین محلی پیکربندی شده است. Nagios همچنین یک بررسی دروازه با دستور انجام می دهد پینگ.

مجموعه سیستم های Nagios نصب شده را می توان به طور جامع پیکربندی کرد. بهتر است با چندین کامپیوتر، یکی دو تا، شروع کنید و سپس به جای استفاده از افزونه ها، پیکربندی بهینه را انجام دهید.

تنظیمات

1.1. ابتدا باید یک فایل کانفیگ برای آن ایجاد کنید server02. مگر اینکه غیر از این ذکر شده باشد، همه این دستورات را اجرا کنید سرور 01. در ترمینال تایپ کنید:

sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg \ /etc/nagios3/conf.d/server02.cfg

در مثال بالا و زیر، "server01"، "server02" 172.18.100.100 و 172.18.100.101 را با نام و آدرس IP سرورهای خود جایگزین کنید.

تعریف میزبان (استفاده از generic-host ؛ نام قالب میزبان برای استفاده از host_name server02 نام مستعار سرور 02 آدرس 172.18.100.101 ) # سرویس DNS را بررسی کنید. تعریف سرویس (استفاده از سرویس عمومی host_name server02 service_description DNS check_command check_dns!172.18.100.101)

1.3. برای فعال کردن تنظیمات جدید، nagios daemon را دوباره بارگیری کنید:

2.1 حالا بیایید با افزودن خطوط زیر به /etc/nagios3/conf.d/services_nagios2.cfg، یک توضیح سرویس برای بررسی MySQL اضافه کنیم:

# سرورهای MySQL را بررسی کنید. تعریف سرویس (hostgroup_name mysql-servers service_description MySQL check_command check_mysql_cmdlinecred!nagios!secret!$HOSTADDRESS از generic-service notification_interval 0 استفاده کنید؛ اگر می خواهید مجدداً به شما اطلاع داده شود، > 0 را تنظیم کنید)

2.2. سرورهای گروه mysql اکنون باید تعریف شوند. /etc/nagios3/conf.d/hostgroups_nagios2.cfg را ویرایش کنید تا موارد زیر را اضافه کنید:

# گروه میزبان MySQL. تعریف میزبان (hostgroup_name mysql-servers مستعار سرورهای MySQL اعضای localhost، server02)

Mysql -u root -p -e "ایجاد nagios کاربر شناسایی شده توسط "secret";"

کاربر nagios باید در تمام کامپیوترهای گروه کاری سرور mysql حضور داشته باشد.

2.4. برای تست سرور MySQL، nagios را مجددا راه اندازی کنید.

sudo /etc/init.d/nagios3 راه اندازی مجدد

3.1. در نهایت، باید NRPE را برای بررسی فضای دیسک پیکربندی کنید server02.

در سرور 01یک بررسی سرویس را به /etc/nagios3/conf.d/server02.cfg اضافه کنید:

# بررسی دیسک NRPE. تعریف سرویس (استفاده از سرویس عمومی host_name server02 service_description nrpe-disk check_command check_nrpe_1arg!check_all_disks!172.18.100.101 )

3.2. در حال حاضر در server02ویرایش /etc/nagios/nrpe.cfg:

Allowed_hosts=172.18.100.100

و در خط اعلان دستور اضافه کنید:

Command=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e

3.3. در نهایت، nagios-nrpe-server را مجددا راه اندازی کنید:

sudo /etc/init.d/nagios-nrpe-server راه اندازی مجدد

3.4. در سرور 01شما همچنین باید nagios را دوباره بارگیری کنید:

sudo /etc/init.d/nagios3 راه اندازی مجدد

اکنون باید بتوانید سرورها و بررسی های سرویس خود را در فایل های Nagios CGI مشاهده کنید. برای دسترسی به آنها، http://server01/nagios3 را در مرورگر خود تایپ کنید. از شما یک نام کاربری و رمز عبور برای nagiosadmin خواسته می شود.

پیوندها

در این بخش تنها ویژگی های جزئی Nagios شرح داده شده است. nagios-plugins-extra و nagios-snmp-plugins حاوی فایل های بررسی سرویس های بیشتری هستند.

1. برای اطلاعات بیشتر، به اسناد در وب سایت رسمی Nagios مراجعه کنید.

2. اسناد با تمرکز محدود در Nagios.

3. چندین کتاب در مورد Nagios و نظارت بر شبکه وجود دارد.

4. صفحه Nagios Ubuntu Wiki نیز حاوی اسناد زیادی است.

Nagios یک برنامه مانیتورینگ سیستم های اطلاعاتی منبع باز است. این محصول عملا استاندارد سیستم های نظارتی است. اجازه می دهد (از جمله):

  • نظارت بر میزبان ها (بار پردازنده، استفاده از دیسک، گزارش ها و غیره) با انواع سیستم عامل ها - ویندوز، لینوکس، AIX، Solaris و غیره؛
  • کنترل خدمات شبکه (SMTP، POP3، HTTP، SSH، و غیره)؛
  • ماژول های اضافی (پلاگین ها) را به هر زبان برنامه نویسی (شل، سی پلاس پلاس، پرل، پایتون، پی اچ پی، سی شارپ و غیره) متصل کنید - معماری ماژول باید باز باشد)، از روش های خود برای بررسی خدمات استفاده کنید.
  • انجام بررسی های موازی سیستم ها (برای بهبود عملکرد)؛
  • ارسال هشدار در صورت بروز مشکل از طریق ایمیل، پیامک و غیره؛
  • به طور خودکار به رویدادهای سرویس یا میزبان پاسخ می دهد.

نصب Nagios

Nagios یک پروژه متن باز است که برای نصب هم در کدهای منبع و هم در بسته های آماده شده برای کلون های مختلف لینوکس در دسترس است. واضح است که نصب از منبع جدیدتر از بسته های آماده شده است.

نصب از بسته های آماده شده طبق قوانین نسخه مربوطه سیستم عامل انجام می شود. به عنوان مثال، برای اوبونتو دستور چیزی شبیه به این خواهد بود:

apt-get نصب nagios2

این تضمین می کند که تمام کتابخانه های مورد نیاز برای کار نصب شده اند و ساده ترین روشی است که برای کاربران عادی توصیه می شود.

روش نصب سریع برنامه در اوبونتو در وب سایت در بخش اسناد توضیح داده شده است (http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html). لطفاً توجه داشته باشید که نصب از منبع باید با نصب افزونه ها و افزونه های لازم انجام شود.

پس از اتمام نصب، می توانید با باز کردن صفحه http://localhost/nagios/ عملکرد برنامه را بررسی کنید (اگر صفحه را از یک کامپیوتر راه دور باز می کنید، به جای localhost، باید از نام سرور Nagios استفاده کنید). . هنگامی که پارامترهای مجوز از شما خواسته می شود، باید نام nagiosadmin و رمز عبوری را که در مراحل قبلی به این حساب اختصاص داده اید وارد کنید.

روی انجیر 7.14 یکی از صفحات برنامه را نشان می دهد - ساختار یک سیستم کوچک که توسط Nagios کنترل می شود (این طرح به طور خودکار در Nagios ساخته می شود).

برنج. 7.14.
نمودار شبکه در Nagios

کمی در مورد منطق Nagios

Nagios را می توان به صورت مشروط به عنوان دو بخش نشان داد: یک سرور (در واقع، نصب آن در بخش فرعی قبلی مورد بحث قرار گرفت) و یک کلاینت، یعنی سیستمی که با یا بدون نصب یک عامل کنترل می شود.

نسخه های مختلفی از Agent ها بر روی سیستم عامل ها نصب شده اند. اغلب، برای سیستم های مبتنی بر لینوکس، از برنامه NRPE استفاده می شود (لینک این افزونه در وب سایت رسمی Nagios موجود است - http://www.nagios.org/)، و برای رایانه های ویندوز - NSClient++ (http:/ /trac. nakednuns.org /nscp/).

    توجه داشته باشید

    از لحاظ تاریخی، اولین سرویس گیرنده ویندوز، نوعی از برنامه NPRE بود. برای اهداف سازگاری، NSClient++ پروتکل مورد استفاده توسط NPRE را حفظ می کند. در تنظیمات مشتری، می‌توانید استفاده از یکی از گزینه‌های کاری یا هر دو را مشخص کنید (مثلاً برخی از افزونه‌ها برای نسخه خاصی از مشتری توسعه داده شده‌اند). توجه داشته باشید که در برخی موارد NPRe کنترل بیشتری را فراهم می‌کند، مثلاً پیکربندی اسکریپت‌ها را برای اجرا در خود سیستم کنترل‌شده آسان می‌کند.

توجه داشته باشید که هر کلاینت باید همانطور که در بخش های زیر توضیح داده شده است پیکربندی شود.

با کمک مشتریان، نظارت فعال کار انجام می شود: سرور دستوری را که توسط تنظیمات روی مشتری مشخص شده است آغاز می کند و داده های دریافتی را تجزیه و تحلیل می کند. علاوه بر این، در مواردی که داده ها به ابتکار مشتری به سرور ارسال می شوند، حالت غیرفعال عملکرد امکان پذیر است. به عنوان مثال، تله های SNMP به این صورت است.

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

    توجه داشته باشید

    پیدا کردن افزونه ها در وب آسان است: Nagios پیوندی به پروژه ها در SourceForge.net دارد، می توانید از سایت تبادل افزونه http://www استفاده کنید. monitoringexchange.org/ و منابع دیگر.

برای اینکه سیستم نظارت بتواند از آنها استفاده کند، چنین دستوراتی باید در یک فایل پیکربندی خاص - commands.cfg توضیح داده شود. این توصیفات بر حسب Nagios هستند که دستورات کنترلی نامیده می شوند.

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

هر سیستم کنترل شده باید در پیکربندی Nagios توضیح داده شود. برای راحتی، این کار در فایل‌های جداگانه (بر اساس انواع دستگاه) انجام می‌شود، که هنگام راه‌اندازی سرور در پیکربندی کلی گنجانده می‌شود. در ابتدا، لینک‌های این فایل‌ها «براساس جهت‌ها» کامنت می‌شوند، بنابراین اگر نیاز به نظارت بر هر کلاسی از دستگاه‌ها دارید، ابتدا باید علامت «#» را در خط مربوطه فایل nagios.cfg حذف کنید، و سپس بلوک توضیحات سیستم را به فایل مناسب اضافه کنید.

در نتیجه، Nagios به صورت دوره ای دستورات مشخص شده را بر روی سیستم های نظارت شده اجرا می کند، نتایج را جمع آوری می کند و در صورت وقوع یک رویداد مهم به اپراتورها اطلاع می دهد. نتایج کنترل را می توان ذخیره کرد (به طور پیش فرض، داده های عملکرد ذخیره نمی شود) و به صورت گرافیکی برای تجزیه و تحلیل ارائه می شوند (به بخش "نقاشی در Nagios" مراجعه کنید). به این ترتیب می توانید به طور خودکار مشکلاتی را که پیش می آید عیب یابی کنید.

اگر سیستم بسیاری از رایانه ها و دستگاه ها را کنترل کند، گروه بندی آنها راحت است. در Nagios، می توانید گروه هایی از رایانه ها (دستگاه ها) و خدمات ایجاد کنید. به عنوان مثال، اگر می خواهید وضعیت همه سرویس ها را روی سرورها نظارت کنید، باید گروهی ایجاد کنید که شامل نام این سیستم ها باشد. و اگر می خواهید وضعیت، به عنوان مثال، یک سرویس تفکیک نام DNS را که روی چندین سیستم فیزیکی اجرا می شود، نظارت کنید، ایجاد یک گروه برای این سرویس راحت است: برای دیدن وضعیت کل گروه کافی است. طبیعی است که مطمئن شوید که سرویس های DNS روی همه رایانه ها کار می کنند. این می تواند تنظیمات مدیریت و نظارت را ساده کند.

از تنظیمات پیکربندی کلی، پارامترهای اپراتورها را نیز یادداشت می کنیم - افرادی که برنامه در صورت بروز رویدادهای خاص برای آنها پیام ارسال می کند. در Nagios، اپراتورهای فردی نیز می توانند در گروه ها ترکیب شوند و پیکربندی شوند تا پیام هایی از نوع خاصی را به گروه خاصی از متخصصان ارسال کنند. همچنین می توانید دوره های زمانی را تنظیم کنید. از آنها می توان برای اعمال، به عنوان مثال، انواع مختلف کنترل در روزهای هفته و آخر هفته، برای روش های مختلف اطلاع رسانی به مدیران (به عنوان مثال، از طریق ایمیل در طول روز، و توسط پیجر در شب) و غیره استفاده کرد.

هشدارها را می توان افزایش داد: در صورت تکرار رویدادها، می توان هشداری را در سلسله مراتب به متخصص بعدی ارسال کرد.

ساختار فایل های پیکربندی Nagios

لیست فایل های پیکربندی استاندارد Nagios در جدول آورده شده است. 7.1.

جدول 7.1.
لیست فایل های پیکربندی Nagios

نام فایل

هدف

فایل پیکربندی اولیه حاوی نام و آدرس مدیر Nagios، پیوندهایی به فایل های پیکربندی وارد شده در هنگام راه اندازی سیستم

فایل توضیحات منبع حاوی مترادف هایی برای پنهان کردن مسیرهای مکان واقعی دستورات Nagios از کاربر نهایی برای بهبود امنیت

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

پوشه های شی و غیره

پوشه‌هایی با فایل‌های جداگانه که هنگام شروع Nagios به پیکربندی وارد می‌شوند. این پوشه ها در فایل nagios.cfg توضیح داده شده اند

شرح دستورات Nagios

دستورات Nagios در فایل commands.cfg توضیح داده شده است (مسیر پیش فرض /usr/local/nagios/etc/object/commands.cfg است).

در عمل معمولاً در فایل commands.cfg باید محل فایل اجرایی، نام آن که در Nagios استفاده خواهد شد و پارامترهای خط راه اندازی را مشخص کنید. به طور پیش فرض، فایل پیکربندی سیستم نصب شده قبلاً حاوی توضیحاتی از دستورات تأیید معمول است (بررسی پینگ - check_ping، بررسی سرور http - check_http و بسیاری دیگر). بر اساس این نمونه ها، می توانید به راحتی تیم های تأیید خود را ایجاد کنید، اگرچه آنها معمولاً از طرح های آماده استفاده می کنند که تقریباً برای هر گزینه کنترلی می توان به راحتی در وب یافت. در زیر نمونه‌ای از شرح ساده‌ترین دستور است - بررسی دسترس‌پذیری یک میزبان با استفاده از دستور ping:

این توضیحات دستوری به نام check-host-alive با استفاده از دستور check_ping از ابزارهای نصب شده Nagios به عنوان فایل اجرایی ایجاد می کند. نمادهای محصور شده در علائم دلار نشان دهنده متغیرهای مورد استفاده است. از نظر Nagios، اینها ماکروها (ماکروها) هستند که در زمان اجرا با مقادیر جایگزین می شوند. از آنجایی که ما معمولاً به تعریف متفاوتی از ماکروها عادت داریم، در سراسر این کتاب به این نام ها به عنوان متغیر اشاره خواهیم کرد. $hostaddress$ به طور سنتی هنگام فراخوانی با نام سیستم تحت آزمایش، و $arg1$، $arg2$، و غیره - به طور متوالی با آرگومان های مشخص شده در توضیحات سرویس جایگزین می شود. کلیدهای w و c مقادیری را که برای ایجاد وضعیت اخطار (w) یا خطا (c) استفاده می شود را مشخص می کند. به عنوان یک قاعده، می توانید مقادیر مطلق یا نسبی را تعیین کنید (یا هر دو: در یک پیکربندی معمولی، به عنوان مثال، پارامتر w به عنوان 3000.0.80٪ مشخص شده است). سوئیچ آخر (-p) مشخص می کند که دستور ping باید پنج بسته پروب ارسال کند.

خدمات Nagios

سرویس‌ها معمولاً در فایل‌های پیکربندی به‌طور جداگانه برای هر نوع سیستم کنترل‌شده توضیح داده می‌شوند (در پیکربندی کلی Nagios، چنین فایل‌هایی توسط دستورالعمل‌های cgf_file=... در فایل nagios.cfg وارد می‌شوند). ساخت فایل‌های پیکربندی با توضیحات الگو شروع می‌شود، سپس توضیحات میزبان و سپس توضیحات خدمات ارائه می‌شود.

در توضیحات سرویس، دیگر نمی‌توانید مقادیر رایج الگوها را تکرار کنید، بنابراین یک تعریف معمولی سرویس ممکن است چیزی شبیه به این باشد:

در این مثال، سرویسی به نام Memory Usage از تنظیمات الگوی سرویس عمومی برای میزبانی که تحت عنوان winserver توضیح داده شده است، استفاده می کند. به عنوان یک دستور، سرویس check_nt را با گزینه های خط فرمان memuse و -w 80 -c 90 اجرا می کند (گزینه دوم مشخص می کند که کدام مقدار بازگشتی حافظه استفاده شده باید بحرانی در نظر گرفته شود - 90٪ و کدام باید روی هشدار تنظیم شود - از 80 تا 90%؛ پارامترهای خود از طریق نماد "!" فهرست می شوند.

معمولاً از همین دستور می توان برای کنترل دستگاه های هم نوع استفاده کرد. در این مورد، در توضیحات سرویس، کافی است تمام این دستگاه ها را که با کاما از هم جدا شده اند فهرست کنید:

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

شرح سیستم های کنترل شده در Nagios

برای راحتی، انواع مختلف سیستم های کنترل شده معمولا در فایل های پیکربندی مختلف توضیح داده می شوند. لیست فایل‌های پیکربندی معمولی مورد استفاده در usr/local/nagios/etc/nagios.cfg آورده شده است و برخی از فایل‌ها نیز توضیح داده شده‌اند. بنابراین، اگر نیاز به کنترل سوئیچ‌ها در شبکه دارید، خط #cfg_file=/usr/local/nagios/etc/objects/switch.cfg و غیره را از حالت کامنت بردارید.

توضیحات خود میزبان (در فایل windows.cfg، یا switch.cfg، یا printer.cfg و غیره موجود خواهد بود) در این مورد می‌تواند حداقل به این صورت باشد:

دو پارامتر وجود دارد که می تواند در توضیحات میزبان گنجانده شود که اقداماتی را که باید در صورت خرابی سیستم انجام شود تعیین می کند:

Nagios دستور check-host-alive را اجرا می کند و به محض اینکه تغییری در وضعیت هاست شناسایی شود، برنامه راه اندازی مجدد سرور اجرا می شود. به این ترتیب، می توانید به عنوان مثال، سرویس های متوقف شده را در سرورهای نظارت شده، سیستم های راه اندازی مجدد و غیره راه اندازی کنید.

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

همانطور که برای سرویس ها، برای هاست ها، می توانید وابستگی های برخی از سیستم ها را به سایرین شرح دهید.

شرح پارامترهای زمانی

پارامترهای زمان در پیکربندی‌های مختلفی استفاده می‌شوند: در توصیف میزبان‌ها (دوره زمانی که نیاز به نظارت دارید و دوره زمانی که نیاز به ارسال پیام دارید)، سرویس‌ها و مخاطبین (دوره‌هایی که می‌توانید پیام‌ها را توسط میزبان و سرویس ارسال کنید). نحو برای تعریف یک دوره جدید به راحتی از مثال های موجود در فایل /usr/local/nagios/etc/objects/timeperiods.cfg قابل درک است.

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

با استفاده از دستورات کنترل داخلی Nagios

با نصب استاندارد Nagios و پلاگین ها، حاوی تعدادی دستور (پلاگین) است که می توان از آنها برای کنترل سیستم ها استفاده کرد. فهرستی از آنها در جدول آورده شده است. 7.2.

جدول 7.2.
لیست پلاگین های Nagios

سودمند

هدف

کنترل به روز رسانی سیستم های لینوکس با استفاده از دستورات apt-get. به شما این امکان را می دهد که در صورت پیکربندی مطابق با آن، فرآیند به روز رسانی را شروع کنید

کنترل قدرت سیگنال Wi-Fi Breezecom

این افزونه به شما اجازه می دهد تا با استفاده از پروتکل SSH دستورات را بر روی یک سیستم راه دور اجرا کنید

بررسی اتصال CLAMD (برنامه آنتی ویروس) با یک میزبان راه دور

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

بررسی در دسترس بودن سرورهای DHCP در شبکه

بررسی سرویس DNS روی هاست (با استفاده از دستور dig)

بررسی میزان استفاده از فضای دیسک (دیسک های بومی و نصب شده)

بررسی حجم استفاده از درایوهای متصل شده از طریق پروتکل SMB (معمولاً این ها درایوهای سیستم های ویندوز هستند)

بررسی عملکرد سرور DNS با استفاده از nslookup

افزونه تنظیم: به سادگی پارامتر عددی و رشته ای را که در زمان اجرا توضیح داده شده است برمی گرداند

بررسی زمان ایجاد فایل ها

بررسی خدمات مدیر مجوز Flexlm

بررسی اتصال ftp به میزبان راه دور

بررسی وضعیت چاپگرهای Hewlett Packard با کارت JetDirect نصب شده (بررسی با استفاده از پروتکل SNMP انجام می شود)

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

بررسی هاست های راه دور از طریق پروتکل ICMP

بررسی وضعیت یک دیسک محلی (در سیستم لینوکس) با استفاده از فناوری S.M.A.R.T

check_ifoperstatus

بررسی وضعیت رابط شبکه در یک سیستم لینوکس معین

بررسی وضعیت یک رابط شبکه در یک سیستم لینوکس معین

بررسی عملکرد یک میزبان راه دور از طریق پروتکل IMAP. می توانید پاسخ سرور به رشته درخواست imap ارسال شده به آن را تجزیه و تحلیل کنید

بررسی پلاگین Nagios IRCD

آزمایش اتصال JABBER به یک میزبان راه دور

بررسی سرور LDAP (می توانید درخواستی برای جستجوی ویژگی مربوطه ارسال کنید)

همان بررسی سرور LDAP، فقط با استفاده از اتصالات امن (با استفاده از پروتکل SSL)

چک کردن بوت لینوکس

بررسی گزارش‌های سیستم لینوکس برای چند توالی از کاراکترها

بررسی تعداد پیام‌ها در صف سرور ایمیل (با نسخه‌های مختلف sendmail، qmail کار می‌کند)

متغیر داده شده را در گزارش MRTG (Multi Router Traffic Grapher) برای مقادیر حداقل/حداکثر بررسی می کند (check_mrtgtraf باید برای کنترل پارامترهای عملکرد استفاده شود)

مقادیر ترافیک خروجی و ورودی سوئیچ های ثبت شده در گزارش MRTG را بررسی می کند. به نصب اولیه بسته MRTG نیاز دارد (http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html)

وضعیت فرآیند Nagios را در ماشین محلی بررسی می کند

بررسی اتصال NNTP به میزبان مشخص شده

همان، اما با استفاده از پروتکل NNTPS

پلاگین NRPE Nagios

این افزونه داده ها را از سرویس NSClient در سیستم های ویندوز جمع آوری می کند

بررسی سرور NTP پیشنهاد می شود به جای این افزونه از check_ntp_peer استفاده کنید

بررسی سرور NTP به شما امکان می دهد تا از جمله لرزش (جتر) سیگنال زمان را ارزیابی کنید

این افزونه تفاوت زمانی بین یک سرور محلی و یک سرور زمان راه دور مشخص شده را بررسی می کند

برای جمع آوری داده ها از سرورهای Novell استفاده می شود. نیاز به نصب بسته های اضافی دارد

اتصال به سرور اوراکل را بررسی می کند، به شما امکان می دهد اندازه پایگاه داده ها و در دسترس بودن فضای آزاد، وضعیت بافرهای کش و غیره را ارزیابی کنید.

وضعیت دیمون جمع آوری کننده Over-CR را در یک سیستم راه دور بررسی می کند (http://www.molitor.org/overcr)

اتصال به یک سیستم راه دور را با استفاده از بسته های پینگ آزمایش می کند

بررسی هاست های راه دور با استفاده از پروتکل POP. به شما امکان می دهد یک رشته پرس و جو را به سرور ایمیل ارسال کنید و پاسخ سرور را تجزیه کنید

وضعیت فرآیندهای سیستم لینوکس را بررسی می کند

وضعیت سرویس واقعی (اتصالات RTCP) را بررسی می کند

وضعیت یک سرویس RPC را در میزبان مشخص شده بررسی می کند

وضعیت سنسورهای سخت افزاری را در یک سیستم لینوکس بررسی می کند. اطلاعات حسگرها با استفاده از بسته lm_sensors به ​​دست می آید

اتصال کانال ایمن IMAP به سرور را تأیید می کند. زمان و محتوای کنترل شده پاسخ (با تجزیه و تحلیل پاسخ به یک درخواست داده شده)، اعتبار گواهی ها

اتصال SMTP به سرور را بررسی می کند. پاسخ سرور ایمیل را می توان برای رشته های داده شده تجزیه کرد. زمان پاسخگویی نیز کنترل می شود

اسکن سیستم های راه دور (و دریافت داده از آنها) از طریق SNMP

اتصال POP را از طریق یک کانال امن به سرور تأیید می کند. زمان و محتوای کنترل شده پاسخ (با تجزیه و تحلیل پاسخ به یک درخواست داده شده)، اعتبار گواهی ها

بررسی اتصال به سرور SSH

اتصال SMTP را از طریق یک کانال امن به سرور بررسی می کند. پاسخ سرور ایمیل را می توان برای رشته های داده شده تجزیه کرد. زمان پاسخگویی نیز کنترل می شود

فضای خالی در فایل swap سیستم محلی را بررسی می کند

بررسی اتصال TCP به سیستم مشخص شده. وجود یک پاسخ، زمان آن، وجود رشته های مشخص شده در پاسخ و ... بررسی می شود.

بررسی زمان در هاست مشخص شده

بررسی اتصال UDP به سیستم مشخص شده. وجود یک پاسخ، زمان آن، وجود رشته های مشخص شده در پاسخ و ... بررسی می شود.

بررسی وضعیت منابع تغذیه بدون وقفه در یک سیستم لینوکس محلی یا راه دور. این افزونه برای نصب به UPSD Daemon (http://www.networkupstools.org) روی سیستم نیاز دارد.

بررسی تعداد کاربرانی که به صورت محلی وارد شده اند

بررسی سطح سیگنال WI-FI

هر یک از این افزونه ها حاوی اطلاعات کمکی است که ویژگی های استفاده از آن را توضیح می دهد (نمایش راهنما در دستور<плагин>-h).

به منظور استفاده از افزونه برای نظارت بر سیستم، Nagios باید دستوری را که از آن استفاده می کند، توضیح دهد. فایل commands.cfg حاوی برخی از نمونه های رایج کنترل سیستم است. در استفاده عملی از Nagios، این فایل باید با دستورات کنترلی خودتان گسترش یابد.

نظارت بر سرورهای ویندوز در Nagios

چندین عامل مختلف برای نظارت بر سیستم های مبتنی بر ویندوز توسعه یافته اند. رایج ترین آنها NSClient++، NC_NET (http://sourceforge.net/projects/nc-net) و OpMonAgent (http://www.opmon.org/project/opmonagent.zip) هستند. عملکرد این عوامل تقریباً یکسان است، بنابراین استفاده از عامل NSClient++ را در نظر خواهیم گرفت که به نظر نویسنده، محبوب ترین عامل از لیست ذکر شده است.

عامل NSClient++ از http://trac.nakednuns.org/nscp/ در دسترس است. این برنامه هم به صورت آرشیو (زیپ) و هم به صورت فایل نصبی (msi) قابل دانلود است و برای پلتفرم های 32 بیتی و 64 بیتی باید از نسخه های مختلف Agent استفاده کنید. اگر بایگانی را دانلود کردید، باید آن را در پوشه مورد نظر از حالت فشرده خارج کنید و با دستور سرویس ویندوز را نصب کنید.

NSClient++ -install

استفاده از فایل msi راحت تر است، زیرا در این مورد جادوگر نصب بلافاصله برخی از تنظیمات را بر اساس نتایج پاسخ های شما به پیکربندی عامل اضافه می کند (شکل 7.15).

برنج. 7.15.
پیکربندی تنظیمات برنامه NSClient++.
تنظیمات کاربر وارد شده در مرحله نصب توسط برنامه در فایل پیکربندی ذخیره می شود

پس از نصب، باید به سرویس اجازه دهید تا با دسکتاپ تعامل داشته باشد، که برای آن باید ویژگی های سرویس را باز کنید ( کنترل پنل | اداره | خدمات| سرویس NSClientpp... را پیدا کنید (نام کامل به نسخه بستگی دارد) و ویژگی های آن را باز کنید) و گزینه را فعال کنید. اجازه تعامل دسکتاپ.

قبل از شروع سرویس، لزوماتنظیمات آن را بررسی کنید برای انجام این کار، فایل nsc.ini را باز کنید (در پوشه نصب عامل) و خطوطی را که مربوط به ماژول های برنامه هستند که قرار است برای نظارت بر سیستم استفاده شوند، از کامنت بردارید. توضیحات کافی از پارامترهای پیکربندی در مستندات افزونه در http://trac ارائه شده است. nakednuns.org/nscp/wiki/doc/Configuration.

هنگام تنظیم یک پیکربندی، باید از این اصل پیروی کنید که نباید گزینه‌های بیشتری از آنچه در حال حاضر لازم است اضافه کنید. به عنوان مثال، اگر قصد دریافت اطلاعات از طریق پرس و جوهای WMI را ندارید، نباید ماژول CheckWMI.dll را بارگیری کنید.

به قابلیت اجرای عامل در حالت تشخیصی توجه کنید. در این مورد، هم می توانید خطاهای احتمالی را در فایل پیکربندی ببینید و هم کوئری های خود را اشکال زدایی کنید (شکل 7.16).

برنج. 7.16.
پنجره برنامه NSClient++ در حالت تشخیصی

برای اجرای NSClient++ در حالت تشخیصی، فقط تایپ کنید

NSClient++ /test

در پنجره NSClient++ می توانید اولاً نتایج بارگذاری همه ماژول ها را مشاهده کنید و ثانیاً دستورات خود را وارد کرده و نتیجه هر دو درخواست از سرور Nagios و دستورات محلی را مشاهده کنید. روی انجیر 7.16 پنجره اشکال زدایی افزونه را نشان می دهد که در آن دستور CheckDriveSize ShowAll MinWarnFree=20% MinCritFree=10% Drive=D:\ وارد شده و پاسخ سیستم قابل مشاهده است.

افزونه NSClient++ به شما اجازه می دهد تا پارامترهای نشان داده شده در جدول را کنترل کنید. 7.3. جزئیات استفاده در مستندات فنی به تفصیل آمده است (http://trac.nakednuns.org/nscp/wiki/CheckCommands) و نوشتن دستورات نظارت بر سلامت ویندوز خود از نمونه های موجود آسان است.

جدول 7.3.
تنظیمات ویندوز توسط NSClient++ کنترل می شود

پارامتر

شرح

اندازه یک فایل یا پوشه را کنترل می کند

میزان فضای خالی یا استفاده شده روی هارد دیسک یا درایوهای قابل جابجایی را کنترل می کند (نوع درایو را می توان در دستور انتخاب کرد)

فایل ها را بر اساس تاریخ ایجاد، آخرین زمان دسترسی، نوشتن فایل یا اندازه فایل کنترل می کند

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

استفاده از CPU را برای یک دوره زمانی قابل تنظیم نظارت می کند

زمان کارکرد سیستم را کنترل می کند

CheckServiceState

وضعیت سرویس ویندوز را نظارت می کند (اگر وضعیت واقعی سرویس با آنچه به عنوان پارامتر در دستور مشخص شده مطابقت نداشته باشد، یک پیام مهم ایجاد می شود). با تعیین یک استثنا می توانید همه سرویس ها را به طور همزمان نظارت کنید. به عنوان نام سرویس، باید سرویسی را که در ویژگی های سرویس نمایش داده می شود، مشخص کنید

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

وضعیت حافظه مجازی و فیزیکی را نظارت می کند. پارامتر تعداد صفحات حافظه نوشته شده موجود است (صفحات متعهد)

مقادیر شمارنده عملکرد را کنترل می کند. اشیاء شمارنده مطلوب هستند - برای سهولت استفاده - در توضیحات دستورات (سرویس ها) تنظیم شوند.

گزینه AlwaysOK را بررسی کنید
بررسی همیشه بحرانی
بررسی همیشه هشدار
CheckMultiple
بررسی کنید
بررسی بحرانی
بررسی هشدار
CheckVersion

به اصطلاح یاوران. آنها یک مقدار از پیش تعیین شده را برمی گردانند (که می توان با نام دستور قضاوت کرد). در فرآیند راه اندازی و اشکال زدایی سیستم استفاده می شود

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

نظارت بر سیستم ویندوز را می توان با استفاده از پروتکل های مختلف انجام داد. رایج ترین پروتکل های مورد استفاده NSClient و NRPE هستند (برای نظارت "غیرفعال" می توانید از پروتکل NSCA نیز استفاده کنید که می توانید اطلاعات بیشتری در مورد آن در مستندات آنلاین بخوانید). در عمل، می توانید از هر یک از آنها استفاده کنید، فقط باید ماژول های مربوطه را در فایل تنظیمات مشتری (nsc.ini) فعال / غیرفعال کنید. در عین حال، به نظر نویسنده، پروتکل NRPE در استفاده تا حدودی انعطاف پذیرتر است و رمزگذاری تبادل داده را فراهم می کند. هنگام استفاده از پروتکل NRPE، دستور دستور به صورت زیر ساخته می شود:

check_nrpe ... -c<команда>-آ<аргументы>

به عنوان مثال، بررسی حافظه فیزیکی موجود می تواند به صورت زیر انجام شود:

check_nrpe -H 192.168.0.9 -c CheckMem -a MaxWarn=70% MaxCrit=>80% type=physical

مانیتورینگ سیستم های ویندوز مبتنی بر WMI

NSClient++ شامل ماژول CheckWMI.dll است که به شما امکان می دهد یک سیستم ویندوز را با استفاده از جعبه ابزار WMI کنترل کنید.

ماژول CheckWMI در واقع از دو زیر ماژول تشکیل شده است: CheckWMIValue و CheckWMI. ماژول CheckWMIValue برای کنترل مقادیر عددی بهینه شده است. به عنوان مثال، بار فعلی پردازنده (این تعداد درصد بار است) یا وضوح مانیتور (تعداد پیکسل ها) و غیره. در این دستور می توانید به سادگی پارامترهایی را که باید کنترل شوند و مقادیر حداقل/حداکثر را مشخص کنید. برای آنها مجاز است، به عنوان مثال، مانند این:

CheckWMIValue "(!LANG:Query=PelsWidth را از win32_DisplayConfiguration انتخاب کنید" !}
MinCrit=640 MinWarn=800 بررسی:Width=PelsWidth

دستور نشان داده شده در اینجا برای استفاده در حالت اشکال زدایی (nsclient++ /test) نوشته شده است. رزولوشن نمایشگر افقی را پرس و جو می کند و در صورت مساوی یا کمتر از 640 شرایط بحرانی را گزارش می دهد و اگر مقدار از 800 بیشتر نشود، اخطار می دهد. از ویژگی های استفاده از این دستور، توجه می کنیم که پس از رشته query (که در گیومه ها محصور شده است) شما باید پارامترهای مقادیر حداقل / حداکثر را بنویسید و تنها پس از آن نام پارامتری را که توسط دستور (PelsWidth) کنترل می شود را مشخص کنید. اجازه دهید گزینه Check مورد استفاده در خط فرمان را نیز توضیح دهیم. پس از بررسی، باید نام پارامتری که در سیستم کنترل استفاده می شود را وارد کنید (همچنین می توانید نام را از توضیحات در WMI ذخیره کنید، اما اغلب راحت تر است که نام خود را وارد کنید) و نام مربوط به شی کلاس (شئی که برای مثال در مرورگر شیء بیننده WMI نمایش داده می شود).

نمونه‌های دیگر (از جمله گزینه‌های پیکربندی Nagios) در http://trac.nakednuns.org/nscp/wiki/CheckWMIValue موجود است.

ماژول CheckWMI باید زمانی استفاده شود که یا تجزیه پارامتر رشته ای که از پرس و جوی WMI برگردانده شده است یا درخواست چندین مقدار مورد انتظار است. هنگام استفاده از CheckWMI، رشته های پرس و جو به دلیل نیاز به فیلترها تا حدودی پیچیده تر می شوند. نحو CheckWMI در http://nsclient.org/nscp/wiki/CheckWMI/ CheckWMI توضیح داده شده است. پرس‌وجوهای CheckWMI با ساختارشان شبیه فیلترهایی هستند که برای تجزیه و تحلیل گزارش‌های عملیات سیستم استفاده می‌شوند.

نظارت بر سرورهای لینوکس در Nagios

سرورهای لینوکس با استفاده از پلاگین NRPE نظارت می شوند که باید به عنوان یک افزونه بر روی سرور Nagios و به عنوان یک شبح در سیستم نظارت شده لینوکس نصب شود. برای نصب هم می توان از نسخه آماده شده و هم از سورس کدهای افزونه استفاده کرد.

علاوه بر مجموعه استاندارد، مدیر می تواند هنگام نظارت از هر یک از افزونه های موجود که به طور گسترده در اینترنت ارائه شده است استفاده کند.

با استفاده از پروتکل NRPE، می توانید دستور check_nrpe را در یک میزبان نظارت شده برای بررسی هاست دیگر فراخوانی کنید. به این ترتیب می توانید زیر شبکه خاصی را از طریق یک کامپیوتر کنترل کنید. با این سازماندهی کنترل، هم شبح پروتکل NRPE و هم پلاگین باید روی میزبانی که به عنوان پروکسی استفاده می شود نصب شوند.

نظارت بر سیستم با استفاده از پروتکل SNMP

برای کار از طریق پروتکل SNMP، باید افزونه مناسب در Nagios نصب شود. با افزونه های Nagios همراه است، اما تنها در صورتی می توان از آن استفاده کرد که بسته net-snmp ابتدا نصب شده باشد. بنابراین، اگر قصد استفاده از ماژول SNMP را دارید، این بسته باید از سرور http://net-snmp.sourceforge.net/ دانلود شود، سپس افزونه ها باید دوباره کامپایل و نصب شوند. نویسنده توصیه می کند که در نصب جدید، ابتدا دستور make clean را اجرا کنید که تنظیمات نصب قبلی را پاک می کند.

    توجه داشته باشید

    در سایت http://net-snmp.sourceforge.net/ بسته مورد نیاز فقط در کدهای منبع یا با فرمت RPM ارائه می شود.

پس از پیکربندی قابلیت مانیتورینگ SNMP، باید 1 عملکرد را روی ساده ترین پرس و جوها آزمایش کنید. به عنوان مثال، مدت زمان دستگاه را بررسی کنید:

/usr/local/nagios/libexec/check_snmp -H<адрес_устройства>-C -o
sysUpTime. 0

در پاسخ، شما باید چیزی شبیه به این دریافت کنید:

SNMP OK - Timeticks: (622339555) 72 روز، 0:43:15.55 |

دستور check_snmp می تواند پارامتری را بخواهد که یک مقدار عددی می گیرد و بررسی کند که آیا مقدار آن در محدوده خاصی است یا خیر. بنابراین، می‌توانید مقادیری را برای وضعیت هشدار و بحرانی (سوئیچ‌های -w و -c) یا محدوده‌ای از مقادیر (که با یک دو نقطه از هم جدا شده‌اند) مشخص کنید. لطفاً توجه داشته باشید که اگر می‌خواهید، برای مثال، عدد برگشتی در محدوده a تا b (b > a) به عنوان یک مقدار بحرانی تفسیر شود، محدوده باید b: a مشخص شود. اگر محدوده ای را به شکل "معمول" مانند a:b مشخص کنید، اگر مقدار برگشتی در این محدوده قرار گیرد، نتیجه یک حالت عادی در نظر گرفته می شود و اگر اینطور نباشد، به عنوان یک هشدار یا بحرانی ( بسته به کلید مورد استفاده). علاوه بر این، دستور می‌تواند مقدار رشته برگشتی را بررسی کند (مقداری که پاسخ با آن بررسی می‌شود باید در سوئیچ -s مشخص شود) یا حتی با استفاده از عبارات منظم (سوئیچ‌های -r، -R) را بررسی کند. همچنین می توانید چندین پارامتر را در یک درخواست به طور همزمان بررسی کنید و OID های آنها را با کاما از هم جدا کنید، مانند این:

پس از کامپایل و رفع اشکال درخواست، کافی است دستور جدید را در فایل commands.cfg شرح داده و سرویس های لازم را به فایل های توضیحات دستگاه های کنترل شده اضافه کنید.

در وب، می‌توانید نمونه‌های کافی از پیکربندی Nagios برای کنترل دستگاه‌ها با استفاده از پروتکل SNMP را پیدا کنید که می‌توان آن‌ها را عملی کرد. به عنوان مثال، http://wiki.nagios.org/index.php/Howtos:snmp-apc-smart-ups حاوی توضیحاتی در مورد تنظیماتی است که با آن می توانید وضعیت منابع تغذیه اضطراری از APC (وضعیت باتری، ولتاژ) را کنترل کنید. پارامترها، دما و غیره).

مانیتورینگ تجهیزات سوئیچینگ

تجهیزات شبکه فعال - سوئیچ ها، هاب ها، مودم ها و غیره از طریق پروتکل SNMP (مدل های مدیریت شده) کنترل می شوند. می توانید وضعیت پورت های تجهیزات را دریافت کنید، در صورت بروز تعداد معینی خطای انتقال بسته در پورت ها، اخطار صادر کنید، دمای دستگاه و تعداد جلسات VPN را نظارت کنید. فقط باید شناسه های مناسب را طبق توضیحات برای نظارت از طریق پروتکل SNMP انتخاب کنید. در بیشتر موارد، این برای کنترل کافی است.

با این حال، علاوه بر پارامترهای مشخص شده، مدیران اغلب می خواهند بار واقعی روی تجهیزات، درصد پهنای باند استفاده شده را بدانند. این مقادیر را نمی توان با پرس و جو از یک یا آن پارامتر وضعیت سخت افزار به دست آورد. آنها بر اساس تجزیه و تحلیل داده های دریافتی دوره ای محاسبه می شوند. یکی از محبوب ترین برنامه ها، MRTG، به ویژه برای چنین نظارتی ایجاد شد. قابلیت پردازش پارامتر سوئیچ آن توسط Nagios استفاده می شود.

برنامه MRTG با استفاده از پروتکل SNMP آماری را از تجهیزات فعال جمع آوری می کند که با استفاده از افزونه check_mrtgtraf، متعاقباً برای نمایش به Nagios منتقل می شود.

پس از نصب برنامه MRTG، باید فایل های تنظیماتی ایجاد کنید که در آن دستگاه ها و مقادیر پارامترهایی را که برنامه جمع آوری می کند، مشخص کنید. این تنظیمات باید در فایل /etc/mrtg.conf داده شوند. تشکیل پیکربندی MRTG یک کار نسبتاً پیچیده است، بنابراین این بسته برنامه خاصی را ارائه می دهد که به طور خودکار دستگاه را نظرسنجی می کند و یک فایل پیکربندی - cfgmaker را تولید می کند. هنگامی که آن را اجرا می کنید، باید رشته جامعه و آدرس دستگاه را به عنوان پارامتر مشخص کنید. خروجی برنامه باید به یک فایل هدایت شود، مقادیری که از آن به سادگی وارد فایل تنظیمات می شویم. استفاده از نام (یا آدرس) دستگاه نظرسنجی به عنوان نام چنین فایلی راحت است:

cfgmaker [ایمیل محافظت شده]آدرس > /etc/mrtg/address.cfg

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

پس از ویرایش فایل تنظیمات، می توانید برنامه mrtg را اجرا کنید و تنظیمات دستگاه را به عنوان پارامتر مشخص کنید. برای سیستم هایی با رمزگذاری UTF-8، دستور run به شکل زیر خواهد بود:

env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

هنگام نصب پکیج MRTG، سیستم به گونه ای پیکربندی شده است که هر پنج دقیقه یک بار به طور خودکار اطلاعات را از سوییچ ها جمع آوری کند. در صورت تمایل می توان این مدت را با ویرایش فایل /etc/cron.d/mrtg بر این اساس افزایش داد.

با باز کردن پوشه http://nagiosserver/mrtg/ در مرورگر و انتخاب فایل مناسب، می‌توانید نمودارهای عملکرد برای پورت‌های دستگاه جداگانه را مشاهده کنید. در صورت تمایل، می توانید یک فایل فهرست مشترک برای ساده کردن نمایش ایجاد کنید. این کار با استفاده از دستور indexmaker انجام می شود. پس از فراخوانی indexmaker -h می توان کلیدهای لازم برای تولید فایل را از طریق اطلاعات راهنما مشخص کرد.

تا زمانی که تنظیماتی که در بالا توضیح داده شد، می توانید از دستورات Nagios check_mrtg و check_mrtgtraf برای جمع آوری داده های عملکرد استفاده کنید. دستور check_mrtgtraf به پارامترهای زیر نیاز دارد:

check_mrtgtraf -F -a -w ورودی، خروجی -c ورودی، خروجی -e expiration_period

در این مثال، پارامتر -a مشخص می کند که آیا حداکثر مقدار (max) برای دوره تجزیه و تحلیل در نظر گرفته می شود یا برنامه مقدار متوسط ​​(avg) را ارزیابی می کند. بعد از کلیدهای w و c، جفت محدودیت برای ترافیک خروجی و ورودی در این پورت نشان داده شده است. این که سیستم روی کدام پورت داده ها را نظارت خواهد کرد، توسط فایل گزارش انتخاب شده تعیین می شود. روی انجیر 7.17 نمونه ای از نمودار تولید شده توسط بسته mrtg را نشان می دهد.

برنج. 7.17.
زمانبندی بارگذاری پورت را تغییر دهید

با استفاده از برنامه های نظارتی خودتان

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

جدول 7.4.
کدهای بازگشت مانیتور سیستم Nagios

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

توطئه در Nagios

دستورات Nagios که سیستم‌ها را نظارت می‌کنند نه تنها وضعیت (خوب یا بد)، بلکه داده‌های مربوط به پارامترهای خاص (به عنوان مثال، درصد استفاده از دیسک یا تعداد کاربرانی که به سیستم وارد شده‌اند) را نیز برمی‌گردانند. این داده‌ها به‌طور پیش‌فرض ذخیره نمی‌شوند، اما می‌توانند برای مثال برای رسم نمودار برای سرویس‌های مربوطه استفاده شوند.

برای پیاده سازی این قابلیت باید افزونه دیگری را نصب کنید. یکی از محبوب ترین افزونه ها برای ایجاد نمودار در Nagios بسته nagiosgraph است که برای دانلود از http://sourceforge.net/projects/nagiosgraph/ در دسترس است.

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

برنج. 7.18.
مثال صفحه نمودار پویا

راه اندازی رابط Nagios

افزونه های زیادی برای Nagios ایجاد شده است که به شما امکان می دهد نمایش داده های نظارت را مطابق با نیازهای مدیر شخصی سازی کنید. به عنوان مثال، به جای یک نمای کلی تاکتیکی (شکل 7.19)، می توانید از نقشه های شبکه قابل تنظیم استفاده کنید، که Nagios وضعیت هر دستگاه را روی آن نمایش می دهد.

برنج. 7.19.
روش پیش فرض برای نمایش وضعیت خلاصه سیستم در Nagios

روی انجیر شکل 7.20 (به عنوان مثال از سایت http://www.nagvis.org) یک نسخه واقعی از نقشه مانیتورینگ ساخته شده با استفاده از بسته NagVis را نشان می دهد.

برنج. 7.20.
نمایش وضعیت شبکه هنگام استفاده از بسته NagVis

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

1 نمونه‌ها از نسخه 1 SNMP استفاده می‌کنند. محیط‌های دنیای واقعی معمولاً از نسخه 3 استفاده می‌کنند، بنابراین نمونه‌ها باید با پارامترهای احراز هویت تکمیل شوند.

ناگیوس (Nagios Ain "t Gonna Insist on Sainthood)- یک برنامه منبع باز طراحی شده برای نظارت بر سیستم ها و شبکه های کامپیوتری. نظارت را انجام می دهد، وضعیت گره ها و سرویس ها را نظارت می کند و در صورت توقف (یا از سرگیری) کار هر یک از سرویس ها به مدیر هشدار می دهد.

در مقاله امروز، نحوه نصب را به شما نشان خواهیم داد Nagios 4.1بر روی اوبونتو 15.04.

با رفتن به بخش می توانید تست کنید و ببینید که Nagios و سایر برنامه ها / خدمات / PBX چگونه هستند.

آموزش

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

sudo apt-get install build-essential libgd2-xpm-dev apache2-utils unzip

یک کاربر و گروه Nagios ایجاد کنید

یک حساب کاربری جدید ایجاد کنید nagiosو گروه nagcmd:

Sudo useradd -m nagios
sudo passwd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd www-data

Nagios و افزونه های آن را دانلود کنید

در وب سایت رسمی، آخرین نسخه به عنوان فهرست شده است نامزد انتشار 4.1.0 2، و دانلود کنید.

cd /usr/src
sudo wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.0rc2.tar.gz

دانلود افزونه ها

Sudo wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

نصب Nagios

به پوشه ای که Nagios و پلاگین ها را دانلود کرده ایم بروید و با استفاده از دستور از حالت فشرده خارج کنید:

سودو تار xzf nagios-4.1.0rc2.tar.gz

سی دی nagios-4.1.0rc2/

دستورات زیر را برای کامپایل و نصب اجرا کنید ناگیوس:

Sudo ./configure --with-command-group=nagcmd
sudo را همه
sudo make install
sudo make install-init
sudo make install-config
sudo make install-commandmode

نصب رابط وب ناگیوس:

sudo make install-webconf

اگر در مراحل نصب با خطای زیر مواجه شدید:

/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
/usr/bin/install: نمی تواند فایل معمولی ایجاد کند '/etc/httpd/conf.d/nagios.conf': چنین فایل یا دایرکتوری وجود ندارد
Makefile:296: دستور العمل برای هدف "install-webconf" ناموفق بود
ساخت: *** خطای 1

Nagios سعی می کند فایل nagios.conf را در داخل ایجاد کند /etc/httpd.conf/directory، اما در سیستم ها اوبونتوفایل های nagios.conf باید در آن قرار گیرند /etc/apache2/sites-enabled/directory. سپس به جای دستور از دستور دیگری استفاده می کنیم sudo make install-webconf

sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-enabled/nagios.conf

بیایید یک حساب کاربری ایجاد کنیم Nagiosadminبرای ورود به رابط وب ناگیوس. حتما رمز عبوری را که تعیین کرده اید به خاطر بسپارید، هنگام ورود به رابط وب به آن نیاز خواهید داشت.

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Apache را مجدداً راه اندازی کنید تا تنظیمات جدید اعمال شوند:

sudo systemctl راه اندازی مجدد apache2

به پوشه ای که افزونه ها را دانلود کرده ایم برمی گردیم و افزونه ها را از حالت فشرده خارج می کنیم:

cd /usr/src
tar xzf nagios-plugins-2.0.3.tar.gz

به دایرکتوری unzip شده بروید:

سی دی nagios-plugins-2.0.3/

دستورات زیر را برای کامپایل و نصب افزونه ها اجرا کنید:

Sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios
سودو ساخت
sudo make install

راه اندازی Nagios

چک کردن nagios.confبرای خطاها:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

اگر خطایی وجود ندارد، اجرا کنید ناگیوسو آن را به autorun اضافه کنید:

سرویس سودو nagios شروع می شود
sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

اگر در راه اندازی ناگیوسشما خطای زیر را مشاهده کردید:

شروع نشد nagios.service: واحد nagios.service بارگیری نشد: چنین فایل یا دایرکتوری وجود ندارد.

[....] شروع nagios (از طریق systemctl): nagios.service شروع نشد nagios.service: واحد nagios.service بارگیری نشد: چنین فایل یا دایرکتوری وجود ندارد. شکست خورد!

برای رفع آن باید کپی کنید /etc/init.d/skeletonکه در /etc/init.d/nagios

sudo cp /etc/init.d/skeleton /etc/init.d/nagios

ویرایش کنید /etc/init.d/nagios:

sudo nano /etc/init.d/nagios

با اضافه کردن موارد زیر در پایان:

DESC="Nagios"
NAME=ناگیوس
DAEMON=/usr/local/nagios/bin/$NAME
DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE=/usr/local/nagios/var/$NAME.lock

ذخیره می کنیم و خارج می شویم.

آخرین لمس - ما حقوق اجرا را می دهیم:

sudo chmod +x /etc/init.d/nagios

و اجرا ناگیوس:

sudo /etc/init.d/nagios start

اکنون در مرورگر وارد کنید http://nagios-server-ip/nagios، در قسمت نام کاربری وارد کنید nagiosadminو رمز عبوری که در طول مراحل نصب تعیین کردیم.



روی "Host" در سمت چپ کنسول کلیک کنید. خواهید دید که Nagios در حال حاضر هیچ میزبان دیگری غیر از خودش را نظارت نمی کند.



این نصب ما را کامل می کند. به دنبال دستورالعمل ها، Nagios 4.1 را در اوبونتو 15.04 نصب کردیم

قبل از پیکربندی nagios، باید وابستگی های لازم را نصب کنید

# apt install build-essential apache2 php libapache2-mod-php7.0 php-gd libgd-dev mailutils

و یک کاربر و گروه اضافه کنید که nagios از طرف آنها اجرا می شود

# useradd nagios # groupadd nagcmd # usermod -a -G nagcmd nagios # usermod -a -G nagcmd www-data

به دایرکتوری ساخت بروید و کد منبع nagios و افزونه ها را دانلود کنید

# cd /usr/src/ # wget https://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.2.3/nagios-4.2.3.tar.gz # wget https:// nagios-plugins.org/download/nagios-plugins-2.1.4.tar.gz

آرشیوهای دانلود شده را از حالت فشرده خارج کنید

# tar xzvf nagios-4.2.3.tar.gz # tar xzvf nagios-plugins-2.1.4.tar.gz

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

# cd nagios-4.2.3 # ./configure --prefix=/etc/nagios --with-command-group=nagcmd --with-httpd-conf=/etc/apache2/sites-available --with-mail= /usr/bin/mail

بیایید بسازیم

# همه را بسازید

nagios را نصب کنید

# را نصب کنید

یک اسکریپت init را در /etc/init.d نصب کنید و شروع خودکار را فعال کنید

# install-init # update-rc.d nagios را پیش فرض قرار دهید

مجوزهای دایرکتوری را برای ذخیره فایل های دسته ای خارجی تنظیم کنید

# make install-commandmode

فایل های پیکربندی nagios را نصب کنید

# install-config را انجام دهید

پیکربندی nagios را برای آپاچی تنظیم کنید

# را install-webconf کنید

اسکریپت های پردازش رویداد فایل های دسته ای خارجی را با nagios در پوشه کپی کنید و مالک را روی پوشه تنظیم کنید.

# cp -R contrib/eventhandlers/ /etc/nagios/libexec/ # chown -R nagios:nagios /etc/nagios/libexec/eventhandlers

بیایید پیکربندی نصب شده را بررسی کنیم

# /etc/nagios/bin/nagios -v /etc/nagios/etc/nagios.cfg

# ساختن # را نصب کن

پیکربندی nagios را در apache فعال کنید و افزونه های لازم را فعال کنید

# a2ensite nagios # a2enmod بازنویسی cgi

سرویس آپاچی را مجددا راه اندازی کنید

# سرویس apache2 راه اندازی مجدد

بیایید nagios را شروع کنیم و وضعیت را بررسی کنیم

شروع # سرویس nagios # وضعیت nagios سرویس ● nagios.service - Nagios Loaded: بارگیری شده (/etc/systemd/system/nagios.service؛ فعال؛ از پیش تعیین شده فروشنده: فعال) فعال: فعال (در حال اجرا)

یک مدیر nagios اضافه کنید

# htpasswd -c /etc/nagios/etc/htpasswd.users nagiosadmin

حالا بیایید به فایل های پیکربندی nagios بپردازیم.

/etc/nagios/etc/ cgi.cfg- تنظیمات رابط وب و همچنین حقوق دسترسی به کنسول وب nagios را تعریف می کند.

/etc/nagios/etc/ htpasswd.users- پایگاه داده کاربران و رمزهای عبور آنها برای دسترسی به رابط وب nagios.

/etc/nagios/etc/ nagios.cfg- شامل تنظیمات و مسیرهای اصلی فایل های *.cfg است.

/etc/nagios/etc/ منبع.cfg- یک متغیر در اینجا تا دایرکتوری با افزونه ها تعریف شده است.

/etc/nagios/etc/objects/ commands.cfg- شامل تعاریف دستورات است.

/etc/nagios/etc/objects/ contacts.cfg- مخاطبین ایمیلی را که اعلان‌های nagios به آن‌ها ارسال می‌شود، مشخص می‌کند.

/etc/nagios/etc/objects/ templates.cfg- حاوی الگوهایی برای مخاطبین، میزبان ها و خدمات است.

/etc/nagios/etc/objects/ timeperiods.cfg- شامل تعاریف دوره های زمانی است.

/etc/nagios/etc/objects/ localhost.cfg- پیکربندی برای نظارت بر خود سرور nagios. خود میزبان، گروه میزبان برای سرورهای لینوکس و خدمات مانیتورینگ را تعریف می کند.

/etc/nagios/etc/objects/ printer.cfg- پیکربندی برای نظارت بر چاپگر. این یک چاپگر دلخواه، یک گروه میزبان برای چاپگرها و خدمات نظارتی را تعریف می کند.

/etc/nagios/etc/objects/ switch.cfg- پیکربندی برای نظارت بر سوئیچ. این یک سوئیچ دلخواه، یک گروه میزبان برای سوئیچ ها و خدمات نظارتی را تعریف می کند.

/etc/nagios/etc/objects/ windows.cfg- پیکربندی برای نظارت بر میزبان دلخواه ویندوز. این یک میزبان ویندوز دلخواه، یک گروه میزبان برای سرورهای ویندوز و خدمات نظارتی را تعریف می کند.

توضیحات نشان می دهد که localhost.cfg، printer.cfg، switch.cfg و windows.cfg دارای تعاریف گروه میزبان هستند. برای راحتی، منطقی است که آنها را در یک فایل جداگانه /etc/nagios/etc/objects/ جدا کنید. hostgroups.cfg. بر این اساس، آنها باید در فایل اصلی توضیح داده شوند. توضیحات یک شی نباید در فایل های پیکربندی مختلف تکرار شود. ما همچنین فایل /etc/nagios/etc/objects/ را اضافه خواهیم کرد. servicegroups.cfg، که در آن گروه های خدماتی تعریف خواهند شد. از آنجایی که این نشریه در حال تنظیم مانیتورینگ برای هاست های لینوکس و ویندوز است، گروه هایی را برای آنها تعریف خواهیم کرد. برای چاپگرها و سوئیچ ها، گروه ها با قیاس تعریف می شوند. ما همچنین پوشه /etc/nagios/etc/servers/ را ایجاد می کنیم که فایل هایی را که هاست ها را برای نظارت تعریف می کنند ذخیره می کند. بیایید تغییرات مناسب را در فایل nagios.cfg ایجاد کنیم

# nano /etc/nagios/etc/nagios.cfg. . . # می توانید فایل های پیکربندی شی منفرد را مطابق شکل زیر مشخص کنید: cfg_file=/etc/nagios/etc/objects/commands.cfg cfg_file=/etc/nagios/etc/objects/contacts.cfg cfg_file=/etc/nagios/etc/objects /timeperiods.cfg cfg_file=/etc/nagios/etc/objects/templates.cfg # تعاریف میزبان گروه ها و سرویس گروه ها cfg_file=/etc/nagios/etc/objects/hostgroups.cfg cfg_file=/etc/nagios/etc/objects/servicegroups.cfg# تعاریف نظارت بر میزبان محلی (لینوکس) cfg_file=/etc/nagios/etc/objects/localhost.cfg # تعاریف نظارت بر ماشین ویندوز #cfg_file=/etc/nagios/etc/objects/windows.cfg # تعاریف نظارت یک روتر/سوئیچ #cfg_file=/etc/nagios/etc/objects/switch.cfg # تعاریف نظارت بر چاپگر شبکه #cfg_file=/etc/nagios/etc/objects/printer.cfg # همچنین می‌توانید به Nagios بگویید که همه را پردازش کند فایل های پیکربندی (با پسوند cfg #) در یک فهرست خاص با استفاده از دستور cfg_dir # مطابق شکل زیر: cfg_dir=/etc/nagios/etc/servers#cfg_dir=/etc/nagios/etc/printers #cfg_dir=/etc/nagios/etc/switches #cfg_dir=/etc/nagios/etc/routers . . .

فایل هایی را برای گروه هاست و سرویس ایجاد کنید و حقوق آنها را تنظیم کنید

# cd /etc/nagios/etc/objects/ # touch hostgroups.cfg servicegroups.cfg # chown nagios:nagios hostgroups.cfg servicegroups.cfg # chmod 664 hostgroups.cfg servicegroups.cfg

ایجاد دایرکتوری /etc/nagios/etc/ سرورها/ و حقوق آن را تعیین کنید

# mkdir /etc/nagios/etc/servers/ # chown nagios:nagios /etc/nagios/etc/servers/ # chmod 775 /etc/nagios/etc/servers/

تعاریف گروه های میزبان برای سرورهای لینوکس و ویندوز را به ترتیب از localhost.cfg و windows.cfg به hostgroups.cfg اضافه کنید.

# nano /etc/nagios/etc/objects/hostgroups.cfg # تعریف یک میزبان اختیاری برای ماشین‌های لینوکس # همه میزبان‌هایی که از الگوی سرور لینوکس استفاده می‌کنند، به طور خودکار عضوی از این گروه خواهند بود. از گروه میزبان مستعار Linux Servers ; نام طولانی گروه ) # تعریف یک میزبان برای ماشین های ویندوز # همه میزبان هایی که از الگوی سرور ویندوز استفاده می کنند به طور خودکار عضوی از این گروه خواهند بود. گروه میزبان مستعار سرورهای ویندوز؛ نام طولانی گروه)

از آنجایی که مسیر windows.cfg در nagios.cfg توضیح داده شده است، اظهار نظر در مورد تعریف گروه های میزبان در windows.cfg ضروری نیست، اما در localhost.cfg این یک اقدام اجباری است.

# nano /etc/nagios/etc/objects/localhost.cfg. . . # تعریف یک میزبان اختیاری برای ماشین‌های لینوکس #define hostgroup(# hostgroup_name linux-servers؛ نام گروه میزبان # مستعار سرورهای Linux؛ نام طولانی گروه # اعضای localhost؛ فهرست میزبان‌هایی که به این گروه تعلق دارند، با کاما جدا شده است. . .

هنگامی که یک شیء سرور ویندوز ایجاد می شود، به طور خودکار عضوی از گروه سرور ویندوز می شود. این عمل در فایل templates.cfg تعریف شده است. برای اینکه سرورهای لینوکس به طور خودکار در گروه سرورهای لینوکس قرار گیرند، باید تغییرات زیر را انجام دهید.

# nano /etc/nagios/etc/objects/templates.cfg. . . # قالب تعریف میزبان لینوکس - این یک میزبان واقعی نیست، فقط یک الگو است! تعریف میزبان( نام لینوکس سرور ؛ نام این قالب میزبان از generic-host استفاده می کند؛ این الگو مقادیر دیگری را از الگوی میزبان عمومی check_period 24x7 به ارث می برد؛ به طور پیش فرض، هاست های لینوکس به طور شبانه روز بررسی می شوند check_interval 5 ؛ بررسی فعال میزبان هر 5 دقیقه retry_interval 1 ؛ زمانبندی بررسی مجدد میزبان در فواصل زمانی 1 دقیقه max_check_attempts 10 ؛ هر میزبان لینوکس را 10 بار (حداکثر) بررسی کنید check_command check-host-alive ؛ فرمان پیش فرض برای بررسی میزبان های لینوکس notification_period workhours ; بالا، بنابراین ما فقط در طول روز اطلاع رسانی می کنیم؛ توجه داشته باشید که متغیر notification_period از رد می شود؛ مقداری که از الگوی میزبان عمومی به ارث رسیده است! notification_interval 120؛ ارسال مجدد اعلان ها هر 2 ساعت notification_options d,u,r برای مدیران ایالات میزبان خاص contact_groups ؛ اعلان ها به طور پیش فرض برای مدیران ارسال می شود سرورهای میزبان لینوکس ; گروه های میزبانی که سرورهای لینوکس باید عضو آن باشندثبت 0 ; این تعریف را ثبت نکنید - یک میزبان واقعی نیست، فقط یک الگو! ) . . .

برای تنظیم یک اعلان، باید ایمیل مدیر سیستم را در contacts.cfg مشخص کنید.

# nano /etc/nagios/etc/objects/contacts.cfg. . . تعریف مخاطب (contact_name nagiosadmin؛ نام کوتاه کاربر استفاده از generic-contact؛ ارث بردن مقادیر پیش‌فرض از الگوی generic-contact (تعریف شده در بالا) مستعار Nagios Admin؛ نام کامل ایمیل کاربر [ایمیل محافظت شده]سایت اینترنتی ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** } . . .

# سرویس nagios راه اندازی مجدد

می توانید عملکرد هشدارها را به روش زیر بررسی کنید، "Hosts" را در سمت چپ در رابط وب انتخاب کنید، سپس بر روی "localhost" کلیک کنید، بر روی "ارسال اعلان میزبان سفارشی" در منوی سمت راست کلیک کنید، هر چیزی را در آن بنویسید. خط "نظر" و روی "تعهد" کلیک کنید.

یک هشدار باید به ایمیل مشخص شده در contacts.cfg ارسال شود.


کمی در مورد افزونه ها

پوشه /etc/nagios/libexec شامل افزونه های نصب شده است. در ابتدای مقاله اشاره شد که nagios تمام اطلاعات را از طریق افزونه ها دریافت می کند. به عنوان مثال، بیایید به زمان آپتایم سیستم نگاه کنیم

# /etc/nagios/libexec/check_uptime زمان کار خوب: 0 روز (ها) 3 ساعت (ها) 52 دقیقه | uptime=232.000000;;;

اکثر افزونه ها فقط با آرگومان ها کار می کنند، به عنوان مثال، بیایید وضعیت فایل تعویض سیستم را ببینیم

# /etc/nagios/libexec/check_swap -w 20 -c 10 SWAP OK - 100% رایگان (2044 مگابایت از 2044 مگابایت) |swap=2044MB;0;0;0;2044

دو آرگومان وجود دارد -w 20 و -c 10.

w - هشدار، هنگامی که 20٪ از فضای خالی باقی می ماند، یک رویداد هشدار رخ می دهد.

ج - بحرانی، زمانی که 10 درصد فضای آزاد باقی بماند، رویداد بحرانی رخ خواهد داد.

پلاگین های محلی و "عمومی" نیز وجود دارد. نمونه های بالا محلی هستند. به عنوان مثال، افزونه check_swap نمی تواند وضعیت فایل صفحه بندی را در یک میزبان راه دور بررسی کند، اما افزونه check_ping می تواند در دسترس بودن هر دو میزبان محلی و راه دور را بررسی کند.

# /etc/nagios/libexec/check_ping -H localhost -w 100.0.20% -c 500.0.60% PING OK - از دست دادن بسته = 0٪، RTA = 0.04 ms|rta=0.036000ms;100.000000.000;500. % 0.273000ms;100.000000;500.000000;0.000000pl=0%;20;60;0


کمی در مورد NRPE

NRPE - Nagios Remote Plugin Executor. برای اینکه nagios اطلاعاتی از هاست های راه دور مانند استفاده از دیسک یا CPU دریافت کند، از پلاگین nrpe استفاده می شود. Nagios از طریق پلاگین nrpe به یک سرور nrpe که روی یک میزبان از راه دور لینوکس/یونیکس نصب شده است دسترسی پیدا می کند. سرور nrpe پلاگین های محلی را اجرا می کند و اطلاعات را به سرور nagios ارسال می کند. مهم!سرور nrpe و افزونه باید یک نسخه باشند، در غیر این صورت ممکن است خطاهایی رخ دهد.


نصب پلاگین NRPE

قبل از نصب افزونه nrpe، باید وابستگی را نصب کنید

# apt libssl-dev را نصب کنید

آخرین نسخه nrpe را می توانید از سایت nagios دانلود کنید. به دایرکتوری ساخت بروید، آخرین نسخه nrpe را دانلود و از حالت فشرده خارج کنید

# cd /usr/src/ # wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.1.tar.gz # tar xzvf 3.0.1.tar.gz

بیایید به پوشه با nrpe برویم و پیکربندی کنیم

بیایید افزونه nrpe را بسازیم و نصب کنیم

# make check_nrpe # make install-plugin

پشتیبانی nrpe را به /etc/nagios/etc/objects/commands.cfg اضافه کنید

# nano /etc/nagios/etc/objects/commands.cfg. . . # "check_nrpe" تعریف دستور دستور define ( command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ ) . . .

پس از تغییرات ایجاد شده، باید سرویس nagios را مجددا راه اندازی کنید

# سرویس nagios راه اندازی مجدد


نصب سرور NRPE

در هاست لینوکس که ما نظارت خواهیم کرد، باید سرور nrpe و افزونه ها را نصب کنیم.

وابستگی های لازم را نصب کنید

# apt install build-ssential libssl-dev

به build directory بروید، nrpe، افزونه ها را دانلود کنید و آنها را از حالت فشرده خارج کنید

# cd /usr/src/ # wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.1.tar.gz # wget https://nagios-plugins.org/download/nagios-plugins-2.1. 4.tar.gz # tar xzvf 3.0.1.tar.gz # tar xzvf nagios-plugins-2.1.4.tar.gz

بیایید به دایرکتوری با nrpe برویم و پیکربندی کنیم

# cd nrpe-3.0.1 # ./configure --prefix=/etc/nagios

بیایید بسازیم

#nrpe بسازید

کاربر و گروهی را اضافه کنید که سرور nrpe از طرف آنها اجرا می شود

# ساختن-گروه-کاربران

بیایید سرور و فایل پیکربندی را نصب کنیم

# make install-daemon # make install-config

اسکریپت شروع را نصب کنید

# make install-init # systemctl فعال /lib/systemd/system/nrpe.service

بیایید به دایرکتوری با کد منبع افزونه ها برویم و پیکربندی کنیم

# cd /usr/src/nagios-plugins-2.1.4/ # ./configure --prefix=/etc/nagios --with-nagios-user=nagios --with-nagios-group=nagios

پلاگین ها را بسازید و نصب کنید

# ساختن # را نصب کن

در /etc/nagios/etc/nrpe.cfg به سرور nagios اجازه می‌دهیم اطلاعات مربوط به سیستم را دریافت کند و همچنین نام واقعی پارتیشن دیسک مورد نظارت را در یک دستور از پیش تعریف شده مشخص کند.

نانو /etc/nagios/etc/nrpe.cfg. . . allow_hosts=127.0.0.1, 192.168.1.13. . . command=/etc/nagios/libexec/check_users -w 5 -c 10 command=/etc/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 command=/etc/nagios/libexec/check_disk -w 20% -c 10% -p /dev/ sda1 command=/etc/nagios/libexec/check_procs -w 5 -c 10 -s Z command=/etc/nagios/libexec/check_procs -w 150 -c 200 . . .

192.168.1.13 باید با آدرس سرور nagios شما جایگزین شود.
سرور nrpe را راه اندازی کنید و وضعیت آن را بررسی کنید

# service nrpe start # service nrpe status ● nrpe.service - Nagios Remote Program Executor Loaded: بارگیری شد (/lib/systemd/system/nrpe.service؛ فعال؛ از پیش تعیین شده فروشنده: فعال) فعال: فعال (در حال اجرا)


اضافه کردن هاست لینوکس به سیستم مانیتورینگ

برای این کار یک فایل linux-server.cfg در پوشه servers ایجاد می کنیم

# nano /etc/nagios/etc/servers/linux-serv.cfg تعریف میزبان (استفاده از سرور لینوکس میزبان_نام لینوکس سرویس با نام مستعار آدرس لینوکس سرویس 192.168.1.12 ) سرویس را تعریف کند (استفاده از سرویس عمومی میزبان_نام خدمات لینوکس_توضیحات بارگذاری CPU check_command check_nrpe!check_load ) تعریف سرویس (استفاده از سرویس عمومی host_name linux-serv service_description کاربران فعلی check_command check_nrpe!check_users ) سرویس را تعریف کنند(استفاده از سرویس عمومی host_name linux-service service_description /dev/sdaman1 سرویس رایگان check_n! استفاده از generic-service host_name linux-serv service_description کل فرآیندها check_command check_nrpe!check_total_procs ) تعریف سرویس (استفاده از سرویس عمومی host_name linux-serv service_description فرآیندهای زامبی check_command check_nrpe!check_zombie_procs)

192.168.1.12 باید با آدرس سرور لینوکس شما جایگزین شود.
دستورالعمل use به نام یک الگو در templates.cfg اشاره می کند که تنظیمات پیش فرض را تعریف می کند. برای اینکه هاست جدید در رابط وب ظاهر شود، باید سرویس nagios را مجددا راه اندازی کنید

# سرویس nagios راه اندازی مجدد

برای بررسی اینکه آیا nrpe کار می کند، می توانید دستور را اجرا کنید

# /etc/nagios/libexec/check_nrpe -H 192.168.1.12 NRPE نسخه 3.0.1

برای بررسی یک سرویس خاص، باید یک آرگومان با نام چک اضافه کنید

# /etc/nagios/libexec/check_nrpe -H 192.168.1.12 -c check_sda1 DISK OK - فضای خالی: /var/tmp 14549 مگابایت (85% inode=88%)؛| /var/tmp=2527MB;14411;16212;0;18014

نام چک را در فایل nrpe.cfg تعریف کردیم

فرمان[ check_sda1]=/etc/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1

و در فایل linux-serv.cfg

تعریف سرویس (استفاده از سرویس عمومی host_name linux-serv service_description /dev/sda1 check_command check_nrpe! check_sda1 }


نظارت بر میزبان ویندوز

افزونه nt برای نظارت بر هاست ویندوز استفاده می شود. به طور پیش فرض در افزونه های پایه گنجانده شده است و نیازی به نصب جداگانه ندارد. از طریق nt، افزونه nagios به NSClient++ نصب شده در هاست ویندوز دسترسی پیدا می کند. NSClient++ به ماژول های خاصی دسترسی پیدا می کند که اطلاعات مربوط به سیستم را به آن می گویند. NSClient++ اطلاعات دریافتی را به سرور nogios ارسال می کند.


نصب NSClient++

در هاست ویندوز باید NSClient++ را نصب کنید. آخرین نسخه را دانلود کنید و به عنوان مدیر اجرا کنید.

روی "بعدی" کلیک کنید

دوباره روی "Next" کلیک کنید

"معمولی" را انتخاب کنید

آدرس سرور nagios، رمز عبور را مشخص کنید و دو چک باکس اول را رها کنید. روی "بعدی" کلیک کنید

روی "نصب" کلیک کنید

روی "پایان" کلیک کنید


افزودن هاست ویندوز به سیستم مانیتورینگ

برای این کار یک فایل windows-serv.cfg در پوشه servers ایجاد می کنیم

# nano /etc/nagios/etc/servers/windows-serv.cfg تعریف میزبان (استفاده از نام میزبان ویندوز سرور windows-serv نام مستعار آدرس ویندوز سرور من 192.168.1.33 ) تعریف سرویس (استفاده از نام میزبان سرویس عمومی ویندوز-سرویس توضیحات نسخه NSClient++ check_command check_nt!CLIENTVERSION) تعریف سرویس (استفاده از سرویس عمومی host_name windows-serv service_description Uptime check_command check_nt! UPTIME ) تعریف سرویس (استفاده از سرویس عمومی host_name windows-service_description بارگیری CPU check_command check_nt!,905) تعریف سرویس (استفاده از سرویس عمومی host_name windows-serv service_description استفاده از حافظه check_command check_nt! MEMUSE!-w 80 -c 90 ) تعریف سرویس (استفاده از سرویس عمومی host_name windows-service_description C:\ Drive Space check_command check_nt!USKDI -w 80 -c 90 ) سرویس را تعریف کنید(استفاده از سرویس عمومی host_name windows-serv service_description VMTools check_command check_nt!SERVICETATE!-d SHOWALL -l VMToo ls ) تعریف سرویس (استفاده از سرویس عمومی host_name windows-serv service_description Explorer check_command check_nt! PROCSTATE!-d SHOWALL -l explorer.exe )

192.168.1.33 باید با آدرس سرور ویندوز شما جایگزین شود.
اگر هنگام نصب کلاینت NSClient++ رمز عبور مشخص شده بود، باید آن را به commands.cfg اضافه کنید.

# nano /etc/nagios/etc/objects/commands.cfg. . . # "check_nt" تعریف دستور دستور define( command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s MegaPass-v $ARG1$ $ARG2$). . .

و سرویس nagios را مجددا راه اندازی کنید

# سرویس nagios راه اندازی مجدد


تعریف گروه خدمات

یک گروه خدمات میزبان هایی را که تحت بررسی های خدمات خاصی قرار دارند را با هم جمع می کند. بیایید یک گروه خدمات بارگذاری CPU ایجاد کنیم و میزبان ها را برای بررسی بار پردازنده متحد کنیم.

# nano /etc/nagios/etc/objects/servicegroups.cfg سرویس گروه را تعریف می کند (سرویس_نام cpuload با نام مستعار CPU اعضای بارگیری لینوکس-سرویس، بارگذاری CPU، میزبان محلی، بار فعلی، ویندوز سرویس، بارگذاری پردازنده)

اعضای گروه در بخشنامه اعضا طبق اصل تعریف شده اند
اعضا= ,,,,…,n>,n>

برای در دسترس قرار دادن گروه، باید سرویس nagios را مجددا راه اندازی کنید

# سرویس nagios راه اندازی مجدد


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

به طور پیش فرض، همه میزبان های روی نقشه به Nagios Process متصل هستند. مواقعی وجود دارد که باید این رفتار را نادیده بگیرید. به عنوان مثال، اتصال نباید از Nagios Process، بلکه از نقطه دیگری از نقشه (به عنوان مثال، اتصال سرور از طریق سوئیچ) ایجاد شود. این کار با افزودن دستورالعمل والدین به قسمت توضیحات میزبان انجام می شود. برای مثالی گویا، اجازه دهید اتصال windows-serv را از Nagios Process به linux-serv تغییر دهیم.

# nano /etc/nagios/etc/servers/windows-serv.cfg تعریف میزبان (استفاده از ویندوز-سرور میزبان_نام windows-serv با نام مستعار آدرس سرور ویندوز من 192.168.1.33 والدین linux-serv } . . .

و سرویس nagios را مجددا راه اندازی کنید

# سرویس nagios راه اندازی مجدد

در حالت اول همه هاست ها با Nagios Process ارتباط داشتند، در حالت دوم اتصال windows-serv از linux-serv شروع می شود.


فعال کردن آیکون ها

nagios این قابلیت را دارد که آیکون های کنار نام میزبان را فعال کند. نمادها در پوشه /etc/nagios/share/images/logos قرار دارند. می توانید از یک مجموعه آماده استفاده کنید، می توانید از اینترنت دانلود کنید. برای فعال کردن نمایش آیکون ها، باید خطوط زیر را به templates.cfg اضافه کنید

# nano /etc/nagios/etc/objects/templates.cfg. . . # قالب تعریف میزبان لینوکس - این یک میزبان واقعی نیست، فقط یک الگو است! تعریف میزبان( نام لینوکس سرور ؛ نام این قالب میزبان از generic-host استفاده می کند؛ این الگو مقادیر دیگری را از الگوی میزبان عمومی check_period 24x7 به ارث می برد؛ به طور پیش فرض، هاست های لینوکس به صورت شبانه روز بررسی می شوند check_interval 1 ؛ بررسی فعال میزبان هر 5 دقیقه retry_interval 1 ؛ زمانبندی بررسی مجدد میزبان در فواصل زمانی 1 دقیقه max_check_attempts 10 ؛ هر میزبان لینوکس را 10 بار (حداکثر) بررسی کنید check_command check-host-alive ؛ فرمان پیش فرض برای بررسی میزبان های لینوکس notification_period workhours ; بالا، بنابراین ما فقط در طول روز اطلاع رسانی می کنیم؛ توجه داشته باشید که متغیر notification_period از رد می شود؛ مقداری که از الگوی میزبان عمومی به ارث رسیده است! notification_interval 120؛ ارسال مجدد اعلان ها هر 2 ساعت notification_options d,u,r برای ایالت های میزبان خاص ادمین های contact_groups ؛ اعلان ها توسط گروه های میزبان پیش فرض linux-servers به ​​ادمین ها ارسال می شود ؛ گروه های میزبانی که سرورهای لینوکس می گیرند عضوی از icon_image linux40.png statusmap_image linux40.gd2ثبت 0 ; این تعریف را ثبت نکنید - یک میزبان واقعی نیست، فقط یک الگو! ) # قالب تعریف میزبان ویندوز - این یک میزبان واقعی نیست، فقط یک الگو است! تعریف میزبان (نام windows-server؛ نام این قالب میزبان از generic-host استفاده می کند؛ مقادیر پیش فرض را از الگوی میزبان عمومی check_period 24x7 به ارث می برد؛ به طور پیش فرض، سرورهای ویندوز به صورت شبانه روزی نظارت می شوند check_interval 5؛ به طور فعال سرور را بررسی کنید. هر 5 دقیقه retry_interval 1 ؛ برنامه ریزی مجدد برای بررسی میزبان در فواصل زمانی 1 دقیقه max_check_attempts 10 ؛ هر سرور را 10 بار (حداکثر) بررسی کنید check_command check-host-alive ؛ فرمان پیش فرض برای بررسی اینکه آیا سرورها "زنده" هستند یا خیر notification_period در هر اطلاعیه 24x7 S. زمان - روز یا شب notification_interval 30؛ ارسال مجدد اعلان‌ها هر 30 دقیقه notification_options d,r؛ ارسال اعلان‌ها فقط برای ادمین‌های گروه‌های تماس با کشورهای میزبان خاص؛ اعلان‌ها توسط گروه‌های میزبان پیش‌فرض ویندوز سرورها به مدیران ارسال می‌شوند؛ گروه‌های میزبانی که سرورهای ویندوز باید عضو آن باشند. از icon_image win40.png statusmap_image win40.gd2ثبت 0 ; این را ثبت نکنید - فقط یک الگو است). . .

راه اندازی مجدد سرویس nagios

# سرویس nagios راه اندازی مجدد

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

شرح مختصری از Nagios

مؤلفه اصلی Nagios، سرور پایه، تقریباً روی هر سرور لینوکس/یونیکس قابل استقرار است. تقریباً در تمام توزیع های رایج لینوکس و یونیکس گنجانده شده است. در صورت لزوم می توانید کد منبع را از سایت پروژه دانلود کنید و نسخه Nagios خود را بر اساس آن بسازید. همچنین به همراه پکیج اصلی Nagios، مستندات مربوط به آن نیز نصب شده است.

Nagios دارای معماری مدولار و قابل گسترش است. برای افزایش قابلیت‌های Nagios می‌توانید از انواع کامپوننت‌های زیر استفاده کنید: افزونه‌ها (افزونه‌های Nagios) و افزونه‌ها (افزونه‌های Nagios).

پلاگین ها توسط فرآیند اصلی Nagios برای به دست آوردن اطلاعات زیر استفاده می شوند: زمان پاسخگویی گره راه دور، فضای خالی در پارتیشن دیسک و غیره. اگر یک افزونه با عملکرد مورد نیاز پیدا نشد، یک رابط کاربری مناسب برای ایجاد پلاگین های خود ارائه می شود.

اصطلاح "افزونه" برای جلوگیری از سردرگمی با افزونه ها معرفی شد، زیرا افزونه ها برای افزودن عملکردهای اساسی جدید به Nagios یا ادغام با سایر محصولات خارجی استفاده می شوند.

توانایی نوشتن سریع افزونه ها Nagios را به یک ابزار نظارتی شبکه همه کاره تبدیل کرده است. پلاگین هایی برای گره های نظرسنجی از طریق SNMP وجود دارد که در دسترس بودن یک گره راه دور را با استفاده از انواع پروتکل های شبکه بررسی می کند. در پروژه Nagios Exchange، می‌توانید در میان افزونه‌ها یا افزونه‌های از قبل نوشته‌شده جستجو کنید، یا افزونه‌ای از توسعه خود را در آنجا اضافه کنید.

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

شکل 1 ساختار سرور اصلی Nagios را نشان می دهد.


شکل 2 مکانیسم اجرای پلاگین های Nagios را بر روی یک میزبان راه دور نشان می دهد.


اجزای کلیدی در شکل 2 پلاگین هستند check_nrpeنظارت و توسعه سمت گره NRPEدر میزبان راه دور بین افزونه check_nrpeو NRPE- دیمون یک اتصال SSL رمزگذاری شده ایجاد می کند که از طریق آن nagiosdدستوراتی را برای اجرای افزونه ها ارسال می کند و نتایج اجرای آنها را دریافت می کند. NRPEپلاگین ها را در میزبان راه دور به سرور اصلی Nagios "پروژه می کند" ( nagiosd، بنابراین می توانید هر پلاگینی را روی هر میزبان راه دور اجرا کنید.

برای نظارت از راه دور گره های ویندوز، می توانید از افزونه استفاده کنید NSClient++. در این مورد، از کنار nagiosdباید از افزونه استفاده شود check_nt.

نمونه ای از استفاده از Nagios

به عنوان مثال، یک شرکت تجاری کوچک گرفته می شود که دارای 3 نقطه حضور است: یک انبار، یک فروشگاه و یک دفتر. هر نقطه حضور اتصال خاص خود را به ISP محلی دارد. یک سرور لینوکس/یونیکس به عنوان دروازه در هر سایت نصب شده است. یک VPN بین همه سایت ها سازماندهی شده است. در دفتر، شبکه اینترانت 10.1.0.0/24 است. در انبار - 10.2.0.0/24. در فروشگاه - 10.3.0.0/24. مدیریت شرکت وظیفه نظارت بر این زیرساخت فناوری اطلاعات را تعیین کرد.


برای این کار باید سرویس را روی هر کدام از سرورها نصب کنید. NRPEو دو نفر از آنها کیت اولیه Nagios را دارند. این کار به این صورت انجام می شود که اگر یکی از سرورهای Nagios از کار بیفتد، دیگری بلافاصله در مورد آن پیام ارسال کند.

برای نصب nagiosdو NRPEمی توانید از ابزارهای استاندارد سیستم استفاده کنید. این روش به پلتفرم انتخابی بستگی دارد و معمولاً دشوار نیست. همچنین همراه با nagiosdیا NRPEمجموعه پایه پلاگین ها نصب شده است. همچنین باید رابط وب را نصب و پیکربندی کنید تا وضعیت گره با سرور نصب شده Nagios نمایش داده شود. در برخی از توزیع ها، به یک بسته جداگانه جدا می شود. در نهایت باید یک فایل htpasswd با کاربر nagiosadmin که در فایل cgi.conf تعریف شده است ایجاد کنید. در صورت تمایل می توانید تغییراتی در پیکربندی ایجاد کنید و به جای این نام از کاربر دیگری استفاده کنید.

پس از آن، می توانید سرور و وب سرور Nagios را راه اندازی کنید و با نام کاربری و رمز عبور خود به اشتراک Nagios محلی خود وارد شوید. تا کنون، تنها یک گره لوکال هاست را مانیتور می کند و چندین پارامتر آن (میانگین بار (میانگین بار)، کاربران فعلی (کاربران فعال)، فضای دیسک (فضای دیسک)) را نشان می دهد. یکی از بخش های این منبع حاوی مستندات است، به طوری که برای دسترسی به آن نیازی به صرف ترافیک اینترنت ندارید. توضیحات میزبان در فایل localhost.cfg است.


قبل از اضافه کردن گره های دیگر به پیکربندی، باید آدرس ایمیل افراد مسئول مدیریت آنها را مشخص کنید. این کار در فایل contacts.cfg انجام می شود. به شدت توصیه می شود که آدرس های ایمیل را از ارائه دهندگان ایمیل مستقل انتخاب کنید. به عنوان مثال، می توانید سرویس گیرنده ایمیل Yandex را بر روی تلفن همراه خود نصب کنید و آدرس را در yandex.ru در توضیحات مشخص کنید. اگر اینترنت در دفتری که سرور پست الکترونیکی شرکتی نصب شده است خاموش باشد، حتی پس از ساعت ها، سرور Nagios از انبار از طریق تلفن همراه به مدیر اطلاع می دهد.

فهرست 1 نحوه افزودن اطلاعات تماس را به فایل contacts.cfg نشان می دهد.

فهرست 1. افزودن اطلاعات تماس.
تعریف مخاطب (contact_name zorin; // نام کاربری کوتاه // مقادیر پیش‌فرض از الگوی generic-contact استفاده می‌شود، generic-contact؛ نام مستعار Alexander N. Zorin؛ // ایمیل نام کاربری کامل به ارث می‌رسد. [ایمیل محافظت شده]; }

پس از آن، باید گره هایی را که در Nagios نظارت می شوند، ثبت کنید. فهرست 2 نحوه ایجاد تعریف گره انبار در فایل warehouse-gw.cfg، مشابه فایل localhost.cfg را نشان می دهد.

فهرست 2. اضافه کردن گره ها به Nagios.
تعریف میزبان(// نام الگوی مورد استفاده برای توصیف میزبان. // تعریف این میزبان تمام تنظیمات را به ارث می برد // در قالب میزبان لینوکس سرور اعلام شده است. استفاده از سرور لینوکس host_name انبار-gw نام مستعار انبار display_name مخاطبین انبار zorin , آدرس worehouse-admin 140.14.22.4 ) تعریف سرویس( // نام الگوی مورد استفاده برای توصیف سرویس. استفاده از local-service ; host_name warehouse-gw service_description SSH check_command check_ssh notifications_enabled 1 ) define host( استفاده از host_name-server host; -intra alias warehouse-intra display_name Warehouse local net contact zorin, warehouse-admin address 10.2.0.1 ) تعریف سرویس( // نام الگوی مورد استفاده برای توصیف سرویس. استفاده از local-service; host_name warehouse-intra service_description SMTP check_command not check_smtp 1)

گره انبار-gwبرای پیگیری وضعیت سرویس‌های LAN خارجی و داخلی، عمداً دو بار ثبت شد. در این مثال، سرور SMTP فقط به شبکه محلی سرویس می دهد. داشبوردهای رابط وب Nagios دو گره را نشان خواهند داد انبار-gwو انبار-داخلی. اگر گره warehouse-intra ناپدید شود و فقط در دسترس باشد انبار-gw- این بدان معنی است که کانال VPN قطع شده است.

برخی از افزونه ها از طریق افزونه اجرا می شوند NRPE(میانگین بار - check_load، فضای دیسک - check_disk، کاربران فعلی - check_users) برای به دست آوردن اطلاعاتی که به دست آوردن آنها از خارج از گره غیرممکن یا دشوار است. برای این کار باید یک افزونه نصب کنید check_nrpe2در سرورها و برنامه های افزودنی Nagios NRPEدر تمام سرورها این را می توان با استفاده از ابزارهای استاندارد سیستم انجام داد.

در فایل پیکربندی nrpe.cfg باید آدرسی که به آن ضمیمه می شود را مشخص کنید. NRPE- دیمون و گره های قابل اعتمادی که از آنها درخواست ها را می پذیرد. برای فروشگاه (node ​​shop-gw) از پارامترهای زیر استفاده خواهد شد:

server_address=10.3.0.1 allow_hosts=10.1.0.1,10.2.0.1

ترافیک NRPEعمداً از طریق VPN هدایت شده است. گره های قابل اعتماد برای شبح NRPEدر مغازه یک دفتر و یک انبار وجود دارد. در سرورهای Nagios، این خدمات همانطور که در لیست 3 نشان داده شده است، نظارت می شود:

فهرست 3. پیکربندی نظارت برای یک سرویس از راه دور
تعریف سرویس (// نام الگوی مورد استفاده برای توصیف سرویس. استفاده از سرویس محلی؛ host_name warehouse-intra service_description بارگیری میانگین فهرست check_command check_nrpe2!-c check_load notifications_enabled 1 )

در این مورد NRPEدیمون -node انبار-داخلیدستور ارسال می شود check_load. پاسخ مقدار فعلی خواهد بود. متوسط ​​باربرای این گره لطفاً توجه داشته باشید که پارامترهای افزونه (و ممکن است چندین باشد) باید با علامت تعجب از هم جدا شوند. در مثال نشان داده شده، پارامتر است -c check_load.

بنابراین گام به گام با افزودن گره های جدید و پارامترهای نظارت شده بر روی آنها، یک سیستم نظارتی بسیار کاربردی ساخته می شود.

کار با پلاگین ها

پلاگین ها برنامه ها یا اسکریپت های ساده ای هستند که پارامترهای ورودی را زمانی که از طریق گزینه های خط فرمان اجرا می شوند دریافت می کنند و مقادیر درخواستی را در قالبی کاملاً تعریف شده به stdout برمی گردانند. دستورات برای اجرای پلاگین ها را می توان در فایل commands.cfg نوشت، در حالی که افزونه ها با آن نصب می شوند nagiosdدر حال حاضر در این فایل هستند. همچنین امکان ثبت هر افزونه در یک فایل جداگانه وجود دارد.

فهرست 4 نحوه توصیف پلاگین را نشان می دهد. check_smtp A که در دسترس بودن سرور SMTP روی میزبان راه دور و زمان پاسخگویی آن را بررسی می کند.

لیست 4. پیکربندی افزونه check_smtp
تعریف فرمان( command_name check_smtp command_line /usr/lib/nagios/plugins/check_smtp -H $HOSTADDRESS$)

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

/usr/lib/nagios/plugins/check_smtp -H 192.168.4.1 SMTP OK - 0.038 ثانیه. زمان پاسخگویی|زمان=0.037518s;;;0.000000

گزینه های راه اندازی می توانند متفاوت باشند، نکته اصلی این است که آنها را به درستی به توضیحات فرمان اضافه کنید. فرمت خروجی با جزئیات در اسناد نصب شده با رابط وب توضیح داده شده است.

هنگام نصب NRPE-daemon، تنها بخش کوچکی از افزونه ها در فایل nrpe.conf ثبت شده است که در میان آنها دستور بالا وجود دارد. check_load:

command=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20

خط بالا حاوی مسیر پلاگین است check_loadو گزینه های راه اندازی. اگر افزونه بدون پارامتر اجرا شود، لیستی از پارامترهای معتبر را نمایش می دهد. به عنوان مثال، شما باید یک دستور ایجاد کنید check_usrبرای NRPE، که اطلاعات مربوط به پارتیشن /dev/md2 نصب شده در مسیر /usr را به سرور نظارت برمی گرداند. این قابلیت را می توان با استفاده از یک پلاگین استاندارد پیاده سازی کرد چک_دیسک. اگر آن را بدون پارامتر اجرا کنید، شرحی از پارامترهای شروع نمایش داده می شود.

استفاده: check_disk -w limit -c limit [-W limit] [-K limit] (-p path | -x device) [-C] [-E] [-e] [-g group ] [-k] [ -l] [-M] [-m] [-R مسیر] [-r مسیر] [-t timeout] [-u unit] [-v] [-X type]

بر اساس اطلاعات ارائه شده می توانید یک تیم آماده کنید check_usrو آن را در فایل nrpe.conf قرار دهید:

command=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2

اجرای آزمایشی این دستور خروجی زیر را تولید می کند:

/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2 DISK OK - فضای خالی: /usr 20295 مگابایت (86% inode=92%)؛| /usr=3061MB;19684;22145;0;24606

همانطور که می بینید، در Nagios می توانید به راحتی پلاگین هایی برای انجام کارهای مختلف ایجاد کنید و آنها را به شبح NRPE متصل کنید.

برنامه های افزودنی Nagios

هنگام بحث در مورد قابلیت های Nagios، ضروری است که جالب ترین برنامه های افزودنی را در نظر بگیرید که قابلیت های Nagios را بسیار افزایش می دهد.

پسوند pnp4nagios

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


همانطور که در شکل 5 نشان داده شده است، دوره بحرانی با رنگ قرمز و دوره های عملکرد عادی با رنگ سبز مشخص شده است. این راه حل برای پارامترهای نوع بولی (بله / خیر)، به عنوان مثال، یکپارچگی آرایه RAID مناسب است. برای پارامترهای عددی، ردیابی دینامیک تغییرات مفیدتر خواهد بود.

افزونه pnp4nagios، به طور منظم از nagiosdمقادیر پارامترها، تاریخچه تغییرات آنها را ذخیره می کند و گزارشی به صورت گرافیکی ایجاد می کند. نمودارها را می توان خودسرانه با هم ترکیب کرد و در صورت لزوم، صفحه وب حاصل را به یک فایل PDF تبدیل کرد. شکل 6 گزارش تغییر پارامتر را نشان می دهد متوسط ​​باربرای یک گره خاص

شکل 6. صفحه وب افزونه pnp4nagios
نتیجه

به ویژه شایان ذکر است که شدت منابع کم این راه حل است. یک شرکت از Nagios برای نظارت بر 14 گره و 140 سرویس روی آنها استفاده می کند، در حالی که شبح NRPE 512 کیلوبایت رم و سرور nagiosd تنها 140 کیلوبایت رم را اشغال می کند. مصرف منابع پردازنده توسط هر دو مؤلفه و پردازش های فرزند آنها در یک CPU Pentium-IV از 1٪ تجاوز نمی کند. از جمله پارامترهای نظارت شده عبارتند از: دمای هارد دیسک ها و مادربردها، وضعیت پارتیشن های دیسک، اندازه صف های ایمیل، سرعت فن، یکپارچگی آرایه های RAID و بسیاری موارد دیگر.

همانطور که در این مقاله نشان داده شده است، بسته Nagios نیاز به منابع بسیار کمی دارد، بسیار قابل تنظیم است و برای افزونه ها و افزونه های جدید باز است. برای یک شرکت کوچک یا متوسط ​​که در حال حاضر حداقل یک سرور لینوکس/یونیکس دارد، Nagios راه حل ایده آلی برای نظارت بر زیرساخت های فناوری اطلاعات موجود است.

زنگ

کسانی هستند که قبل از شما این خبر را می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه دوست دارید زنگ را بخوانید
بدون هرزنامه