| RABBITMQCTL(8) | System Manager's Manual | RABBITMQCTL(8) |
خلاصه دستور (SYNOPSIS)
[-q]
[-s] [-l]
[-n node]
[-t timeout]
command [command_options]
توضیحات (DESCRIPTION)
RabbitMQ یک کارگزار پیامرسانی چندپروتکلی و متنباز است.
ابزار
اصلی خط
فرمان برای
مدیریت یک
گره سرور RabbitMQ
است، همراه
با rabbitmq-diagnostics ،
rabbitmq-upgrade و
موارد
دیگر.
این ابزار تمام اقدامات را با اتصال به گره هدف RabbitMQ روی یک درگاه ارتباطی اختصاصی ابزار CLI و احراز هویت با استفاده از یک راز مشترک (موسوم به فایل کوکی) انجام میدهد.
در صورتی
که اتصال با
شکست مواجه
شود، گره
هدف در حال
اجرا
نباشد، یا
نتواند
با موفقیت
در گره هدف
احراز هویت
کند،
اطلاعات
تشخیصی
نمایش داده
میشود.
برای کسب اطلاعات بیشتر، به راهنمای ابزارهای CLI در RabbitMQ مراجعه کنید.
گزینهها (OPTIONS)
-nnode- گره
پیشفرض
"rabbit@target-hostname"
است، که در
آن target-hostname
میزبان
محلی است.
روی
میزبانی با
نام "myserver.example.com ،"
نام گره
معمولاً
"rabbit@myserver" خواهد
بود (مگر
اینکه
RABBITMQ_NODENAMEبازنویسی شده باشد، که در این صورت باید از --longnames- استفاده کنید). خروجی "hostname -s" معمولاً نام میزبان درستی است که باید پس از علامت "@" استفاده شود. برای جزئیات پیکربندی یک گره RabbitMQ به rabbitmq-server(8) مراجعه کنید.
-q,--quiet- حالت خروجی بیصدا (quiet) انتخاب میشود. هنگامی که حالت بیصدا فعال باشد، پیامهای اطلاعرسانی کاهش مییابند.
-s,--silent- حالت خروجی کاملاً ساکت (silent) انتخاب میشود. هنگامی که حالت ساکت فعال باشد، پیامهای اطلاعرسانی کاهش یافته و سرصفحه جداول حذف میشوند.
--no-table-headers- سرصفحهها را برای دادههای جدولی چاپ نمیکند.
--dry-run- دستور را اجرا نمیکند. فقط پیامهای اطلاعرسانی را چاپ میکند.
-ttimeout,--timeouttimeout- مهلت زمانی
عملیات بر
حسب ثانیه.
همه
دستورها از
مهلت زمانی
پشتیبانی
نمیکنند.
مقدار
پیشفرض
infinityاست. -l,--longnames- هنگامی که کلاستر برای استفاده از نامهای بلند گره (FQDN) پیکربندی شده است، باید مشخص شود. برای کسب اطلاعات بیشتر، به راهنمای کلاسترینگ RabbitMQ مراجعه کنید.
- راز مشترک
مورد
استفاده
برای احراز
هویت در گره
هدف.
ترجیحاً به
جای مشخص
کردن این
گزینه در خط
فرمان، از
یک فایل
محلی یا
متغیر
محیطی
RABBITMQ_ERLANG_COOKIEاستفاده کنید. برای کسب اطلاعات بیشتر، به راهنمای ابزارهای CLI در RabbitMQ مراجعه کنید.
دستورها (COMMANDS)
help[-l] [command_name]-
راهنمای نحوه استفاده از تمام دستورهای موجود را چاپ میکند.
-l,--list-commands- تنها نحوه استفاده از دستورها را بدون توضیح پارامترها فهرست میکند.
- command_name
- نحوه استفاده از دستور مشخصشده را چاپ میکند.
version-
نسخه ابزارهای CLI را نمایش میدهد.
گرهها (Nodes)
await_startup-
منتظر میماند تا برنامه RabbitMQ روی گره هدف راهاندازی شود.
برای نمونه، جهت انتظار برای شروع به کار برنامه RabbitMQ:
rabbitmqctl await_startup reset-
یک گره RabbitMQ را به حالت اولیه و دستنخورده خود بازمیگرداند.
گره را از هر کلاستری که به آن تعلق دارد حذف میکند، تمام دادهها را از پایگاه داده مدیریتی، مانند کاربران و vhostهای پیکربندیشده، پاک میکند و تمام پیامهای پایدار را حذف مینماید.
برای اینکه
resetوforce_resetموفق شوند، برنامه RabbitMQ باید متوقف شده باشد، برای نمونه باstop_app.برای نمونه، جهت بازنشانی گره RabbitMQ:
rabbitmqctl reset rotate_logs-
به گره RabbitMQ دستور میدهد تا چرخش داخلی گزارشها (log rotation) را انجام دهد.
چرخش لاگها بر اساس تنظیمات ثبت وقایع مشخصشده در فایل پیکربندی انجام میشود. عملیات چرخش ناهمگام (asynchronous) است و تضمینی وجود ندارد که پیش از بازگشت این دستور به پایان برسد.
توجه داشته باشید در صورت چرخش خارجی گزارشها (مانند استفاده از logrotate(8)) نیازی به فراخوانی این دستور نیست.
برای نمونه، جهت آغاز چرخش گزارشها:
rabbitmqctl rotate_logs shutdown-
گره را خاموش میکند، هم RabbitMQ و هم زماناجرای (runtime) آن را. این دستور مسدودکننده است و پس از خروج فرایند runtime بازمیگردد. اگر RabbitMQ نتواند متوقف شود، یک کد خروج غیرصفر بازمیگرداند. این دستور شناسه فرایند (OS PID) گره هدف را استنتاج میکند و بنابراین تنها میتواند برای خاموش کردن گرههایی استفاده شود که روی همان میزبان (یا بهطور کلیتر، در همان سیستمعامل، برای نمونه در همان ماشین مجازی یا کانتینر) در حال اجرا هستند.
برخلاف دستور stop، دستور shutdown:
- برای انتظار جهت خروج فرایند runtime به یک pid_file نیاز ندارد
- اگر گره RabbitMQ در حال اجرا نباشد، کد خروج غیرصفر بازمیگرداند
برای نمونه، این دستور یک گره محلی RabbitMQ را که با نام گره پیشفرض اجرا میشود خاموش میکند:
rabbitmqctl shutdown start_app-
برنامه RabbitMQ را راهاندازی میکند.
این دستور معمولاً پس از انجام سایر اقدامات مدیریتی که نیازمند متوقف بودن برنامه RabbitMQ هستند اجرا میشود، مانند
reset.برای نمونه، برای دستور دادن به گره RabbitMQ جهت راهاندازی برنامه RabbitMQ:
rabbitmqctl start_app stop[pid_file]-
گره Erlang را که RabbitMQ روی آن در حال اجرا است متوقف میکند. برای راهاندازی مجدد گره، دستورالعملهای بخش "Running the Server" را در راهنمای نصب دنبال کنید.
اگر یک pid_file مشخص شده باشد، همچنین منتظر میماند تا فرایند مشخصشده در آن پایان یابد. برای جزئیات مربوط به این فایل، به توضیحات دستور
waitمراجعه کنید.برای نمونه، برای دستور دادن به گره RabbitMQ جهت پایان کار:
rabbitmqctl stop stop_app-
برنامه RabbitMQ را متوقف میکند، اما محیط زماناجرا (Erlang VM) را در حال اجرا باقی میگذارد.
این دستور معمولاً پیش از انجام سایر اقدامات مدیریتی که نیازمند متوقف بودن برنامه RabbitMQ هستند اجرا میشود، مانند
reset.برای نمونه، برای دستور دادن به گره RabbitMQ جهت متوقف کردن برنامه RabbitMQ:
rabbitmqctl stop_app waitpid_file,wait--pidpid-
منتظر راهاندازی برنامه RabbitMQ میماند.
این دستور منتظر میماند تا برنامه RabbitMQ روی گره شروع به کار کند. در صورت مشخص شدن pidfile ، منتظر ایجاد فایل pid میماند، سپس منتظر فرایندی با pid مشخصشده در فایل pid یا آرگومان
--pidمیشود، و در نهایت منتظر میماند تا برنامه RabbitMQ در آن فرایند راهاندازی شود. اگر فرایند بدون راهاندازی برنامه RabbitMQ خاتمه یابد، دستور با شکست مواجه میشود.اگر فایل pid مشخصشده ایجاد نشود یا گره erlang در بازه زمانی
--timeoutراهاندازی نشود، دستور با شکست مواجه خواهد شد. مهلت زمانی پیشفرض ۱۰ ثانیه است.یک فایل pid مناسب توسط اسکریپت rabbitmq-server(8) ایجاد میشود. بهطور پیشفرض، این فایل در دایرکتوری Mnesia قرار دارد. متغیر محیطی
RABBITMQ_PID_FILEرا برای تغییر مکان آن ویرایش کنید.برای نمونه، این دستور زمانی بازمیگردد که گره RabbitMQ راهاندازی شده باشد:
rabbitmqctl wait /var/run/rabbitmq/pid
مدیریت کلاستر (Cluster management)
await_online_nodescount-
منتظر میماند تا count گره به کلاستر بپیوندند.
برای نمونه، جهت انتظار برای شروع به کار دو گره RabbitMQ:
rabbitmqctl await_online_nodes 2 cluster_status-
تمام گرههای موجود در کلاستر را به تفکیک نوع گره، همراه با گرههای در حال اجرای فعلی نمایش میدهد.
برای نمونه، این دستور گرههای موجود در کلاستر را نمایش میدهد:
rabbitmqctl cluster_status force_boot-
اطمینان حاصل میکند که گره در نوبت بعدی حتماً شروع به کار خواهد کرد، حتی اگر آخرین گرهای نبوده باشد که خاموش شده است.
بهطور معمول هنگامی که یک کلاستر RabbitMQ را بهطور کامل خاموش میکنید، نخستین گرهای که مجدداً راهاندازی میکنید باید آخرین گرهای باشد که خاموش شده است، زیرا ممکن است رخدادهایی را ثبت کرده باشد که سایر گرهها ندیدهاند. اما گاهی اوقات این امر امکانپذیر نیست: برای نمونه، اگر برق کل کلاستر قطع شود، ممکن است تمام گرهها تصور کنند که آخرین گره خاموششده نبودهاند.
در چنین حالتی میتوانید هنگامی که گره خاموش است، دستور
force_bootرا فراخوانی کنید. این کار به گره میگوید دفعه بعد که از آن درخواست شروع به کار کردید، بدون قید و شرط راهاندازی شود. هرگونه تغییر در کلاستر پس از خاموش شدن این گره از دست خواهد رفت.اگر آخرین گره خاموششده برای همیشه از دست رفته باشد، باید به جای این دستور از
forget_cluster_node--offlineاستفاده کنید، زیرا این کار تضمین میکند صفهای آینهای که رونوشت لیدر آنها روی گره از دست رفته قرار داشته، ارتقا یابند.برای نمونه، این دستور گره را وادار میکند در نوبت بعدی راهاندازی منتظر گرههای دیگر نماند:
rabbitmqctl force_boot force_reset(deprecated)-
یک گره RabbitMQ را با اجبار به حالت اولیه و دستنخورده خود بازمیگرداند.
دستور
force_resetباresetدر این تفاوت دارد که گره را بدون قید و شرط، بدون توجه به وضعیت فعلی پایگاه داده مدیریتی و پیکربندی کلاستر، بازنشانی میکند. این دستور تنها باید به عنوان آخرین راهحل در صورتی که پایگاه داده یا پیکربندی کلاستر آسیب دیده باشد، استفاده شود.دستور
force_resetمنسوخ شده است (deprecated). این دستور هنگام استفاده از ذخیرهساز متاداده Mnesia همچنان در دسترس است. در ذخیرهساز متاداده Khepri پشتیبانی نمیشود.برای اینکه
resetوforce_resetموفق شوند، برنامه RabbitMQ باید متوقف شده باشد، برای نمونه باstop_app.برای نمونه، جهت بازنشانی گره RabbitMQ:
rabbitmqctl force_reset forget_cluster_node[--offline]-
--offline- امکان حذف گره را از یک گره آفلاین فعال میکند. این تنها در وضعیتی مفید است که تمام گرهها آفلاین باشند و آخرین گره خاموششده نتواند آنلاین شود، و در نتیجه مانع از راهاندازی کل کلاستر گردد. در هیچ شرایط دیگری نباید استفاده شود زیرا میتواند به ناسازگاری دادهها منجر شود.
یک گره کلاستر را از راه دور حذف میکند. گرهای که حذف میشود باید آفلاین باشد، در حالی که گرهای که حذف از طریق آن انجام میشود باید آنلاین باشد، مگر هنگام استفاده از پرچم
--offline.هنگام استفاده از پرچم
--offline،تلاش نخواهد کرد مانند حالت عادی به یک گره متصل شود؛ در عوض بهطور موقت به خود آن گره تبدیل میشود تا تغییرات را اعمال کند. این در صورتی مفید است که گره نتواند بهطور عادی راهاندازی شود. در این حالت، گره به منبع رسمی متاداده کلاستر (برای نمونه اینکه کدام صفها وجود دارند) تبدیل میشود، حتی اگر قبلاً چنین نبوده باشد. بنابراین در صورت امکان، این دستور را روی آخرین گرهای که خاموش شده است اجرا کنید.برای نمونه، این دستور گره "rabbit@stringer" را از گره "hare@mcnulty" حذف میکند:
rabbitmqctl -n hare@mcnulty forget_cluster_node rabbit@stringer join_clusterseed-node-
- seed-node
- عضو موجود در کلاستر (گره بذر / seed node) برای پیوستن به کلاستر با آن.
به گره دستور میدهد به عضویت کلاستری درآید که گره مشخصشده در آن قرار دارد. پیش از پیوستن به کلاستر، گره بازنشانی (reset) میشود، بنابراین هنگام استفاده از این دستور احتیاط کنید. برای موفقیتآمیز بودن این دستور، برنامه RabbitMQ باید متوقف شده باشد، برای نمونه با
stop_app.پس از اجرای دستور
join_cluster، هر زمان که برنامه RabbitMQ روی گره جاری راهاندازی شود، تلاش خواهد کرد به گرههایی که در زمان خاموش شدن گره در کلاستر حضور داشتند متصل شود.برای خروج از یک کلاستر، گره را
resetکنید. همچنین میتوانید با استفاده از دستورforget_cluster_nodeگرهها را از راه دور حذف نمایید.برای کسب اطلاعات بیشتر، به راهنمای کلاسترینگ RabbitMQ مراجعه کنید.
مدیریت کاربران (User Management)
توجه
داشته
باشید که
تمام
دستورهای
مدیریت
کاربر در
تنها
میتوانند
کاربران را
در پایگاه
داده داخلی
RabbitMQ مدیریت
کنند.
کاربرانِ
بکاندهای
احراز هویت
جایگزین
مانند LDAP را
نمیتوان
با این
دستورهای
بررسی
یا مدیریت
کرد.
add_userusername password-
- username
- نام کاربری که باید ایجاد شود.
- password
- گذرواژهای که کاربر ایجادشده برای ورود به کارگزار استفاده خواهد کرد.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد کاربری (غیرمدیریتی) به نام "janeway" با گذرواژه (اولیه) "changeit" ایجاد کند:
rabbitmqctl add_user janeway changeit authenticate_userusername password-
- username
- نام کاربر.
- password
- گذرواژه کاربر.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تا کاربری به نام "janeway" را با گذرواژه "verifyit" احراز هویت کند:
rabbitmqctl authenticate_user janeway verifyit change_passwordusername newpassword-
- username
- نام کاربری که گذرواژه او باید تغییر کند.
- newpassword
- گذرواژه جدید برای کاربر.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد گذرواژه کاربر به نام "janeway" را به "newpass" تغییر دهد:
rabbitmqctl change_password janeway newpass clear_passwordusername-
- username
- نام کاربری که گذرواژه او باید پاک شود.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد گذرواژه کاربر به نام "janeway" را پاک کند:
rabbitmqctl clear_password janewayاین کاربر اکنون نمیتواند با یک گذرواژه وارد سیستم شود (اما ممکن است برای نمونه از طریق SASL EXTERNAL در صورت پیکربندی، قادر به ورود باشد).
hash_passwordplaintext-
- plaintext
- گذرواژه متنی ساده برای درهمسازی (هش کردن).
یک گذرواژه متن ساده را بر اساس الگوریتم درهمسازی رمز عبور پیکربندیشده فعلی هش میکند.
delete_userusername-
- username
- نام کاربری که باید حذف شود.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد کاربر به نام "janeway" را حذف کند:
rabbitmqctl delete_user janeway list_users-
کاربران را فهرست میکند. هر سطر از نتیجه شامل نام کاربر و به دنبال آن فهرستی از تگهای تنظیمشده برای آن کاربر خواهد بود.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تمام کاربران را فهرست کند:
rabbitmqctl list_users -
- username
- نام کاربری که تگهای او باید تنظیم شود.
- tag
- صفر، یک یا چند تگ برای تنظیم. هرگونه تگ موجود قبلی حذف خواهد شد.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تا اطمینان حاصل کند کاربر به نام "janeway" یک مدیر (administrator) است:
rabbitmqctl set_user_tags janeway administratorاین دستور هنگام احراز هویت کاربر از طریق پروتکل پیامرسانی هیچ تأثیری ندارد، اما میتواند برای این به کار رود که به کاربر اجازه دهد هنگام ورود از راههای دیگر (برای نمونه با پلاگین مدیریت)، کاربران، میزبانهای مجازی (vhostها) و مجوزها را مدیریت کند.
این دستور به کارگزار RabbitMQ دستور میدهد هرگونه تگ را از کاربر به نام "janeway" حذف کند:
rabbitmqctl set_user_tags janeway
کنترل دسترسی (Access control)
clear_permissions[-pvhost] username-
- vhost
- نام میزبان مجازی که دسترسی کاربر به آن باید سلب شود، با مقدار پیشفرض "/".
- username
- نام کاربری که دسترسی او به میزبان مجازی مشخصشده باید سلب شود.
مجوزهای کاربر را تنظیم میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد دسترسی کاربر به نام "janeway" به میزبان مجازی به نام "my-vhost" را سلب کند:
rabbitmqctl clear_permissions -p my-vhost janeway clear_topic_permissions[-pvhost] username [exchange]-
- vhost
- نام میزبان مجازی که مجوزهای تاپیک در آن باید پاک شود، با مقدار پیشفرض "/".
- username
- نام کاربری که مجوزهای تاپیک او برای میزبان مجازی مشخصشده باید پاک شود.
- exchange
- نام اکسچنج تاپیک برای پاک کردن مجوزهای تاپیک؛ پیشفرض تمام اکسچنجهای تاپیکی است که کاربر مشخصشده برای آنها مجوز تاپیک دارد.
مجوزهای تاپیک کاربر را پاک میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد مجوزهای تاپیک کاربر به نام "janeway" را برای اکسچنج تاپیک "amq.topic" در میزبان مجازی به نام "my-vhost" حذف کند:
rabbitmqctl clear_topic_permissions -p my-vhost janeway amq.topic list_permissions[-pvhost]-
- vhost
- نام میزبان مجازی برای فهرست کردن کاربرانی که به آن دسترسی دارند، و مجوزهای آنها. مقدار پیشفرض "/" است.
مجوزها را در یک میزبان مجازی فهرست میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تمام کاربرانی را که به میزبان مجازی به نام "my-vhost" دسترسی به آنها اعطا شده است، و مجوزهایی که برای عملیات روی منابع در آن میزبان مجازی دارند، فهرست کند. توجه داشته باشید که یک رشته خالی به این معناست که هیچ مجوزی اعطا نشده است:
rabbitmqctl list_permissions -p my-vhost list_topic_permissions[-pvhost]-
- vhost
- نام میزبان مجازی که مجوزهای تاپیک کاربران در آن باید فهرست شود. مقدار پیشفرض "/" است.
مجوزهای تاپیک را در یک میزبان مجازی فهرست میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تمام کاربرانی را که در میزبان مجازی به نام "my-vhost" مجوزهای تاپیک به آنها اعطا شده است، فهرست کند:
rabbitmqctl list_topic_permissions -p my-vhost list_user_permissionsusername-
- username
- نام کاربری که مجوزهای او باید فهرست شود.
مجوزهای کاربر را فهرست میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تمام میزبانهای مجازی را که کاربر به نام "janeway" به آنها دسترسی دارد، و مجوزهایی را که کاربر برای عملیات روی منابع در این میزبانهای مجازی دارد، فهرست کند:
rabbitmqctl list_user_permissions janeway list_user_topic_permissionsusername-
- username
- نام کاربری که مجوزهای تاپیک او باید فهرست شود.
مجوزهای تاپیک کاربر را فهرست میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تمام میزبانهای مجازی را که کاربر به نام "janeway" به آنها دسترسی دارد، و مجوزهای تاپیکی که کاربر در این میزبانهای مجازی دارد، فهرست کند:
rabbitmqctl list_user_topic_permissions janeway list_vhosts[vhostinfoitem ...]-
میزبانهای مجازی (vhosts) را فهرست میکند.
پارامتر vhostinfoitem برای نشان دادن اینکه کدام موارد اطلاعاتی میزبان مجازی در نتایج گنجانده شود، استفاده میشود. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. vhostinfoitem میتواند هر مقداری از فهرست زیر را بگیرد:
name- نام میزبان مجازی همراه با گریز کاراکترهای غیر ASCII همانند C.
tracing- آیا ردیابی (tracing) برای این میزبان مجازی فعال است یا خیر.
default_queue_type- نوع صف پیشفرض برای این vhost.
description- توضیحات میزبان مجازی.
- تگهای میزبان مجازی.
cluster_state- وضعیت میزبان مجازی در کلاستر: nodedown، running، stopped.
اگر هیچ vhostinfoitem مشخص نشده باشد، نام vhost نمایش داده میشود.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تمام میزبانهای مجازی را فهرست کند:
rabbitmqctl list_vhosts name tracing set_permissions[-pvhost] user conf write read-
- vhost
- نام میزبان مجازی که دسترسی کاربر به آن باید اعطا شود، با مقدار پیشفرض "/".
- user
- نام کاربری که دسترسی به میزبان مجازی مشخصشده به او اعطا میشود.
- conf
- یک عبارت باقاعده (regex) مطابق با نام منابعی که مجوز پیکربندی برای آنها به کاربر اعطا میشود.
- write
- یک عبارت باقاعده مطابق با نام منابعی که مجوز نوشتن برای آنها به کاربر اعطا میشود.
- read
- یک عبارت باقاعده مطابق با نام منابعی که مجوز خواندن برای آنها به کاربر اعطا میشود.
مجوزهای کاربر را تنظیم میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تا به کاربر به نام "janeway" دسترسی به میزبان مجازی به نام "my-vhost" را اعطا کند، با مجوزهای پیکربندی روی تمام منابعی که نام آنها با "janeway-" آغاز میشود، و مجوزهای نوشتن و خواندن روی تمام منابع:
rabbitmqctl set_permissions -p my-vhost janeway "^janeway-.*" ".*" ".*" set_permissions_globallyusername conf write read-
- username
- نام کاربری که دسترسی به میزبان مجازی به او اعطا میشود.
- conf
- یک عبارت باقاعده مطابق با نام منابعی که مجوز پیکربندی برای آنها به کاربر اعطا میشود.
- write
- یک عبارت باقاعده مطابق با نام منابعی که مجوز نوشتن برای آنها به کاربر اعطا میشود.
- read
- یک عبارت باقاعده مطابق با نام منابعی که مجوز خواندن برای آنها به کاربر اعطا میشود.
مجوزهای کاربر را در تمام vhostها تنظیم میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تا به کاربر به نام "janeway" دسترسی به تمام میزبانهای مجازی را با مجوزهای پیکربندی روی تمام منابعی که نام آنها با "janeway-" آغاز میشود، و مجوزهای نوشتن و خواندن روی تمام منابع اعطا کند:
rabbitmqctl set_permissions_globally janeway "^janeway-.*" ".*" ".*" set_topic_permissions[-pvhost] user exchange write read-
- vhost
- نام میزبان مجازی که دسترسی کاربر به آن باید اعطا شود، با مقدار پیشفرض "/".
- user
- نام کاربری که مجوزها برای او در میزبان مجازی هدف اعمال میشود.
- exchange
- نام اکسچنج تاپیک که بررسی مجوز روی آن اعمال خواهد شد.
- write
- یک عبارت باقاعده مطابق با کلید مسیریابی (routing key) پیام منتشرشده.
- read
- یک عبارت باقاعده مطابق با کلید مسیریابی پیام مصرفشده.
مجوزهای تاپیک کاربر را تنظیم میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد به کاربر به نام "janeway" اجازه دهد پیامهایی را که از طریق اکسچنج "amq.topic" در میزبان مجازی "my-vhost" عبور میکنند، با کلید مسیریابی که با "janeway-" آغاز میشود، منتشر و مصرف کند:
rabbitmqctl set_topic_permissions -p my-vhost janeway amq.topic "^janeway-.*" "^janeway-.*"مجوزهای تاپیک از جایگزینی متغیر برای متغیرهای زیر پشتیبانی میکنند: username، vhost و client_id. توجه داشته باشید که client_id تنها هنگام استفاده از MQTT جایگزین میشود. مثال قبلی را میتوان با استفاده از "^{username}-.*" عمومیتر کرد:
rabbitmqctl set_topic_permissions -p my-vhost janeway amq.topic "^{username}-.*" "^{username}-.*"
پایش، مشاهدهپذیری و بررسیهای سلامت (Monitoring, observability and health checks)
environment-
نام و مقدار هر متغیر را در محیط برنامه (application environment) برای هر برنامه در حال اجرا نمایش میدهد.
list_bindings[-pvhost] [bindinginfoitem ...]-
جزئیات پیوندها (bindings) را برمیگرداند. بهطور پیشفرض، پیوندهای میزبان مجازی "/" برگردانده میشوند. پرچم
-pمیتواند برای بازنویسی این مقدار پیشفرض استفاده شود.پارامتر bindinginfoitem برای نشان دادن اینکه کدام موارد اطلاعاتی پیوند در نتایج گنجانده شود، استفاده میشود. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. bindinginfoitem میتواند هر مقداری از فهرست زیر را بگیرد:
source_name- نام منبع پیامهایی که پیوند به آن متصل است. همراه با گریز کاراکترهای غیر ASCII همانند C.
source_kind- نوع منبع پیامهایی که پیوند به آن متصل است. در حال حاضر همیشه exchange است. همراه با گریز کاراکترهای غیر ASCII همانند C.
destination_name- نام مقصد پیامهایی که پیوند به آن متصل است. همراه با گریز کاراکترهای غیر ASCII همانند C.
destination_kind- نوع مقصد پیامهایی که پیوند به آن متصل است. همراه با گریز کاراکترهای غیر ASCII همانند C.
routing_key- کلید مسیریابی پیوند همراه با گریز کاراکترهای غیر ASCII همانند C.
arguments- آرگومانهای پیوند.
اگر هیچ bindinginfoitem مشخص نشده باشد، تمام موارد بالا نمایش داده میشوند.
برای نمونه، این دستور نام اکسچنج و نام صف پیوندها را در میزبان مجازی به نام "my-vhost" نمایش میدهد:
rabbitmqctl list_bindings -p my-vhost exchange_name queue_name list_channels[channelinfoitem ...]-
اطلاعات مربوط به تمام کانالهای فعلی، یعنی ظرفهای منطقی مجری بیشتر دستورهای AMQP را برمیگرداند. این شامل کانالهایی است که بخشی از اتصالات عادی AMQP هستند و کانالهایی که توسط افزونههای گوناگون و سایر الحاقات ایجاد شدهاند.
پارامتر channelinfoitem برای نشان دادن اینکه کدام موارد اطلاعاتی کانال در نتایج گنجانده شود، استفاده میشود. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. channelinfoitem میتواند هر مقداری از فهرست زیر را بگیرد:
pid- شناسه فرایند Erlang مرتبط با اتصال.
connection- شناسه فرایند Erlang مرتبط با اتصالی که کانال به آن تعلق دارد.
name- نام خوانا برای کانال.
number- شماره کانال که آن را بهطور یکتا درون یک اتصال مشخص میکند.
user- نام کاربری مرتبط با کانال.
vhost- میزبان مجازی که کانال در آن فعالیت میکند.
transactional- در صورتی که کانال در حالت تراکنشی باشد مقدار True، و در غیر این صورت False است.
confirm- در صورتی که کانال در حالت تایید (confirm) باشد مقدار True، و در غیر این صورت False است.
consumer_count- تعداد مصرفکنندگان منطقی AMQP که پیامها را از طریق کانال دریافت میکنند.
messages_unacknowledged- تعداد پیامهای تحویلدادهشده از طریق این کانال که هنوز تایید (ack) نشدهاند.
messages_uncommitted- تعداد پیامهای دریافتی در یک تراکنش که هنوز کامیت نشده است.
acks_uncommitted- تعداد تاییدهای دریافتی در یک تراکنش که هنوز کامیت نشده است.
messages_unconfirmed- تعداد پیامهای منتشرشده که هنوز تایید دریافت نکردهاند. روی کانالهایی که در حالت تایید (confirm) نیستند، این مقدار ۰ باقی میماند.
prefetch_count- حد پیشواکشی QoS برای مصرفکنندگان جدید، در صورت نامحدود بودن ۰ است.
اگر هیچ channelinfoitem مشخص نشده باشد، موارد pid، user، consumer_count و messages_unacknowledged در نظر گرفته میشوند.
برای نمونه، این دستور فرایند اتصال و تعداد پیامهای تاییدنشده را برای هر کانال نمایش میدهد:
rabbitmqctl list_channels connection messages_unacknowledged list_ciphers-
مجموعههای رمزنگاری (cipher suites) پشتیبانیشده توسط دستورهای کدگذاری را فهرست میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تمام مجموعههای رمزنگاری پشتیبانیشده توسط دستورهای کدگذاری را فهرست کند:
rabbitmqctl list_ciphers list_connections[connectioninfoitem ...]-
آمار اتصالات TCP/IP را برمیگرداند.
پارامتر connectioninfoitem برای نشان دادن اینکه کدام موارد اطلاعاتی اتصال در نتایج گنجانده شود، استفاده میشود. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. connectioninfoitem میتواند هر مقداری از فهرست زیر را بگیرد:
pid- شناسه فرایند Erlang مرتبط با اتصال.
name- نام خوانا برای اتصال.
port- درگاه سرور.
host- نام میزبان سرور بهدستآمده از طریق DNS معکوس، یا آدرس IP آن در صورتی که DNS معکوس ناموفق بوده یا غیرفعال شده باشد.
peer_port- درگاه همتا (peer).
peer_host- نام میزبان همتا بهدستآمده از طریق DNS معکوس، یا آدرس IP آن در صورتی که DNS معکوس ناموفق بوده یا فعال نشده باشد.
ssl- یک مقدار بولی که نشان میدهد آیا اتصال با SSL امن شده است یا خیر.
ssl_protocol- پروتکل SSL (برای نمونه "tlsv1").
ssl_key_exchange- الگوریتم تبادل کلید SSL (برای نمونه "rsa").
ssl_cipher- الگوریتم رمزنگاری SSL (برای نمونه "aes_256_cbc").
ssl_hash- تابع درهمسازی SSL (برای نمونه "sha").
peer_cert_subject- موضوع (subject) گواهی SSL همتا در قالب RFC4514.
peer_cert_issuer- صادرکننده (issuer) گواهی SSL همتا در قالب RFC4514.
peer_cert_serial_number- شماره سریال گواهی SSL همتا، در قالب هگزادسیمال.
peer_cert_validity- دورهای که گواهی SSL همتا طی آن معتبر است.
state- وضعیت
اتصال؛
یکی از
موارد:
- starting
- tuning
- opening
- running
- flow
- blocking
- blocked
- closing
- closed
channels- تعداد کانالهایی که از این اتصال استفاده میکنند.
protocol- نسخه
پروتکل AMQP در
حال
استفاده --
در حال
حاضر یکی
از موارد:
- {0,9,1}
- {0,8,0}
توجه داشته باشید اگر یک کلاینت اتصال AMQP 0-9 را درخواست کند، ما با آن مانند AMQP 0-9-1 رفتار میکنیم.
auth_mechanism- مکانیزم احراز هویت SASL استفادهشده، مانند "PLAIN".
user- نام کاربری مرتبط با اتصال.
vhost- نام میزبان مجازی همراه با گریز کاراکترهای غیر ASCII همانند C.
timeout- مهلت زمانی اتصال / فاصله زمانی توافقشده برای ضربان قلب (heartbeat)، بر حسب ثانیه.
frame_max- حداکثر اندازه فریم (بر حسب بایت).
channel_max- حداکثر تعداد کانالها روی این اتصال.
client_properties- ویژگیهای اطلاعاتی ارسالشده توسط کلاینت در طول برقراری اتصال.
recv_oct- اکتتهای دریافت شده.
recv_cnt- بستههای دریافت شده.
send_oct- اکتتهای ارسال شده.
send_cnt- بستههای ارسال شده.
send_pend- اندازه صف ارسال.
connected_at- تاریخ و زمانی که این اتصال برقرار شده است، به صورت یک برچسب زمانی (timestamp).
اگر هیچ connectioninfoitem مشخص نشده باشد، موارد user، peer host، peer port، مدت زمان پس از کنترل جریان (time since flow control) و وضعیت مسدود شدن حافظه نمایش داده میشوند.
برای نمونه، این دستور اندازه صف ارسال و درگاه سرور را برای هر اتصال نمایش میدهد:
rabbitmqctl list_connections send_pend port list_consumers[-pvhost]-
مصرفکنندگان را فهرست میکند، یعنی اشتراکها در جریان پیامهای یک صف. هر سطر چاپشده، که با کاراکترهای تب جدا شده است، نشاندهنده نام صف مشترکشده، شناسه فرایند کانالی که اشتراک از طریق آن ایجاد شده و مدیریت میشود، تگ مصرفکننده که اشتراک را بهطور یکتا درون یک کانال مشخص میکند، یک مقدار بولی که نشان میدهد آیا تاییدیه (acknowledgement) برای پیامهای تحویلدادهشده به این مصرفکننده انتظار میرود، یک عدد صحیح که حد پیشواکشی را نشان میدهد (که ۰ به معنای "none" است)، و هرگونه آرگومان برای این مصرفکننده است.
list_exchanges[-pvhost] [exchangeinfoitem ...]-
جزئیات اکسچنج را برمیگرداند. در صورت عدم وجود پرچم
-p-،جزئیات اکسچنجهای میزبان مجازی "/" برگردانده میشود. پرچم-pمیتواند برای بازنویسی این مقدار پیشفرض استفاده شود.پارامتر exchangeinfoitem برای نشان دادن اینکه کدام موارد اطلاعاتی اکسچنج در نتایج گنجانده شود، استفاده میشود. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. exchangeinfoitem میتواند هر مقداری از فهرست زیر را بگیرد:
name- نام اکسچنج همراه با گریز کاراکترهای غیر ASCII همانند C.
type- نوع
اکسچنج،
مانند:
- direct
- topic
- headers
- fanout
durable- آیا اکسچنج پس از راهاندازی مجدد سرور باقی میماند یا خیر.
auto_delete- آیا هنگامی که اکسچنج دیگر مورد استفاده قرار نمیگیرد بهطور خودکار حذف خواهد شد یا خیر.
internal- آیا اکسچنج داخلی است، به این معنی که کلاینتها نمیتوانند مستقیماً روی آن پیام منتشر کنند.
arguments- آرگومانهای اکسچنج.
policy- نام پالیسی (policy) اعمالشده روی اکسچنج.
اگر هیچ exchangeinfoitem مشخص نشده باشد، نام و نوع اکسچنج نمایش داده میشود.
برای نمونه، این دستور نام و نوع هر اکسچنج از میزبان مجازی به نام "my-vhost" را نمایش میدهد:
rabbitmqctl list_exchanges -p my-vhost name type list_hashes-
توابع درهمسازی پشتیبانیشده توسط دستورهای کدگذاری را فهرست میکند.
برای نمونه، این دستور به کارگزار RabbitMQ دستور میدهد تمام توابع درهمسازی پشتیبانیشده توسط دستورهای کدگذاری را فهرست کند:
rabbitmqctl list_hashes list_queues[-pvhost] [--offline|--online|--local] [queueinfoitem ...]-
جزئیات صف را برمیگرداند. در صورت عدم وجود پرچم
-p-،جزئیات صفهای میزبان مجازی "/" برگردانده میشود. پرچم-pمیتواند برای بازنویسی این مقدار پیشفرض استفاده شود.صفهای نمایش داده شده را میتوان بر اساس وضعیت یا مکان آنها با استفاده از یکی از گزینههای ناسازگار با هم (مانعةالجمع) زیر فیلتر کرد:
--offline- تنها صفهای پایداری را فهرست میکند که در حال حاضر در دسترس نیستند (بهطور مشخصتر، گره لیدر آنها در دسترس نیست).
--online- صفهایی را که در حال حاضر در دسترس هستند (گره لیدر آنها در دسترس است) فهرست میکند.
--local- تنها صفهایی را فهرست میکند که رونوشت لیدر آنها روی گره فعلی قرار دارد.
پارامتر queueinfoitem برای نشان دادن اینکه کدام موارد اطلاعاتی صف در نتایج گنجانده شود، استفاده میشود. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. queueinfoitem میتواند هر مقداری از فهرست زیر را بگیرد:
name- نام صف همراه با گریز کاراکترهای غیر ASCII همانند C.
durable- آیا صف پس از راهاندازی مجدد سرور باقی میماند یا خیر.
auto_delete- آیا هنگامی که صف دیگر مورد استفاده قرار نمیگیرد بهطور خودکار حذف خواهد شد یا خیر.
arguments- آرگومانهای صف.
policy- نام پالیسی کاربر که روی صف اعمال شده است.
operator_policy- نام پالیسی اپراتور که روی صف اعمال شده است.
effective_policy_definition- تعریف پالیسی مؤثر برای صف: ترکیب تعاریف پالیسی کاربر و اپراتور.
pid- شناسه فرایند Erlang مربوط به صف.
owner_pid- شناسه فرایند Erlang مربوط به اتصالی که مالک انحصاری صف است. اگر صف غیراختصاصی باشد، خالی است.
exclusive- در صورتی که صف اختصاصی باشد (یعنی owner_pid داشته باشد) مقدار True، و در غیر این صورت False است.
exclusive_consumer_pid- شناسه فرایند Erlang که نشاندهنده کانال مصرفکننده انحصاری مشترکشده در این صف است. اگر مصرفکننده انحصاری وجود نداشته باشد، خالی است.
exclusive_consumer_tag- تگ مصرفکننده مربوط به مصرفکننده انحصاری مشترکشده در این صف. اگر مصرفکننده انحصاری وجود نداشته باشد، خالی است.
messages_ready- تعداد پیامهای آماده برای تحویل به کلاینتها.
messages_unacknowledged- تعداد پیامهای تحویلدادهشده به کلاینتها که هنوز تایید (ack) نشدهاند.
messages- مجموع پیامهای آماده و تاییدنشده (عمق صف).
messages_ready_ram- تعداد پیامها از messages_ready که در حافظه رم مقیم هستند.
messages_unacknowledged_ram- تعداد پیامها از messages_unacknowledged که در حافظه رم مقیم هستند.
messages_ram- تعداد کل پیامهایی که در حافظه رم مقیم هستند.
messages_persistent- تعداد کل پیامهای پایدار در صف (برای صفهای گذرا / transient همیشه ۰ خواهد بود).
message_bytes- مجموع اندازه تمام بدنه پیامها در صف. این مقدار شامل ویژگیهای پیام (از جمله سرصفحهها) یا هرگونه بار اضافی (overhead) نمیشود.
message_bytes_ready- مانند
message_bytesاما تنها آن دسته از پیامهایی را که آماده تحویل به کلاینتها هستند میشمارد. message_bytes_unacknowledged- مانند
message_bytesاما تنها آن دسته از پیامهایی را که به کلاینتها تحویل داده شده ولی هنوز تایید نشدهاند میشمارد. message_bytes_ram- مانند
message_bytesاما تنها پیامهایی را که در حال حاضر در رم نگهداری میشوند میشمارد. message_bytes_persistent- مانند
message_bytesاما تنها پیامهایی را که پایدار هستند میشمارد. head_message_timestamp- ویژگی برچسب زمانی نخستین پیام در صف، در صورت وجود. برچسب زمانی پیامها تنها زمانی ظاهر میشود که در وضعیت مقیم در حافظه (paged-in) باشند.
disk_reads- تعداد دفعاتی که از زمان راهاندازی این صف، پیامها توسط آن از دیسک خوانده شدهاند.
disk_writes- تعداد دفعاتی که از زمان راهاندازی این صف، پیامها توسط آن بر روی دیسک نوشته شدهاند.
consumers- تعداد مصرفکنندگان.
consumer_utilisation- کسری از زمان (بین ۰.۰ و ۱.۰) که صف قادر است فوراً پیامها را به مصرفکنندگان تحویل دهد. در صورتی که مصرفکنندگان به دلیل ازدحام شبکه یا سقف پیشواکشی (prefetch count) محدود شده باشند، این مقدار میتواند کمتر از ۱.۰ باشد.
memory- بایتهای حافظه تخصیصیافته توسط زماناجرا برای صف، از جمله پشته (stack)، هیپ (heap) و ساختارهای داخلی.
mirror_pids- اگر صف به صورت آینهای باشد، این گزینه شناسههای آینهها (رونوشتهای پیرو / follower replicas) را فهرست میکند. برای کسب اطلاعات بیشتر، به راهنمای آینهسازی در RabbitMQ مراجعه کنید.
synchronised_mirror_pids- اگر صف به صورت آینهای باشد، این گزینه شناسههای آینههایی (رونوشتهای پیرو) را ارائه میدهد که با رونوشت لیدر همگام هستند. برای کسب اطلاعات بیشتر، به راهنمای آینهسازی در RabbitMQ مراجعه کنید.
state- وضعیت صف.
بهطور
معمول "running"
است، اما
در صورتی
که صف در
حال
همگامسازی
باشد ممکن
است "{syncing,
message_count}"
باشد.
صفهایی که روی گرههای کلاسترِ در حال حاضر خاموش قرار دارند، با وضعیت "down" نشان داده خواهند شد (و بیشتر موارد دیگر queueinfoitem در دسترس نخواهند بود).
type- نوع صف، یکی از موارد: quorum، stream، classic.
اگر هیچ queueinfoitem مشخص نشده باشد، نام و عمق صف نمایش داده میشود.
برای نمونه، این دستور عمق و تعداد مصرفکنندگان را برای هر صف از میزبان مجازی به نام "my-vhost" نمایش میدهد:
rabbitmqctl list_queues -p my-vhost messages consumers list_unresponsive_queues[--local] [--queue-timeoutseconds] [queueinfoitem ...] [--no-table-headers]-
رونوشتهای لیدر صف را برای پاسخدهی در مهلت زمانی مشخصشده آزمایش میکند. صفهایی را که به موقع پاسخ ندادهاند فهرست میکند.
صفهای نمایش داده شده را میتوان بر اساس وضعیت یا مکان آنها با استفاده از یکی از گزینههای ناسازگار با هم (مانعةالجمع) زیر فیلتر کرد:
--all- تمام صفها را فهرست میکند.
--local- تنها صفهایی را فهرست میکند که رونوشت لیدر آنها روی گره فعلی قرار دارد.
پارامتر queueinfoitem برای نشان دادن اینکه کدام موارد اطلاعاتی صف در نتایج گنجانده شود، استفاده میشود. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. queueinfoitem میتواند هر مقداری از فهرست زیر را بگیرد:
name- نام صف همراه با گریز کاراکترهای غیر ASCII همانند C.
durable- آیا صف باید پس از راهاندازی مجدد سرور باقی بماند یا خیر.
auto_delete- آیا هنگامی که تمام پیوندهای صریح صف حذف شوند، صف بهطور خودکار حذف خواهد شد یا خیر.
arguments- آرگومانهای صف.
policy- نام پالیسی مؤثر برای صف.
pid- شناسه فرایند Erlang رونوشت لیدر.
recoverable_mirrors- شناسههای فرایند Erlang رونوشتهای آینهای که قابل دستیابی (در دسترس) تلقی میشوند.
type- نوع صف، یکی از موارد: quorum، stream، classic.
برای نمونه، این دستور تنها صفهای بدون پاسخی را فهرست میکند که رونوشت لیدر آنها روی گره هدف میزبانی شده است:
rabbitmqctl list_unresponsive_queues --local name ping-
بررسی میکند که فرایند سیستمعامل گره فعال باشد، در EPMD ثبت شده باشد، و ابزارهای CLI بتوانند در آن احراز هویت شوند.
نمونه:
rabbitmqctl ping -n rabbit@hostname report-
یک گزارش وضعیت سرور شامل الحاق تمام اطلاعات وضعیت سرور برای مقاصد پشتیبانی تولید میکند. هنگام همراه کردن با یک درخواست پشتیبانی، خروجی باید به یک فایل هدایت شود.
برای نمونه، این دستور یک گزارش سرور ایجاد میکند که ممکن است به ایمیل درخواست پشتیبانی پیوست شود:
rabbitmqctl report > server_report.txt schema_info[--no-table-headers] [column ...]-
جداول پایگاه داده اسکِما و ویژگیهای آنها را فهرست میکند.
برای نمونه، این دستور نام جداول و رونوشتهای فعال آنها را فهرست میکند:
rabbitmqctl schema_info name active_replicas status-
اطلاعات وضعیت کارگزار را نمایش میدهد، مانند برنامههای در حال اجرا روی گره فعلی Erlang، نسخههای RabbitMQ و Erlang، نام سیستمعامل، و آمار حافظه و توصیفکنندههای فایل. (برای اطلاع از اینکه کدام گرهها کلاستر شده و در حال اجرا هستند، به دستور
cluster_statusمراجعه کنید.)برای نمونه، این دستور اطلاعات مربوط به کارگزار RabbitMQ را نمایش میدهد:
rabbitmqctl status
پارامترهای زمان اجرا و خطمشیها (Runtime Parameters and Policies)
برخی از ویژگیهای RabbitMQ (مانند افزونه Federation) توسط پارامترهای پویای سراسر کلاستر کنترل میشوند. دو نوع پارامتر وجود دارد: پارامترهای محدود به یک میزبان مجازی و پارامترهای سراسری. هر پارامتر محدود به vhost شامل یک نام مؤلفه، یک نام و یک مقدار است. نام مؤلفه و نام رشته هستند و مقدار یک سند معتبر JSON است. یک پارامتر سراسری شامل یک نام و مقدار است. نام یک رشته و مقدار یک ساختار داده اختیاری Erlang است. پارامترها را میتوان تنظیم، پاک و فهرست کرد. به طور کلی، برای مشاهده نحوه تنظیم پارامترها باید به مستندات ویژگی مورد نظر مراجعه کنید.
خطمشیها (Policies) ویژگیای هستند که بر روی پارامترهای زمان اجرا ساخته شدهاند. خطمشیها برای کنترل و تغییر رفتار صفها و مبادلهها در سطح کلاستر استفاده میشوند. خطمشیها در یک vhost مشخص اعمال میشوند و شامل نام، الگو، تعریف و یک اولویت اختیاری هستند. خطمشیها را میتوان تنظیم، پاک و فهرست کرد.
clear_global_parametername-
یک پارامتر زمان اجرای سراسری را پاک میکند. این دستور شبیه به
clear_parameterاست، اما جفت کلید-مقدار به یک میزبان مجازی متصل نیست.- name
- نام پارامتر زمان اجرای سراسری که پاک میشود.
برای مثال، این دستور پارامتر زمان اجرای سراسری "mqtt_default_vhosts" را پاک میکند:
rabbitmqctl clear_global_parameter mqtt_default_vhosts clear_parameter[-pvhost] component_name key-
یک پارامتر را پاک میکند.
- component_name
- نام مؤلفهای که پارامتر آن پاک میشود.
- name
- نام پارامتری که پاک میشود.
برای مثال، این دستور پارامتر "node01" را برای مؤلفه "federation-upstream" در میزبان مجازی پیشفرض پاک میکند:
rabbitmqctl clear_parameter federation-upstream node01 list_global_parameters-
تمام پارامترهای زمان اجرای سراسری را فهرست میکند. این دستور شبیه به
list_parametersاست، اما پارامترهای زمان اجرای سراسری به هیچ میزبان مجازی متصل نیستند.برای مثال، این دستور تمام پارامترهای سراسری را فهرست میکند:
rabbitmqctl list_global_parameters list_parameters[-pvhost]-
تمام پارامترهای یک میزبان مجازی را فهرست میکند.
برای مثال، این دستور تمام پارامترها را در میزبان مجازی پیشفرض فهرست میکند:
rabbitmqctl list_parameters set_global_parametername value-
یک پارامتر زمان اجرای سراسری را تنظیم میکند. این دستور شبیه به
set_parameterاست، اما جفت کلید-مقدار به یک میزبان مجازی متصل نیست.- name
- نام پارامتر زمان اجرای سراسری که تنظیم میشود.
- value
- مقدار پارامتر زمان اجرای سراسری، به صورت یک سند JSON. در اکثر پوستهها بسیار محتمل است که نیاز به نقلقول کردن آن داشته باشید.
برای مثال، این دستور پارامتر زمان اجرای سراسری "mqtt_default_vhosts" را روی سند JSON {"O=client,CN=guest":"/"} تنظیم میکند:
rabbitmqctl set_global_parameter mqtt_default_vhosts '{"O=client,CN=guest":"/"}' set_parameter[-pvhost] component_name name value-
یک پارامتر را تنظیم میکند.
- component_name
- نام مؤلفهای که پارامتر برای آن تنظیم میشود.
- name
- نام پارامتری که تنظیم میشود.
- value
- مقدار پارامتر، به صورت یک سند JSON. در اکثر پوستهها بسیار محتمل است که نیاز به نقلقول کردن آن داشته باشید.
برای مثال، این دستور پارامتر "node01" را برای مؤلفه "federation-upstream" در میزبان مجازی پیشفرض روی JSON زیر تنظیم میکند: "guest":
rabbitmqctl set_parameter federation-upstream node01 '{"uri":"amqp://user:password@server/%2F","ack-mode":"on-publish"}' list_policies[-pvhost]-
تمام خطمشیهای یک میزبان مجازی را فهرست میکند.
برای مثال، این دستور تمام خطمشیها را در میزبان مجازی پیشفرض فهرست میکند:
rabbitmqctl list_policies set_operator_policy[-pvhost] [--prioritypriority] [--apply-toapply-to] name pattern definition-
یک خطمشی عملگر (operator policy) تنظیم میکند که زیرمجموعهای از آرگومانها را در خطمشیهای کاربر لغو میکند. آرگومانها با آرگومانهای
set_policyیکسان هستند.آرگومانهای پشتیبانیشده عبارتند از:
- expires
- message-ttl
- max-length
- max-length-bytes
set_policy[-pvhost] [--prioritypriority] [--apply-toapply-to] name pattern definition-
یک خطمشی را تنظیم میکند.
- name
- نام خطمشی.
- pattern
- عبارت باقاعده (regular expression) که در صورت تطابق با نام منبع، اجازه اعمال خطمشی را میدهد.
- definition
- تعریف خطمشی، به صورت یک سند JSON. در اکثر پوستهها بسیار محتمل است که نیاز به نقلقول کردن آن داشته باشید.
- priority
- اولویت خطمشی به صورت یک عدد صحیح. اعداد بزرگتر اولویت بیشتری را نشان میدهند. مقدار پیشفرض 0 است.
- apply-to
- انواعی از
اشیاء که
این
خطمشی
باید روی
آنها
اعمال شود.
مقادیر
ممکن
عبارتند
از:
- queues (همه انواع صف، از جمله streams)
- classic_queues (فقط صفهای classic)
- quorum_queues (فقط صفهای quorum)
- streams (فقط streams)
- exchanges
- all
allاست.
برای مثال، این دستور خطمشی "federate-me" را در میزبان مجازی پیشفرض تنظیم میکند تا مبادلههای توکار به صورت فدراسیونی پیکربندی شوند:
rabbitmqctl set_policy federate-me ^amq. '{"federation-upstream-set":"all"}' clear_policy[-pvhost] name-
یک خطمشی را پاک میکند.
- name
- نام خطمشی که پاک میشود.
برای مثال، این دستور خطمشی "federate-me" را در میزبان مجازی پیشفرض پاک میکند:
rabbitmqctl clear_policy federate-me clear_operator_policy[-pvhost] name-
یک خطمشی عملگر را پاک میکند. آرگومانها با آرگومانهای
clear_policyیکسان هستند. list_operator_policies[-pvhost]-
لغوهای خطمشی عملگر را برای یک میزبان مجازی فهرست میکند. آرگومانها با آرگومانهای
list_policiesیکسان هستند.
میزبانهای مجازی (Virtual hosts)
توجه
داشته
باشید که
پایگاه
داده داخلی
کاربران RabbitMQ
را مدیریت
میکند.
مجوزهای
کاربران از
هر بکاند
احراز هویت
دیگر برای
قابل
مشاهده
نخواهد
بود.
add_vhostvhost [--descriptiondesc--tagstags--default-queue-typedefault-q-type]-
- vhost
- نام ورودی میزبان مجازی جهت ایجاد.
- desc
- توضیحات اختیاری میزبان مجازی، مثلاً هدف آن، برای راحتی اپراتور.
- tags
- فهرستی از برچسبهای میزبان مجازی جداشده با کاما برای راحتی اپراتور.
- default-q-type
- اگر کلاینتها نوع صف را صراحتاً مشخص نکنند، از این نوع استفاده خواهد شد. یکی از: quorum، stream.
یک میزبان مجازی ایجاد میکند.
برای مثال، این دستور به کارگزار RabbitMQ دستور میدهد که یک میزبان مجازی جدید به نام "project9_dev_18" ایجاد کند:
rabbitmqctl add_vhost project9_dev_18 --description 'Dev environment no. 18' --tags dev,project9 clear_vhost_limits[-pvhost]-
محدودیتهای میزبان مجازی را پاک میکند.
برای مثال، این دستور محدودیتهای vhost را در میزبان مجازی "qa_env" پاک میکند:
rabbitmqctl clear_vhost_limits -p qa_env delete_vhostvhost-
- vhost
- نام ورودی میزبان مجازی جهت حذف.
یک میزبان مجازی را حذف میکند.
حذف یک میزبان مجازی باعث حذف تمام مبادلهها، صفها، اتصالات (bindings)، مجوزهای کاربر، پارامترها و خطمشیهای آن میشود.
برای مثال، این دستور به کارگزار RabbitMQ دستور میدهد تا میزبان مجازی با نام "test" را حذف کند:
rabbitmqctl delete_vhost a-vhost list_vhost_limits[-pvhost] [--global] [--no-table-headers]-
محدودیتهای پیکربندیشده میزبان مجازی را نمایش میدهد.
--global- محدودیتها
را برای
تمام vhostها
نمایش
میدهد.
پارامتر
-pرا نادیده میگیرد.
restart_vhost[-pvhost]-
- vhost
- نام ورودی میزبان مجازی برای راهاندازی مجدد، با مقدار پیشفرض "/".
فروشگاههای داده و صفهای شکستخورده یک vhost را مجدداً راهاندازی میکند.
برای مثال، این دستور به کارگزار RabbitMQ دستور میدهد تا میزبان مجازی به نام "test" را مجدداً راهاندازی کند:
rabbitmqctl restart_vhost test set_vhost_limits[-pvhost] definition-
محدودیتهای میزبان مجازی را تنظیم میکند.
- definition
- تعریف
محدودیتها،
به صورت یک
سند JSON. در
اکثر
پوستهها
بسیار
محتمل است
که نیاز به
نقلقول
کردن آن
داشته
باشید.
محدودیتهای شناختهشده عبارتند از:
- max-connections
- max-queues
از یک مقدار منفی برای مشخص کردن «بدون محدودیت» استفاده کنید.
برای مثال، این دستور حداکثر تعداد اتصالات همزمان را در vhost با نام "qa_env" به 64 محدود میکند:
rabbitmqctl set_vhost_limits -p qa_env '{"max-connections": 64}'این دستور حداکثر تعداد صفها را در vhost با نام "qa_env" به 256 محدود میکند:
rabbitmqctl set_vhost_limits -p qa_env '{"max-queues": 256}'این دستور محدودیت حداکثر تعداد اتصالات را در vhost با نام "qa_env" پاک میکند:
rabbitmqctl set_vhost_limits -p qa_env '{"max-connections": -1}'این دستور اتصالات کلاینت را در vhost با نام "qa_env" غیرفعال میکند:
rabbitmqctl set_vhost_limits -p qa_env '{"max-connections": 0}' set_user_limitsusername definition-
محدودیتهای کاربر را تنظیم میکند.
- username
- نام کاربری که محدودیتها روی آن اعمال میشود
- definition
- تعریف
محدودیتها،
به صورت یک
سند JSON. در
اکثر
پوستهها
بسیار
محتمل است
که نیاز به
نقلقول
کردن آن
داشته
باشید.
محدودیتهای شناختهشده عبارتند از:
- max-connections
- max-channels
از یک مقدار منفی برای مشخص کردن «بدون محدودیت» استفاده کنید.
برای مثال، این دستور حداکثر تعداد اتصالات همزمانی را که کاربر "limited_user" مجاز به باز کردن است به 64 محدود میکند:
rabbitmqctl set_user_limits limited_user '{"max-connections": 64}'این دستور حداکثر تعداد کانالهایی را که یک کاربر مجاز است روی یک اتصال باز کند برای کاربر "limited_user" به 16 محدود میکند:
rabbitmqctl set_user_limits limited_user '{"max-channels": 16}'این دستور محدودیت حداکثر تعداد اتصالات را برای کاربر "limited_user" پاک میکند:
rabbitmqctl set_user_limits limited_user '{"max-connections": 0}' clear_user_limitsusername limit-
محدودیتهای کاربر را پاک میکند.
- username
- نام کاربری که محدودیتهای آن پاک میشود
- limit
- نام محدودیت یا "all" برای پاک کردن یکباره همه محدودیتها.
محدودیتهای شناختهشده عبارتند از:
- max-connections
- max-channels
برای مثال، این دستور محدودیتهای حداکثر اتصال کاربر "limited_user" را پاک میکند:
rabbitmqctl clear_user_limits limited_user 'max-connections'این دستور تمام محدودیتهای کاربر "limited_user" را پاک میکند:
rabbitmqctl clear_user_limits limited_user all trace_off[-pvhost]-
- vhost
- نام میزبان مجازی که ردیابی برای آن متوقف میشود.
ردیابی را متوقف میکند.
trace_on[-pvhost]-
- vhost
- نام میزبان مجازی که ردیابی برای آن شروع میشود.
ردیابی را شروع میکند. توجه داشته باشید که وضعیت ردیابی ماندگار نیست؛ در صورت راهاندازی مجدد نود به حالت غیرفعال بازمیگردد.
پیکربندی (Configuration)
decodevalue passphrase [--ciphercipher] [--hashhash] [--iterationsiterations]-
- value passphrase
- مقدار
رمزگشایی
(تولیدشده
توسط
دستور encode) و
عبارت
عبور.
برای مثال:
rabbitmqctl decode '{encrypted, <<"...">>}' mypassphrase --ciphercipher--hashhash--iterationsiterations- گزینههایی
برای مشخص
کردن
تنظیمات
رمزگشایی.
آنها
میتوانند
به صورت
مستقل
استفاده
شوند.
برای مثال:
rabbitmqctl decode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 '{encrypted,<<"...">>} mypassphrase
encodevalue passphrase [--ciphercipher] [--hashhash] [--iterationsiterations]-
- value passphrase
- مقدار
برای
رمزگذاری
و عبارت
عبور.
برای مثال:
rabbitmqctl encode '<<"guest">>' mypassphrase --ciphercipher--hashhash--iterationsiterations- گزینههایی
برای مشخص
کردن
تنظیمات
رمزگذاری.
آنها
میتوانند
به صورت
مستقل
استفاده
شوند.
برای مثال:
rabbitmqctl encode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 '<<"guest">>' mypassphrase
set_cluster_namename-
نام کلاستر را روی name تنظیم میکند. نام کلاستر در هنگام اتصال به کلاینتها اعلام میشود و توسط افزونههای federation و shovel برای ثبت اینکه یک پیام در کجا بوده است استفاده میشود. نام کلاستر به طور پیشفرض از نام میزبان اولین نود در کلاستر گرفته میشود اما قابل تغییر است.
برای مثال، این دستور نام کلاستر را روی "london" تنظیم میکند:
rabbitmqctl set_cluster_name london set_disk_free_limitdisk_limit-
- disk_limit
- حد آستانه پایین به عنوان یک عدد صحیح بر حسب بایت یا یک رشته با نماد واحد حافظه (نگاه کنید به vm_memory_high_watermark)، به عنوان مثال 512M یا 1G. به محض اینکه فضای خالی دیسک به این حد برسد، یک هشدار دیسک تنظیم خواهد شد.
set_disk_free_limit mem_relativefraction-
- fraction
- حد نسبت به کل حافظه RAM موجود به عنوان یک عدد اعشاری غیر منفی. مقادیر کمتر از 1.0 میتوانند خطرناک باشند و باید با احتیاط استفاده شوند.
set_log_level[log_level]-
سطح گزارشگیری (log level) را در نود در حال اجرا تنظیم میکند
مقادیر پشتیبانیشده log_level عبارتند از:
- debug
- info
- warning
- error
- critical
- none
مثال:
rabbitmqctl set_log_level debug set_vm_memory_high_watermarkfraction-
- fraction
- کسر آستانه حافظه جدید که در آن کنترل جریان (flow control) فعال میشود، به صورت یک عدد اعشاری بزرگتر یا مساوی 0.
set_vm_memory_high_watermark[absolute] memory_limit-
- memory_limit
- حد حافظه جدید که در آن کنترل جریان فعال میشود، به صورت بایت به عنوان یک عدد صحیح بزرگتر یا مساوی 0 یا به صورت یک رشته با نماد واحد حافظه بیان میشود (به عنوان مثال 512M یا 1G). نمادهای واحد موجود عبارتند از:
پرچمهای ویژگی (Feature flags)
enable_feature_flagfeature_flag-
یک پرچم ویژگی را در نود مقصد فعال میکند.
مثال:
rabbitmqctl enable_feature_flag restart_streamsشما همچنین میتوانید با مشخص کردن "all" تمام پرچمهای ویژگی را فعال کنید:
rabbitmqctl enable_feature_flag all list_feature_flags[column ...]-
پرچمهای ویژگی را فهرست میکند
مقادیر پشتیبانیشده column عبارتند از:
- name
- state
- stability
- provided_by
- desc
- doc_url
مثال:
rabbitmqctl list_feature_flags name state
عملیات اتصال (Connection Operations)
close_all_connections[-pvhost] [--global] [--per-connection-delaydelay] [--limitlimit] explanation-
-pvhost- نام
میزبان
مجازی که
اتصالات
آن باید
بسته شود.
هنگامی که
--globalمشخص شده باشد نادیده گرفته میشود. --global- آیا
اتصالات
باید برای
تمام vhostها
بسته شوند.
روی
-pاولویت دارد. --per-connection-delaydelay- مدت زمان بر حسب میلیثانیه برای انتظار پس از بسته شدن هر اتصال.
--limitlimit- تعداد
اتصالاتی
که باید
بسته شوند.
فقط به
ازای هر vhost
کار
میکند.
هنگامی که
--globalمشخص شده باشد نادیده گرفته میشود. - explanation
- رشته توضیحات.
به کارگزار دستور میدهد که تمام اتصالات را برای vhost مشخصشده یا کل نود RabbitMQ ببندد.
برای مثال، این دستور به کارگزار RabbitMQ دستور میدهد تا 10 اتصال را در vhost با نام "qa_env" با ارسال توضیح "Please close" ببندد:
rabbitmqctl close_all_connections -p qa_env --limit 10 'Please close'این دستور به کارگزار دستور میدهد تا تمام اتصالات به نود را ببندد:
rabbitmqctl close_all_connections --global close_connectionconnectionpid explanation-
- connectionpid
- شناسه فرآیند Erlang مرتبط با اتصالی که باید بسته شود.
- explanation
- رشته توضیحات.
به کارگزار دستور میدهد که اتصال مرتبط با شناسه فرآیند Erlang connectionpid (همچنین به دستور
list_connectionsمراجعه کنید) را ببندد و رشته explanation را به عنوان بخشی از پروتکل قطع اتصال AMQP به کلاینت متصل ارسال کند.برای مثال، این دستور به کارگزار RabbitMQ دستور میدهد تا اتصال مرتبط با شناسه فرآیند Erlang "<rabbit@tanto.4262.0>" را با ارسال توضیح "go away" به کلاینت متصل ببندد:
rabbitmqctl close_connection "<rabbit@tanto.4262.0>" "go away"
متفرقه (Misc)
evalexpression-
یک عبارت Erlang را در نود مقصد ارزیابی میکند
عملیات صف (Queue Operations)
delete_queuequeue_name [--if-empty|-e] [--if-unused|-u]-
- queue_name
- نام صف جهت حذف.
- --if-empty
- صف را در صورتی حذف کند که خالی باشد (هیچ پیامی آماده تحویل نداشته باشد)
- --if-unused
- صف را فقط در صورتی حذف کند که مصرفکنندهای نداشته باشد
یک صف را حذف میکند.
purge_queue[-pvhost] queue-
- queue
- نام صف جهت پاکسازی.
یک صف را پاکسازی میکند (تمام پیامهای موجود در آن را حذف میکند).
دستورهای افزونه (PLUGIN COMMANDS)
افزونههای
RabbitMQ در صورت
فعال بودن
میتوانند
ابزار rabbitmqctl را
برای
افزودن
دستورات
جدید گسترش
دهند.
دستورات در
دسترس فعلی
را میتوان
در خروجی
rabbitmqctl help یافت.
دستورات
زیر توسط
افزونههای
RabbitMQ که در
توزیع
پیشفرض در
دسترس
هستند
اضافه
میشوند:
افزونه Shovel (Shovel plugin)
shovel_status- فهرستی از Shovelهای پیکربندیشده را چاپ میکند
delete_shovel[-pvhost] name- به نود RabbitMQ دستور میدهد تا shovel پیکربندیشده را بر اساس name حذف کند.
افزونه Federation (Federation plugin)
federation_status[--only-down]- فهرستی از
پیوندهای
federation را چاپ
میکند.
--only-down- تنها پیوندهای federation که در حال اجرا نیستند را فهرست میکند.
restart_federation_linklink_id- به نود RabbitMQ دستور میدهد تا پیوند federation با link_id مشخصشده را مجدداً راهاندازی کند.
افزونه AMQP 1.0 (AMQP 1.0 plugin)
list_amqp10_connections[amqp10_connectioninfoitem ...]- مشابه
دستور
list_connectionsاست، اما فیلدهایی را برمیگرداند که برای اتصالات AMQP-1.0 معنادار هستند. پارامتر amqp10_connectioninfoitem برای نشان دادن این موضوع استفاده میشود که کدام موارد اطلاعات اتصال در نتایج گنجانده شوند. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. amqp10_connectioninfoitem میتواند هر مقداری را از فهرستی که در ادامه میآید داشته باشد:pid- شناسه فرآیند Erlang مرتبط با اتصال.
auth_mechanism- مکانیسم احراز هویت SASL استفادهشده، مانند "PLAIN".
host- نام میزبان سرور دریافتشده از طریق DNS معکوس، یا آدرس IP آن در صورتی که DNS معکوس با شکست مواجه شده یا خاموش باشد.
frame_max- حداکثر اندازه فریم (بایت).
timeout- مهلت زمانی اتصال / بازه زمانی ضربان قلب (heartbeat) توافقشده، بر حسب ثانیه.
user- نام کاربری مرتبط با اتصال.
state- وضعیت
اتصال؛
یکی از
موارد زیر:
- starting
- waiting_amqp0100
- securing
- running
- blocking
- blocked
- closing
- closed
recv_oct- اکتتهای دریافتشده.
recv_cnt- بستههای دریافتشده.
send_oct- اکتتهای ارسالشده.
send_cnt- بستههای ارسالشده.
ssl- یک مقدار بولی که نشان میدهد آیا اتصال با SSL امن شده است یا خیر.
ssl_protocol- پروتکل SSL (به عنوان مثال "tlsv1").
ssl_key_exchange- الگوریتم تبادل کلید SSL (به عنوان مثال "rsa").
ssl_cipher- الگوریتم رمزنگاری SSL (به عنوان مثال "aes_256_cbc").
ssl_hash- تابع درهمساز SSL (به عنوان مثال "sha").
peer_cert_subject- موضوع گواهی SSL طرف مقابل، در قالب RFC4514.
peer_cert_issuer- صادرکننده گواهی SSL طرف مقابل، در قالب RFC4514.
peer_cert_serial_number- شماره سریال گواهی SSL طرف مقابل، به صورت هگزادسیمال.
peer_cert_validity- دورهای که گواهی SSL طرف مقابل در آن معتبر است.
node- نام نود RabbitMQ که اتصال به آن برقرار شده است.
افزونه MQTT (MQTT plugin)
list_mqtt_connections[mqtt_connectioninfoitem]- مشابه
دستور
list_connectionsاست، اما فیلدهایی را برمیگرداند که برای اتصالات MQTT معنادار هستند. پارامتر mqtt_connectioninfoitem برای نشان دادن این موضوع استفاده میشود که کدام موارد اطلاعات اتصال در نتایج گنجانده شوند. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. mqtt_connectioninfoitem میتواند هر مقداری را از فهرستی که در ادامه میآید داشته باشد:host- نام میزبان سرور دریافتشده از طریق DNS معکوس، یا آدرس IP آن در صورتی که DNS معکوس با شکست مواجه شده یا خاموش باشد.
port- پورت سرور.
peer_host- نام میزبان طرف مقابل دریافتشده از طریق DNS معکوس، یا آدرس IP آن در صورتی که DNS معکوس با شکست مواجه شده یا فعال نباشد.
peer_port- پورت طرف مقابل.
protocol- نسخه
پروتکل MQTT،
که
میتواند
یکی از
موارد زیر
باشد:
- {'MQTT', N/A}
- {'MQTT', 3.1.0}
- {'MQTT', 3.1.1}
channels- تعداد کانالهایی که از این اتصال استفاده میکنند.
channel_max- حداکثر تعداد کانالها روی این اتصال.
frame_max- حداکثر اندازه فریم (بایت).
client_properties- ویژگیهای اطلاعاتی ارسالشده توسط کلاینت در طول برقراری اتصال.
ssl- یک مقدار بولی که نشان میدهد آیا اتصال با SSL امن شده است یا خیر.
ssl_protocol- پروتکل SSL (به عنوان مثال "tlsv1").
ssl_key_exchange- الگوریتم تبادل کلید SSL (به عنوان مثال "rsa").
ssl_cipher- الگوریتم رمزنگاری SSL (به عنوان مثال "aes_256_cbc").
ssl_hash- تابع درهمساز SSL (به عنوان مثال "sha").
conn_name- نام خوانا برای اتصال.
connection_state- وضعیت
اتصال؛
یکی از
موارد زیر:
- starting
- running
- blocked
connection- شناسه فرآیند Erlang مرتبط با اتصال مستقیم داخلی amqp.
- یک تاپل از برچسبهای مصرفکننده برای QOS0 و QOS1.
message_id- آخرین شناسه بسته (Packet ID) ارسالشده در یک پیام کنترلی.
client_id- شناسه کلاینت MQTT برای اتصال.
clean_sess- پرچم نشست پاک (clean session) پروتکل MQTT.
will_msg- پیام وصیت (Will message) پروتکل MQTT ارسالشده در فریم CONNECT.
exchange- مبادله برای هدایت پیامهای MQTT پیکربندیشده در محیط برنامه rabbitmq_mqtt.
ssl_login_name- نام احراز هویت گواهی طرف مقابل SSL
retainer_pid- شناسه فرآیند Erlang مرتبط با فضای ذخیرهسازی نگهداری (retain) برای اتصال.
user- نام کاربری مرتبط با اتصال.
vhost- نام میزبان مجازی که کاراکترهای غیر ASCII آن مانند زبان C گریز داده شدهاند (escaped).
decommission_mqtt_node- پیش از
غیرفعال
شدن این
افزونه روی
یک نود، یا
حذف شدن یک
نود از
کلاستر،
باید از رده
خارج (decommission) شود.
برای مثال، این دستور نود rabbit@stringer را حذف خواهد کرد:
rabbitmqctl decommission_mqtt_node rabbit@stringer
افزونه STOMP (STOMP plugin)
list_stomp_connections[stomp_connectioninfoitem]- مشابه
دستور
list_connectionsاست، اما فیلدهایی را برمیگرداند که برای اتصالات STOMP معنادار هستند. پارامتر stomp_connectioninfoitem برای نشان دادن این موضوع استفاده میشود که کدام موارد اطلاعات اتصال در نتایج گنجانده شوند. ترتیب ستونها در نتایج با ترتیب پارامترها مطابقت خواهد داشت. stomp_connectioninfoitem میتواند هر مقداری را از فهرستی که در ادامه میآید داشته باشد:conn_name- نام خوانا برای اتصال.
connection- شناسه فرآیند Erlang مرتبط با اتصال مستقیم داخلی amqp.
connection_state- وضعیت
اتصال؛
یکی از
موارد زیر:
- running
- blocking
- blocked
session_id- شناسه نشست پروتکل STOMP
channel- کانال AMQP مرتبط با اتصال
version- نسخه پروتکل STOMP توافقشده برای اتصال.
implicit_connect- نشان میدهد که آیا اتصال با استفاده از اتصال ضمنی (بدون فریم CONNECT) برقرار شده است یا خیر
auth_login- نام کاربری مؤثر برای اتصال.
auth_mechanism- مکانیسم
مجوزدهی STOMP.
میتواند
یکی از
موارد زیر
باشد:
- config
- ssl
- stomp_headers
port- پورت سرور.
host- نام میزبان سرور دریافتشده از طریق DNS معکوس، یا آدرس IP آن در صورتی که DNS معکوس با شکست مواجه شده یا فعال نباشد.
peer_port- پورت طرف مقابل.
peer_host- نام میزبان طرف مقابل دریافتشده از طریق DNS معکوس، یا آدرس IP آن در صورتی که DNS معکوس با شکست مواجه شده یا فعال نباشد.
protocol- نسخه
پروتکل STOMP،
که
میتواند
یکی از
موارد زیر
باشد:
- {'STOMP', 0}
- {'STOMP', 1}
- {'STOMP', 2}
channels- تعداد کانالهایی که از این اتصال استفاده میکنند.
channel_max- حداکثر تعداد کانالها روی این اتصال.
frame_max- حداکثر اندازه فریم (بایت).
client_properties- ویژگیهای اطلاعاتی ارسالشده توسط کلاینت در طول برقراری اتصال
ssl- یک مقدار بولی که نشان میدهد آیا اتصال با SSL امن شده است یا خیر.
ssl_protocol- پروتکل TLS (به عنوان مثال "tlsv1").
ssl_key_exchange- الگوریتم تبادل کلید TLS (به عنوان مثال "rsa").
ssl_cipher- الگوریتم رمزنگاری TLS (به عنوان مثال "aes_256_cbc").
ssl_hash- تابع درهمساز SSL (به عنوان مثال "sha").
افزونه Management agent (Management agent plugin)
reset_stats_db[--all]- پایگاه
داده آمار
مدیریت را
برای نود RabbitMQ
بازنشانی
میکند.
--all- پایگاه داده آمار را برای تمام نودهای موجود در کلاستر بازنشانی میکند.
همچنین ببینید (SEE ALSO)
rabbitmq-diagnostics(8), rabbitmq-plugins(8), rabbitmq-server(8), rabbitmq-queues(8), rabbitmq-streams(8), rabbitmq-upgrade(8), rabbitmq-service(8), rabbitmq-env.conf(5)
نویسنده (AUTHOR)
The RabbitMQ Team <contact-tanzu-data.pdl@broadcom.com>
| June 22, 2023 | RabbitMQ Server |