欢迎您, 来到 宁时修博客.^_^

消息队列--RabbitMQ(四) 命令行管理

2018/07/02 林木立 MQ 1575
RabbitMQ 命令行管理

    RabbitMQ服务主要通过rabbitmqctl和rabbimq-plugins两个命令来管理,以下是一些常用功能。


一、启动与关闭


启动:(使rabbitmq-server后台运行)
rabbitmq-server -detached

关闭:
rabbitmqctl stop

    若单机有多个RabbitMQ实例,则在 rabbitmqctl 后加 –n 指定名称。


二、插件管理

插件列表:
rabbitmq-plugins list

启用一个或多个插件:
rabbitmq-plugins enable <plugin1> [ <plugin2>]

启用一个或多个插件:
rabbitmq-plugins disable <plugin1> [ <plugin2>]

启用一个或多个插件,禁用其余插件:
rabbitmq-plugins set <plugin1> [ <plugin2>]

    需要重启 RabbitMQ 才能生效。


三、virtual_host管理

新建virtual_host:
rabbitmqctl add_vhost xxx

撤销virtual_host:
rabbitmqctl delete_vhost xxx

查看所有virtual_host:
rabbitmqctl list_vhosts


四、用户管理

新建用户和密码:
rabbitmqctl add_user username password

删除用户:
rabbitmqctl delete_user username

查看当前用户列表:
rabbitmqctl list_users

修改密码:
rabbitmqctl change_password username newpassword

设置用户角色:
rabbitmqctl set_user_tags username tag


    tag 可以分为:

    administrator(超级管理员)

    monitoring(监视者)

    management(普通管理者)

    policymaker(策略制定者)

    none(其他,无法登陆管理控制台,通常就是普通的生产者和消费者)

    可以给同一用户设置多个角色

        

    简单描述:

    management:

    用户可以通过AMQP做任何事,加上:

    列出自己可以通过AMQP登入的virtual hosts,

    查看自己的virtual hosts中的queues, exchanges 和 bindings,

    查看和关闭自己的channels 和 connections,

    查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。


    policymaker:

    management可以做的任何事,加上:

    查看、创建和删除自己的virtual hosts所属的policies和parameters。


    monitoring:

    management可以做的任何事,加上:

    列出所有virtual hosts,包括他们不能登录的virtual hosts,

    查看其他用户的connections和channels,

    查看节点级别的数据如clustering和memory使用情况,

    查看真正的关于所有virtual hosts的全局的统计信息。


    administrator:

    policymaker和monitoring可以做的任何事,加上:

    创建和删除virtual hosts,

    查看、创建和删除users,

    查看创建和删除permissions,

    关闭其他用户的connections。


五、用户权限管理

    用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。

    

    比如:

    exchange和queue的declare与delete分别需要exchange和queue上的配置权限

    exchange的bind与unbind需要exchange的读写权限

    queue的bind与unbind需要queue写权限和exchange的读权限

    发消息(publish)需exchange的写权限

    获取或清除(get、consume、purge)消息需queue的读权限


    权限设置:set_permissions [-p <vhost>] <username> <conf> <write> <read>

    vhost:vhost路径

    username:用户名

    conf:一个正则表达式match哪些配置资源能够被该用户配置

    write:一个正则表达式match哪些配置资源能够被该用户写

    read:一个正则表达式match哪些配置资源能够被该用户读


    查看制定vhost的所有用户权限信息:rabbitmqctl list_permissions [-p <vhost>]

    查看指定用户的权限信息:rabbitmqctl list_user_permissions username

    清除用户的权限信息:rabbitmqctl  clear_permissions [-p vhost] <username>


    授权例子:

rabbitmqctl set_permissions -p vhostname username ".*" ".*" ".*"

        -p vhostname:set-permissions条目应该应用到哪个vhost

        username:指定了被授予权限的用户

        ".*"  ".*"  ".*" :这是被授予的权限。这些值分别代表 配置、写、读。

        ".*":匹配任何队列或者交换器的名字。

        "checks-.*":只匹配名字以"checks-"开头的队列和交换机。

        "":不匹配任何队列和交换器。


六、获取服务器状态信息

查看服务运行状态:
rabbitmqctl status

查看队列信息:
rabbitmqctl list_queues [-p <vhost>] [--online] [--offline] [--local] [<queueinfoitem> ...] [-t <timeout>]

queueinfoitem 可以分为:name,durable,auto_delete,arguments,messages_ready,messages_unacknowledged,messages,consumers,memory

查看Exchange信息:
rabbitmqctl list_exchanges [-p <vhost>] [<exchangeinfoitem> ...] [-t <timeout>]

exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments

查看Binding信息:
rabbitmqctl list_bindings [-p <vhost>] [<bindinginfoitem> ...] [-t <timeout>]

bindinginfootem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments

查看Connection信息:
rabbitmqctl list_connections [<connectioninfoitem> ...] [-t <timeout>]

connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等

查看Channel信息:
rabbitmqctl list_channels [<channelinfoitem> ...]

channelinfoitem有:consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked


七、管理命令参数

Usage

rabbitmqctl [--node <node>] [--timeout <timeout>] [--longnames] [--quiet] <command> [<command options>]

Available commands:

Help:

   help                          Displays usage information for a command
   version                       Displays CLI tools version

Nodes:

   await_startup                 Waits for the RabbitMQ application to start on the target node
   reset                         Instructs a RabbitMQ node to leave the cluster and eturn to its virgin state
   rotate_logs                   Instructs the RabbitMQ node to perform internal log rotation
   shutdown                      Stops RabbitMQ and its runtime (Erlang VM). Monitors progress for local nodes. Does not require a PID file path.
   start_app                     Starts the RabbitMQ application but leaves the runtime (Erlang VM) running
   stop                          Stops RabbitMQ and its runtime (Erlang VM). Requires a local node pid file path to monitor progress.
   stop_app                      Stops the RabbitMQ application, leaving the runtime (Erlang VM) running
   wait                          Waits for RabbitMQ node startup by monitoring a local PID file. See also 'rabbitmqctl await_online_nodes'

Cluster:

   await_online_nodes            Waits for <count> nodes to join the cluster
   change_cluster_node_type      Changes the type of the cluster node
   cluster_status                Displays all the nodes in the cluster grouped by node type, together with the currently running nodes
   force_boot                    Forces node to start even if it cannot contact or rejoin any of its previously known peers
   force_reset                   Forcefully returns a RabbitMQ node to its virgin state
   forget_cluster_node           Removes a node from the cluster
   join_cluster                  Instructs the node to become a member of the cluster that the specified node is in
   rename_cluster_node           Renames cluster nodes in the local database
   update_cluster_nodes          Instructs a cluster member node to sync the list of known cluster members from <seed_node>

Replication:

   cancel_sync_queue             Instructs a synchronising mirrored queue to stop synchronising itself
   sync_queue                    Instructs a mirrored queue with unsynchronised mirrors (follower replicas) to synchronise them

Users:

   add_user                      Creates a new user in the internal database
   authenticate_user             Attempts to authenticate a user. Exits with a non-zero code if authentication fails.
   change_password               Changes the user password
   clear_password                Clears (resets) password and disables password login for a user
   delete_user                   Removes a user from the internal database. Has no effect on users provided by external backends such as LDAP
   list_users                    List user names and tags
   set_user_tags                 Sets user tags

Access Control:

   clear_permissions             Revokes user permissions for a vhost
   clear_topic_permissions       Clears user topic permissions for a vhost or exchange
   list_permissions              Lists user permissions in a virtual host
   list_topic_permissions        Lists topic permissions in a virtual host
   list_user_permissions         Lists permissions of a user across all virtual hosts
   list_user_topic_permissions   Lists user topic permissions
   list_vhosts                   Lists virtual hosts
   set_permissions               Sets user permissions for a vhost
   set_topic_permissions         Sets user topic permissions for an exchange

Monitoring, observability and health checks:

   environment                   Displays the name and value of each variable in the application environment for each running application
   list_bindings                 Lists all bindings on a vhost
   list_channels                 Lists all channels in the node
   list_ciphers                  Lists cipher suites supported by encoding commands
   list_connections              Lists AMQP 0.9.1 connections for the node
   list_consumers                Lists all consumers in a vhost
   list_exchanges                Lists exchanges
   list_hashes                   Lists hash functions supported by encoding commands
   list_queues                   Lists queues and their properties
   list_unresponsive_queues      Tests queues to respond within timeout. Lists those which did not respond
   node_health_check             Performs several opinionated health checks of the target node
   ping                          Checks that the node OS process is up, registered with EPMD and CLI tools can authenticate with it
   report                        Generate a server status report containing a concatenation of all server status information for support purposes
   schema_info                   Lists schema database tables and their properties
   status                        Displays broker status information

Parameters:

   clear_global_parameter        Clears a global runtime parameter
   clear_parameter               Clears a runtime parameter.
   list_global_parameters        Lists global runtime parameters
   list_parameters               Lists runtime parameters for a virtual host
   set_global_parameter          Sets a runtime parameter.
   set_parameter                 Sets a runtime parameter.

Policies:

   clear_operator_policy         Clears an operator policy
   clear_policy                  Clears (removes) a policy
   list_operator_policies        Lists operator policy overrides for a virtual host
   list_policies                 Lists all policies in a virtual host
   set_operator_policy           Sets an operator policy that overrides a subset of arguments in user policies
   set_policy                    Sets or updates a policy

Virtual hosts:

   add_vhost                     Creates a virtual host
   clear_vhost_limits            Clears virtual host limits
   delete_vhost                  Deletes a virtual host
   list_vhost_limits             Displays configured virtual host limits
   restart_vhost                 Restarts a failed vhost data stores and queues
   set_vhost_limits              Sets virtual host limits
   trace_off                     
   trace_on                      

Node configuration:

   decode                        Decrypts an encrypted configuration value
   encode                        Encrypts a sensitive configuration value
   set_cluster_name              Sets the cluster name
   set_disk_free_limit           Sets the disk_free_limit setting
   set_log_level                 Sets log level in the running node
   set_vm_memory_high_watermark  Sets the vm_memory_high_watermark setting

Operations:

   close_all_connections         Instructs the broker to close all connections for the specified vhost or entire RabbitMQ node
   close_connection              Instructs the broker to close the connection associated with the Erlang process id
   eval                          Evaluates a snippet of Erlang code on the target node
   exec                          Evaluates a snippet of Elixir code on the CLI node
   force_gc                      Makes all Erlang processes on the target node perform/schedule a full sweep garbage collection
   hipe_compile                  Performs HiPE-compilation of [some] server modules to the given directory to be used with RABBITMQ_SERVER_CODE_PATH

Queues:

   delete_queue                  Deletes a queue
   purge_queue                   Purges a queue (removes all messages in it)

Other:

   enable_feature_flag           
   list_feature_flags            

Use 'rabbitmqctl help <command>' to learn more about a specific command


点赞
说说你的看法

所有评论: (0)

# 加入组织

1、用手机QQ扫左侧二维码

2、搜Q群:1058582137

3、点击 宁时修博客交流群