RABBITMQ-DIAGNOSTICS(8) System Manager's Manual RABBITMQ-DIAGNOSTICS(8)
rabbitmq-diagnostics - ابزارهای عیب‌یابی، پایش و بررسی سلامت RabbitMQ

[-q] [-s] [-l] [-n node] [-t timeout] command [command_options]

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

به مدیر سیستم امکان بازرسی وضعیت گره و خوشه را می‌دهد. تعدادی از بررسی‌های سلامت به صورت تعاملی و توسط ابزارهای پایش در دسترس هستند.

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

node
گره پیش‌فرض "rabbit@target-hostname" است، که در آن target-hostname میزبان محلی است. در میزبانی با نام "myserver.example.com" نام گره معمولاً "rabbit@myserver" خواهد بود (مگر اینکه RABBITMQ_NODENAME بازنویسی شده باشد). خروجی "hostname -s" معمولاً پسوند صحیح برای استفاده پس از علامت "@" است. برای جزئیات پیکربندی یک گره RabbitMQ، به rabbitmq-server(8) مراجعه کنید.
, --quiet
حالت خروجی ساکت (بی‌صدا) انتخاب می‌شود. هنگامی که حالت ساکت فعال است، پیام‌های اطلاع‌رسانی کاهش می‌یابند.
, --silent
حالت خروجی کاملاً خاموش انتخاب می‌شود. هنگامی که حالت خاموش فعال است، پیام‌های اطلاع‌رسانی کاهش یافته و سرصفحه جدول‌ها نمایش داده نمی‌شوند.
timeout, --timeout timeout
زمان مهلت مجاز عملیات بر حسب ثانیه. همه دستورات از مهلت زمانی پشتیبانی نمی‌کنند. مقدار پیش‌فرض infinity است.
, --longnames
هنگامی که خوشه برای استفاده از نام‌های گره طولانی (FQDN) پیکربندی شده است، باید مشخص شود. برای کسب اطلاعات بیشتر، به راهنمای خوشه‌بندی RabbitMQ مراجعه کنید.
راز مشترک (کوکی) مورد استفاده برای احراز هویت در گره مقصد. ترجیحاً به جای تعیین این گزینه در خط فرمان، از یک فایل محلی یا متغیر محیطی RABBITMQ_ERLANG_COOKIE استفاده کنید. برای کسب اطلاعات بیشتر، به راهنمای ابزارهای خط فرمان RabbitMQ مراجعه کنید.

بیشتر دستورات ارائه‌شده توسط وضعیت گره و خوشه را بازرسی می‌کنند یا بررسی‌های سلامت را انجام می‌دهند.

دستوراتی که موجودیت‌های توپولوژی (مانند صف‌ها) را فهرست می‌کنند از نویسه تب به عنوان جداکننده ستون‌ها استفاده می‌نمایند. این دستورات و آرگومان‌های آن‌ها به rabbitmqctl(8) واگذار می‌شوند.

برخی دستورات ( list_queues, list_exchanges, list_bindings و list_consumers) یک پارامتر اختیاری vhost را می‌پذیرند.

دستورات list_queues, list_exchanges و list_bindings یک پارامتر اختیاری میزبان مجازی را برای نمایش نتایج آن می‌پذیرند. مقدار پیش‌فرض "/" است.

[-l] [command_name]

نحوه استفاده از تمام دستورات موجود را چاپ می‌کند.

, --list-commands
فقط نحوه استفاده از دستورات را بدون توضیح پارامترها فهرست می‌کند.
command_name
نحوه استفاده از دستور مشخص‌شده را چاپ می‌کند.

نسخه ابزارهای خط فرمان را نمایش می‌دهد.

به wait در rabbitmqctl(8) مراجعه کنید.

به cluster_status در rabbitmqctl(8) مراجعه کنید.

به list_users در rabbitmqctl(8) مراجعه کنید.

[-p vhost]

به list_permissions در rabbitmqctl(8) مراجعه کنید.

[-p vhost]

به list_topic_permissions در rabbitmqctl(8) مراجعه کنید.

username

به list_user_permissions در rabbitmqctl(8) مراجعه کنید.

username

به list_user_topic_permissions در rabbitmqctl(8) مراجعه کنید.

[vhostinfoitem ...]

به list_vhosts در rabbitmqctl(8) مراجعه کنید.

هشدارهای منابع (در صورت وجود) در خوشه را فهرست می‌کند.

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

مثال:

rabbitmq-diagnostics alarms

گواهی‌های گره را برای هر شنونده‌ای در گره مقصد که برای استفاده از TLS پیکربندی شده است نمایش می‌دهد.

مثال:

rabbitmq-diagnostics certificates

بررسی سلامتی که در صورت وجود هشدارهای فعال روی هر یک از گره‌های خوشه با شکست مواجه می‌شود (با کدی غیرصفر بازمی‌گردد).

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

مثال:

rabbitmq-diagnostics check_alarms
[--unit time_unit] [--within seconds]

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

  • days
  • weeks
  • months
  • years

مثال:

rabbitmq-diagnostics check_certificate_expiration --unit weeks --within 6

بررسی سلامتی که در صورت وجود هشدارهای فعال روی گره مقصد با شکست مواجه می‌شود (با کدی غیرصفر بازمی‌گردد).

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

مثال:

rabbitmq-diagnostics check_local_alarms

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

این بررسی تنها پذیرش اتصال TCP جدید را اعتبارسنجی می‌کند و دست‌تکانی پروتکل پیام‌رسانی یا احراز هویت را انجام نمی‌دهد.

برای کسب اطلاعات بیشتر، به راهنمای شبکه‌سازی RabbitMQ مراجعه کنید.

مثال:

rabbitmq-diagnostics check_port_connectivity
port

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

برای کسب اطلاعات بیشتر، به راهنمای شبکه‌سازی RabbitMQ مراجعه کنید.

مثال:

rabbitmq-diagnostics check_port_listener 5672
protocol

بررسی سلامتی که در صورت نداشتن شنونده برای پروتکل مشخص‌شده در گره مقصد، با شکست مواجه می‌شود (با کدی غیرصفر بازمی‌گردد).

برای کسب اطلاعات بیشتر، به راهنمای شبکه‌سازی RabbitMQ مراجعه کنید.

مثال:

rabbitmq-diagnostics check_protocol_listener mqtt

بررسی سلامتی که در صورت در حال اجرا نبودن برنامه کاربردی RabbitMQ روی گره مقصد، با شکست مواجه می‌شود (با کدی غیرصفر بازمی‌گردد).

اگر از rabbitmqctl(8) برای متوقف کردن برنامه استفاده شده باشد، این بررسی با شکست مواجه خواهد شد.

مثال:

rabbitmq-diagnostics check_running

بررسی سلامتی که اجرا بودن تمام میزبان‌های مجازی (vhostها) در گره مقصد را بررسی می‌کند.

مثال:

rabbitmq-diagnostics check_virtual_hosts --timeout 60

مجموعه‌های رمزنگاری (cipher suites) فعال‌شده به‌صورت پیش‌فرض را فهرست می‌کند. برای فهرست کردن همه مجموعه‌های رمزنگاری موجود، آرگومان --all را اضافه کنید.

مثال:

rabbitmq-diagnostics cipher_suites --format openssl --all

آرگومان‌ها و فلگ‌های خط فرمان گره مقصد را همان‌گونه که توسط زمان اجرا گزارش شده است نمایش می‌دهد.

مثال:

rabbitmq-diagnostics command_line_arguments -n rabbit@hostname
[--duration seconds | -d seconds] [--pattern pattern] [--timeout milliseconds]

رویدادهای داخلی را از یک گره در حال اجرا جاری (استریم) می‌کند. خروجی با jq سازگار است.

مثال:

rabbitmq-diagnostics consume_event_stream -n rabbit@hostname --duration 20 --pattern queue_.*

یک کشف همتا (peer discovery) روی گره مقصد اجرا کرده و گره‌های کشف‌شده (در صورت وجود) را چاپ می‌کند.

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

مثال:

rabbitmq-diagnostics discover_peers --timeout 60
به environment در rabbitmqctl(8) مراجعه کنید.

یک مقدار درهم‌سازی‌شده (هش) از راز مشترک مورد استفاده توسط گره مقصد برای احراز هویت ابزارهای خط فرمان و همتاها را خروجی می‌دهد. این مقدار را می‌توان با هش موجود در پیام‌های خطای ابزارهای خط فرمان مقایسه کرد.

برای کسب اطلاعات بیشتر، به راهنمای خوشه‌بندی RabbitMQ مراجعه کنید.

مثال:

rabbitmq-diagnostics erlang_cookie_hash -q

نسخه Erlang/OTP گره مقصد را گزارش می‌دهد.

مثال:

rabbitmq-diagnostics erlang_version -q

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

مثال:

rabbitmq-diagnostics is_booting

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

مثال:

rabbitmq-diagnostics is_running
[-p vhost] [bindinginfoitem ...]

به list_bindings در rabbitmqctl(8) مراجعه کنید.

[channelinfoitem ...]

به list_channels در rabbitmqctl(8) مراجعه کنید.

به list_ciphers در rabbitmqctl(8) مراجعه کنید.

[connectioninfoitem ...]

به list_connections در rabbitmqctl(8) مراجعه کنید.

[-p vhost]

به list_consumers در rabbitmqctl(8) مراجعه کنید.

[-p vhost] [exchangeinfoitem ...]

به list_exchanges در rabbitmqctl(8) مراجعه کنید.

به list_hashes در rabbitmqctl(8) مراجعه کنید.

[-p vhost] [--offline | --online | --local] [queueinfoitem ...]

به list_queues در rabbitmqctl(8) مراجعه کنید.

[--local] [--queue-timeout milliseconds] [column ...] [--no-table-headers]

به list_unresponsive_queues در rabbitmqctl(8) مراجعه کنید.

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

برای کسب اطلاعات بیشتر، به راهنمای شبکه‌سازی RabbitMQ مراجعه کنید.

مثال:

rabbitmq-diagnostics listeners
[--number number | -N number [--timeout milliseconds]

تعداد N خط آخر گزارش رویداد (لاگ) روی گره را چاپ می‌کند.

مثال:

rabbitmq-diagnostics log_tail --number 100
]
 
[--duration seconds | -d seconds] [--timeout milliseconds]

گزارش‌های رویداد (لاگ‌ها) را از یک گره در حال اجرا برای مدت زمانی مشخص جاری (استریم) می‌کند.

مثال:

rabbitmq-diagnostics log_tail_stream --duration 60

به‌صورت دوره‌ای از ردپای پشته (stack trace) تمام فرآیندهای ارلنگ (Erlang) («نخ‌های سبک‌وزن») روی گره نمونه‌برداری می‌کند. فرآیندهایی را گزارش می‌دهد که نمونه‌های ردپای پشته آن‌ها یکسان است.

نمونه‌های یکسان ممکن است نشان‌دهنده عدم پیشرفت فرآیند باشد، اما لزوماً نشانه‌ای از بروز مشکل نیست.

مثال:

rabbitmq-diagnostics maybe_stuck -q
[--unit memory_unit]

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

  • bytes
  • megabytes
  • gigabytes
  • terabytes

برای کسب اطلاعات بیشتر، به راهنمای مصرف حافظه RabbitMQ مراجعه کنید.

مثال:

rabbitmq-diagnostics memory_breakdown --unit gigabytes
[--interval seconds]

یک واسط ناظر خط فرمان (CLI observer) را روی گره مقصد راه‌اندازی می‌کند.

مثال:

rabbitmq-diagnostics observer --interval 10

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

به report در rabbitmqctl(8) مراجعه کنید.

[--sample-interval interval]

فعالیت نخ‌های زمان اجرا (هسته) را به مدت interval ثانیه نمونه‌برداری کرده و آن را گزارش می‌دهد.

برای کارکرد این دستور، Erlang/OTP در گره مقصد باید با پشتیبانی از حسابداری ریزوضعیت (microstate accounting) کامپایل شده باشد و بسته runtime_tools در دسترس باشد.

مثال:

rabbitmq-diagnostics runtime_thread_stats --sample-interval 15
[--no_table_headers] [column ...] [--timeout milliseconds]

به schema_info در rabbitmqctl(8) مراجعه کنید.

نسخه گره مقصد را گزارش می‌دهد.

مثال:

rabbitmq-diagnostics server_version -q

به status در rabbitmqctl(8) مراجعه کنید.

تمام نسخه‌های TLS پشتیبانی‌شده توسط زمان اجرا در گره مقصد را فهرست می‌کند. توجه داشته باشید که RabbitMQ می‌تواند تنها برای پذیرش زیرمجموعه‌ای از این نسخه‌ها پیکربندی شود؛ به عنوان مثال، SSLv3 به‌طور پیش‌فرض غیرفعال است.

برای کسب اطلاعات بیشتر، به راهنمای TLS در RabbitMQ مراجعه کنید.

مثال:

rabbitmq-diagnostics tls_versions -q

به list_global_parameters در rabbitmqctl(8) مراجعه کنید.

[-p vhost]

به list_parameters در rabbitmqctl(8) مراجعه کنید.

[-p vhost]

به list_operator_policies در rabbitmqctl(8) مراجعه کنید.

[-p vhost]

به list_policies در rabbitmqctl(8) مراجعه کنید.

[--vhost vhost] [--global] [--no-table-headers]

به list_vhost_limits در rabbitmqctl(8) مراجعه کنید.

[--all | -a] [--timeout milliseconds]

مکان فایل(های) گزارش رویداد (لاگ) را در گره مقصد نمایش می‌دهد.

مثال:

rabbitmq-diagnostics log_location -a

[column ...] [--timeout milliseconds]

به list_feature_flags در rabbitmqctl(8) مراجعه کنید.

queue [--vhost vhost]

به quorum_status در rabbitmq-queues(8) مراجعه کنید.

به check_if_cluster_has_classic_queue_mirroring_policy در rabbitmq-queues(8) مراجعه کنید.

به check_if_node_is_quorum_critical در rabbitmq-queues(8) مراجعه کنید.

rabbitmqctl(8), rabbitmq-server(8), rabbitmq-queues(8), rabbitmq-streams(8), rabbitmq-upgrade(8), rabbitmq-service(8), rabbitmq-env.conf(5)

The RabbitMQ Team <contact-tanzu-data.pdl@broadcom.com>

June 22, 2023 RabbitMQ Server