'\" t .\" Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. .\" .\" This code is free software; you can redistribute it and/or modify it .\" under the terms of the GNU General Public License version 2 only, as .\" published by the Free Software Foundation. .\" .\" This code is distributed in the hope that it will be useful, but WITHOUT .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License .\" version 2 for more details (a copy is included in the LICENSE file that .\" accompanied this code). .\" .\" You should have received a copy of the GNU General Public License version .\" 2 along with this work; if not, write to the Free Software Foundation, .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. .\" .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA .\" or visit www.oracle.com if you need additional information or have any .\" questions. .\" .\" Arch: generic .\" Software: JDK 8 .\" Date: 21 November 2013 .\" SectDesc: Monitoring Tools .\" Title: jstatd.1 .\" .if n .pl 99999 .TH jstatd 1 "21 November 2013" "JDK 8" "Monitoring Tools" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" jstatd \- ماشین‌های مجازی جاوا (JVMها) را پایش می‌کند و امکان اتصال ابزارهای پایش راه‌دور به آن‌ها را فراهم می‌سازد\&. این دستور آزمایشی است و پشتیبانی نمی‌شود\&. .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBjstatd\fR [ \fIoptions\fR ] .fi .sp .TP \fIoptions\fR گزینه‌های خط فرمان\&. بخش گزینه‌ها را ببینید\&. .SH "توضیحات (DESCRIPTION)" دستور \f3jstatd\fR یک برنامه کارگزار RMI است که ایجاد و پایان کار ماشین‌های مجازی مجهز شده Java HotSpot را پایش می‌کند و رابطی برای اتصال ابزارهای پایش راه‌دور به JVMهای در حال اجرا بر روی میزبان محلی فراهم می‌آورد\&. .PP کارگزار \f3jstatd\fR به یک رجیستری RMI روی میزبان محلی نیاز دارد\&. کارگزار \f3jstatd\fR تلاش می‌کند به رجیستری RMI روی درگاه پیش‌فرض، یا درگاهی که با گزینه \f3-p\fR\fIport\fR مشخص کرده‌اید متصل شود\&. اگر رجیستری RMI پیدا نشود، یک نمونه در داخل برنامه \f3jstatd\fR ایجاد شده و به درگاه مشخص‌شده توسط گزینه \f3-p\fR\fIport\fR، یا در صورت عدم استفاده از این گزینه، به درگاه پیش‌فرض رجیستری RMI مقید (bind) می‌شود\&. با تعیین گزینه \f3-nr\fR می‌توانید از ایجاد رجیستری داخلی RMI جلوگیری کنید\&. .SH "گزینه‌ها (OPTIONS)" .TP -nr .br در صورتی که رجیستری RMI از پیش موجود پیدا نشود، تلاشی برای ایجاد رجیستری RMI داخلی در داخل فرآیند \f3jstatd\fR نمی‌کند\&. .TP -p \fIport\fR .br شماره درگاهی که انتظار می‌رود رجیستری RMI در آن پیدا شود؛ یا اگر پیدا نشد و گزینه \f3-nr\fR نیز مشخص نشده باشد، روی آن ایجاد گردد\&. .TP -n \fIrminame\fR .br نامی که شیء RMI راه‌دور در رجیستری RMI با آن مقید (bind) می‌شود\&. نام پیش‌فرض \f3JStatRemoteHost\fR است\&. اگر چند کارگزار \f3jstatd\fR روی یک میزبان اجرا شوند، با تعیین این گزینه می‌توان نام شیء صادرشده RMI را برای هر کارگزار یکتا کرد\&. با این حال، انجام این کار مستلزم آن است که نام یکتای کارگزار در رشته‌های \f3hostid\fR و \f3vmid\fR مربوط به کلاینت پایشگر گنجانده شود\&. .TP -J\fIoption\fR .br گزینه \f3option\fR را به JVM ارسال می‌کند، که در آن option یکی از گزینه‌های شرح داده شده در صفحه راهنمای اجراکننده برنامه جاوا است\&. به عنوان مثال، \f3-J-Xms48m\fR حافظه شروع را روی ۴۸ مگابایت تنظیم می‌کند\&. به \f3java\fR(1) مراجعه کنید\&. .SH "امنیت (SECURITY)" کارگزار \f3jstatd\fR تنها می‌تواند JVMهایی را پایش کند که مجوزهای دسترسی بومی (native) مناسب را برای آن‌ها داشته باشد\&. بنابراین، فرآیند \f3jstatd\fR باید با همان اعتبار کاربری JVMهای هدف اجرا شود\&. برخی از اعتبارهای کاربری، مانند کاربر root در سیستم‌های مبتنی بر یونیکس، مجوز دسترسی به تجهیزات صادرشده توسط هر JVM در سیستم را دارند\&. فرآیند \f3jstatd\fR که با چنین اعتباری اجرا شود می‌تواند تمام JVMهای سیستم را پایش کند، اما نگرانی‌های امنیتی بیشتری به همراه خواهد داشت\&. .PP کارگزار \f3jstatd\fR هیچ‌گونه احراز هویتی برای کلاینت‌های راه‌دور فراهم نمی‌کند\&. بنابراین، اجرای یک فرآیند کارگزار \f3jstatd\fR باعث می‌شود اطلاعات پایش ارائه‌شده توسط تمام JVMهایی که فرآیند \f3jstatd\fR به آن‌ها دسترسی دارد، در اختیار تمام کاربران شبکه قرار گیرد\&. این افشا ممکن است در محیط شما نامطلوب باشد؛ بنابراین پیش از اجرای فرآیند \f3jstatd\fR، به ویژه در محیط‌های عملیاتی یا شبکه‌های ناامن، باید خط‌مشی‌های امنیتی محلی در نظر گرفته شوند\&. .PP کارگزار \f3jstatd\fR در صورتی که هیچ مدیر امنیتی (security manager) دیگری نصب نشده باشد، نمونه‌ای از \f3RMISecurityPolicy\fR را نصب می‌کند و در نتیجه به تعیین یک فایل خط‌مشی امنیتی نیاز دارد\&. این فایل باید با پیاده‌سازی پیش‌فرض خط‌مشی و نحو فایل خط‌مشی در مطابقت داشته باشد\&. .PP فایل خط‌مشی زیر به کارگزار \f3jstatd\fR اجازه می‌دهد بدون مواجهه با استثناهای امنیتی اجرا شود\&. این خط‌مشی نسبت به اعطای تمام دسترسی‌ها به تمام پایگاه‌های کد محدودتر است، اما از خط‌مشی‌ای که حداقل دسترسی‌های لازم برای اجرای کارگزار \f3jstatd\fR را اعطا می‌کند آزادتر است\&. .sp .nf \f3grant codebase "file:${java\&.home}/\&.\&./lib/tools\&.jar" { \fP .fi .nf \f3 permission java\&.security\&.AllPermission;\fP .fi .nf \f3};\fP .fi .nf \f3\fP .fi .sp برای استفاده از این تنظیمات، متن بالا را در فایلی به نام \f3jstatd.all.policy\fR ذخیره کرده و کارگزار \f3jstatd\fR را به صورت زیر اجرا کنید: .sp .nf \f3jstatd \-J\-Djava\&.security\&.policy=jstatd\&.all\&.policy\fP .fi .nf \f3\fP .fi .sp برای محیط‌هایی با اصول امنیتی سخت‌گیرانه‌تر، می‌توان با استفاده از یک فایل خط‌مشی سفارشی، دسترسی را به میزبان‌ها یا شبکه‌های مورد اعتماد خاص محدود کرد؛ هرچند این روش‌ها نیز در معرض حملات جعل نشانی IP (IP address spoofing) قرار دارند\&. در صورتی که نگرانی‌های امنیتی شما با یک فایل خط‌مشی سفارشی برطرف نمی‌شود، امن‌ترین اقدام این است که کارگزار \f3jstatd\fR را اجرا نکرده و از ابزارهای \f3jstat\fR و \f3jps\fR به صورت محلی استفاده نمایید\&. .SH "رابط راه‌دور (REMOTE INTERFACE)" رابطی که فرآیند \f3jstatd\fR صادر می‌کند اختصاصی است و تضمین می‌شود که در آینده تغییر کند\&. به کاربران و توسعه‌دهندگان اکیداً توصیه می‌شود برای این رابط کدنویسی نکنند\&. .SH "مثال‌ها (EXAMPLES)" در ادامه مثال‌هایی از نحوه استفاده از دستور \f3jstatd\fR آورده شده است\&. اسکریپت‌های \f3jstatd\fR به طور خودکار کارگزار را در پس‌زمینه اجرا می‌کنند\&. .SS "رجیستری داخلی RMI (INTERNAL RMI REGISTRY)" این مثال نحوه شروع یک نشست \f3jstatd\fR را با یک رجیستری داخلی RMI نشان می‌دهد\&. این مثال فرض می‌کند هیچ کارگزار دیگری به درگاه پیش‌فرض رجیستری RMI (درگاه ۱۰۹۹) مقید نشده باشد\&. .sp .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy\fP .fi .nf \f3\fP .fi .sp .SS "رجیستری خارجی RMI (EXTERNAL RMI REGISTRY)" این مثال یک نشست \f3jstatd\fR را با یک رجیستری خارجی RMI آغاز می‌کند\&. .sp .nf \f3rmiregistry&\fP .fi .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy\fP .fi .nf \f3\fP .fi .sp این مثال یک نشست \f3jstatd\fR را با یک کارگزار خارجی رجیستری RMI روی درگاه ۲۰۲۰ اجرا می‌کند\&. .sp .nf \f3jrmiregistry 2020&\fP .fi .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-p 2020\fP .fi .nf \f3\fP .fi .sp این مثال یک نشست \f3jstatd\fR را با یک رجیستری خارجی RMI روی درگاه ۲۰۲۰ که به \f3AlternateJstatdServerName\fR مقید است آغاز می‌کند\&. .sp .nf \f3rmiregistry 2020&\fP .fi .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-p 2020\fP .fi .nf \f3 \-n AlternateJstatdServerName\fP .fi .nf \f3\fP .fi .sp .SS "جلوگیری از ایجاد رجیستری RMI درون فرآیندی (STOP THE CREATION OF AN IN-PROCESS RMI REGISTRY)" این مثال نشستی از \f3jstatd\fR را آغاز می‌کند که در صورت پیدا نشدن رجیستری RMI، آن را ایجاد نمی‌کند\&. این مثال فرض می‌کند رجیستری RMI از پیش در حال اجرا است\&. اگر رجیستری RMI اجرا نشده باشد، پیام خطا نمایش داده می‌شود\&. .sp .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-nr\fP .fi .nf \f3\fP .fi .sp .SS "فعال‌سازی ثبت گزارش RMI (ENABLE RMI LOGGING)" این مثال یک نشست \f3jstatd\fR را با قابلیت‌های فعال ثبت گزارش (logging) RMI راه‌اندازی می‌کند\&. این روش به عنوان ابزاری کمکی برای عیب‌یابی یا پایش فعالیت‌های کارگزار مفید است\&. .sp .nf \f3jstatd \-J\-Djava\&.security\&.policy=all\&.policy\fP .fi .nf \f3 \-J\-Djava\&.rmi\&.server\&.logCalls=true\fP .fi .nf \f3\fP .fi .sp .SH "همچنین ببینید (SEE ALSO)" .TP 0.2i \(bu java(1) .TP 0.2i \(bu jps(1) .TP 0.2i \(bu jstat(1) .TP 0.2i \(bu rmiregistry(1) .RE .br 'pl 8.5i 'bp