| PROCD(8) | راهنمای procstatd | PROCD(8) |
نام (NAME)
procstatd - ارائه اطلاعات آماری ناشناس برای پایش کارآمد ایستگاههای کاری شبکه از راه دور
خلاصه دستور (SYNOPSIS)
procstatd %[-v] %[-d port] %[-i port]
توضیحات (DESCRIPTION)
دیمن procstatd برای ارائه آمارها و اطلاعات سیستمی به میزبانها یا برنامههای پایشگر (مانیتورینگ) در شبکه از طریق یک رابط کاربری برنامهنویسی (API) ساده و با قابلیت تجزیه آسان طراحی شده است.
در حالت دیمن انشعابی (forking daemon با گزینه [-d port])، روی پورت پیشنهادی (که باید اشغالنشده باشد) شنود میکند و با دریافت درخواست اتصال، آن را پذیرفته و نسخهای جدید از خود را برای رسیدگی به اتصال منشعب (fork) میسازد. اتصال به هیچ وجه احراز هویت نمیشود، اما روی کلاسترهای محافظتشده مانند Beowulf یا شبکههای محلی پشت فایروال باید امن و کارآمد باشد.
تنها در حالت دیمن انشعابی، میتوان دیمن را همراه با گزینه پرگو ([-v]) از خط فرمان اجرا کرد تا اطلاعات اشکالزدایی به دست آید. گزینه -v در حالت inetd تأثیری ندارد.
در حالت inetd با گزینه [-i port]، باید یک ورودی مناسب برای procstatd در /etc/services روی یک پورت باز ایجاد شود، برای نمونه:
procstatd 7885/tcp # Private procstatd connection
و خط مناسبی به /etc/inetd.conf افزوده شود:
procstatd stream tcp nowait nobody /usr/sbin/tcpd /usr/local/sbin/procstatd/procstatd -i 7885
پورت 7885 استفادهشده در این مثال، پورت پیشفرضی است که توسط برنامه همراه "watchman" استفاده میشود.
در این حالت، پوششدهندههای TCP به همراه /etc/hosts.[allow,deny] یک لایه امنیتی معقول فراهم میکنند. به علاوه، دیمن به عنوان یک کاربر غیرممتاز مانند nobody به راحتی اجرا میشود. در نهایت، خود دیمن با دقت نوشته شده تا در برابر حملات سرریز بافر محافظت شود.
عملکرد و رابط برنامهنویسی (OPERATION AND API)
پس از برقراری اتصال، دیمن سه دستور را میپذیرد:
init مقداردهی اولیه تمام ساختارها (الزامی به عنوان نخستین دستور) send آغاز ارسال آمارهای گره/کلاینتها quit خاتمه اتصال -- نمونه دیمن پایان مییابد
پس از دریافت دستور send، دیمن پیامی با ساختار کلی زیر روی رابط بازمیگرداند:
rgb=152.16.67.32 0.00|version=2.2.5-22 0.00|cpu 4.27|cpu_user 48.20|...
تجزیه این قالب بسیار ساده است: فیلدها با کاراکتر | از هم جدا میشوند. نام فیلدها با یک فاصله از دادههای فیلد جدا میگردند. دادههای کمکی نیز با یک علامت = از نام فیلد تفکیک میشوند. بنابراین رابط کاربری این دیمن نیازی به دانستن فیلدهای موجود در هر میزبان خاص ندارد و به راحتی بدون خرابی در صورت اضافه شدن فیلدهای جدید توسعهپذیر است.
نصب (INSTALLATION)
برنامه procstatd باید یا در مسیری در دسترس کاربران (برای نمونه /usr/local/bin) یا در مسیری در دسترس ریشه که دیمنهای عمومی قرار دارند (مانند /usr/local/sbin یا /usr/local/etc) نصب شود.
در حالت اول، procstatd میتواند توسط کاربران بدون دسترسی ویژه فراخوانی شود.
در حالت دوم، دیمن باید در زمان بوت از طریق قطعه کدی مانند:
if [ -x /usr/local/sbin/procstatd ] then /usr/local/bin/procstatd fi
در rc.local یا معادل آن در سیستم شما اجرا شود.
پایداری، امنیت و اشکالزدایی (RELIABILITY, SECURITY AND DEBUGGING)
این یک نسخه ALPHA از دیمن است و پایداری آن تضمین نمیشود. برای امنسازی مناسب، توصیه میشود در حالت انشعابی (حالت -d) تنها در یک شبکه کلاستر محافظتشده اجرا شود. برای استفاده از procstatd در یک شبکه باز، از حالت inetd استفاده کرده و مالک فرآیند را به کاربر nobody تغییر دهید و با hosts.allow دسترسی را محدود نمایید.
در صورت بروز مشکل، برای اشکالزدایی میتوان از حالت پرگو با پرچم -v استفاده کرد:
procstatd -v -d port_whatever
سپس اتصال از طریق telnet به پورت مربوطه:
telnet procstatd_host port_whatever
و وارد کردن دستورات:
init send send quit
برای مشاهده ردپای فعالیت آن.
فایلها (FILES)
فایلهای اجرایی و اسکریپتها در مسیر زیر قرار دارند:
/usr/local/[bin,sbin]/procstatd
ملاحظات (REMARK)
کد منبع procstatd/watchman همچنین میتواند به عنوان الگویی به کار رود که به سادگی برای پشتیبانی از انواع الگوهای محاسبات موازی سرور/کلاینت سفارشیسازی شود.
گزارش اشکالات (REPORTING BUGS)
لطفاً گزارشهای اشکال، وصلهها و پیشنهادات را به rgb@phy.duke.edu ارسال فرمایید. همچنین مراجع زیر برای اطلاعات بیشتر در دسترس هستند:
http://www.beowulf.org http://www.extremelinux.org
نویسندگان (AUTHORS)
نویسنده procstatd، رابرت جی. براون (Robert G. Brown <rgb@phy.duke.edu>) است.
| procstatd 1.0alpha |