|
|
第1行: |
第1行: |
− | ==创建vhost == | + | =trouble= |
| <pre> | | <pre> |
− | #创建 lxtx_hello vhost
| + | 内网机器 PHP的人 随便重启,然后机器再起来出事了 |
− | rabbitmqctl add_vhost /hello
| + | ls /home |
| + | cannot access Input/output error |
| | | |
− | 为用户设置virtual host 权限 用户为admin:
| + | 和乱码 |
− | rabbitmqctl set_permissions -p /hello admin '.*' '.*' '.*'
| + | d?????????? ? ? ? ? ? home |
| | | |
− | rabbitmqctl delete_vhost /hello
| |
| </pre> | | </pre> |
− | | + | =shooting= |
− | ==开启镜像模式== | |
− | | |
− | <pre>
| |
− | #为 vhost hello 开启镜像 ,名为 mirror4_hello
| |
− | rabbitmqctl set_policy -p hello mirror4_hello "^" '{"ha-mode":"all"}'
| |
− | Setting policy "mirror4_hello" for pattern "^" to "{\"ha-mode\":\"all\"}" with priority "0"
| |
− | | |
− | #默认vhost
| |
− | rabbitmqctl set_policy mirror4_newcailuw "^" '{"ha-mode":"all"}'
| |
− | | |
− | #书面一点的解说
| |
− | #这行命令在vhost名称为hello创建了一个策略,策略名称为mirror4_hello ,策略模式为 all 即复制到所有节点,包含新增节点,策略正则表达式为 “^” 表示所有匹配所有队列名称
| |
− | | |
− | 参数
| |
− | | |
− | ha-mode:策略键
| |
− | 1.all 队列镜像在群集中的所有节点上。当新节点添加到群集时,队列将镜像到该节点
| |
− | 2.exactly 集群中的队列实例数。
| |
− | 3.nodes 队列镜像到节点名称中列出的节点。
| |
− | | |
− | ha-sync-mode:队列同步
| |
− | 1.manual手动<默认模式>.新的队列镜像将不会收到现有的消息,它只会接收新的消息。
| |
− | 2.automatic自动同步.当一个新镜像加入时,队列会自动同步。队列同步是一个阻塞操作。
| |
− | 作者:全能程序猿
| |
− | 链接:https://www.jianshu.com/p/f81d62a8de02
| |
− | 来源:简书
| |
− | 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
| |
− | </pre>
| |
− | | |
− | | |
− | [https://www.jianshu.com/p/f81d62a8de02 RabbitMQ镜像策略set_policy]
| |
− | | |
− | [https://blog.csdn.net/wexiaoword/article/details/81352045 rabbitMq集群之镜像模式]
| |
− | | |
− | https://www.rabbitmq.com/parameters.html
| |
− | | |
− | https://www.rabbitmq.com/rabbitmqctl.8.html
| |
− | | |
− | = * Rabbitmq 用户角色及权限控制=
| |
− | | |
− | | |
− | | |
− | ==RabbitMQ的用户角色分类:==
| |
− | none、management、policymaker、monitoring、administrator
| |
− | | |
− | ==RabbitMQ各类角色描述:==
| |
− | <pre>
| |
− | none
| |
− | 不能访问 management plugin
| |
− | | |
− | 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 </pre>
| |
− | | |
− | =Note=
| |
| <pre> | | <pre> |
| + | lsof | grep home |
| + | 有关home分区的程序先kill掉 |
| | | |
− | administrator一定能看到 cluster信息,manager不行
| |
| | | |
− | monitoring 也可以
| + | 然后关掉机器 ,再硬重启 |
− | </pre>
| + | 如果不行就得 |
| + | fsck |
| | | |
− | | + | 例如如果上面的 /home at /dev/sda1 |
− | =* 创建用户 =
| + | 1.应该是采用 修复命令 fsck |
− | <pre>
| + | fsck -s /dev/sda1 |
| + | 意外断电导致/dev/sda1分区的文件系统崩溃,所以针对这个分区进行修复,如果其他分区也出现类似情况,可以进行全盘修复 |
| | | |
− | ** 新增用户admin,密码1234
| |
− |
| |
− | rabbitmqctl add_user admin 1234
| |
− |
| |
− | ** 也可以使用rabbitmqctl命令更改密码
| |
− |
| |
− | rabbitmqctl change_password admin adm
| |
− |
| |
− | ** 将admin加入到管理员组 赋予其management角色:
| |
− | rabbitmqctl set_user_tags admin administrator
| |
− |
| |
− |
| |
− | ** 查看用户列表
| |
− |
| |
− | rabbitmqctl list_users</pre>
| |
− |
| |
− | =运维常用命令=
| |
− | ==rabbitmqadmin==
| |
− | <pre>
| |
− | 一般情况下,我们会使用 rabbitmq_management 插件,通过 Web UI 的方式来监控和操作 RabbitMQ(端口 15672),但有时候命令的方式会更加方便一些,RabbitMQ 提供了 CLI 管理工具 rabbitmqadmin ,其实就是基于 RabbitMQ 的 HTTP API,用 Python 写的一个脚本。
| |
− |
| |
| | | |
| + | 2.机器重启 |
| | | |
| | | |
| </pre> | | </pre> |
− | ==rabbitmqadmin 命令汇总:== | + | =see also= |
− | <pre>
| + | [https://unix.stackexchange.com/questions/39905/input-output-error-when-accessing-a-directory “Input/output error” when accessing a directory] |
− | | |
− | 命令 解释
| |
− | rabbitmqadmin list users 查看所有用户 User
| |
− | rabbitmqadmin list users name 查看所有用户名 Username
| |
− | rabbitmqadmin list users tags 查看所有用户角色
| |
− | rabbitmqadmin list vhosts 查看所有虚拟主机
| |
− | rabbitmqadmin list connections 查看所有连接
| |
− | rabbitmqadmin list exchanges 查看所有路由 Exchange
| |
− | rabbitmqadmin list bindings 查看所有路由与队列的关系绑定 Binding
| |
− | rabbitmqadmin list permissions 查看所有角色的权限 Permission
| |
− | rabbitmqadmin list channels 查看所有通道 Channel
| |
− | rabbitmqadmin list consumers 查看所有消费者 Consumer
| |
− | rabbitmqadmin list queues 查看所有消息队列 Queue
| |
− | rabbitmqadmin list nodes 查看所有节点 Node
| |
− | rabbitmqadmin show overview 概览 Overview
| |
− | rabbitmqadmin list bindings source destination_type destination properties_key 查看所有路由与队列的关系绑定的详细信息 Binding
| |
− | rabbitmqadmin declare queue name=test durable=true 定义一个队列queue,durable=true代表持久化打开。
| |
− | rabbitmqadmin declare exchange name=my.fanout type=fanout 定义一个Fanout路由
| |
− | rabbitmqadmin declare exchange name=my.direct type=direct 定义一个Direct路由
| |
− | rabbitmqadmin declare exchange name=my.topic type=topic 定义一个Topic路由
| |
− | rabbitmqadmin declare binding source=my.fanout destination=test routing_key=first 定义 binding
| |
− | rabbitmqadmin publish routing_key=test payload="hello world" 发布一条消息
| |
− | rabbitmqadmin publish routing_key=my.test exchange=my.topic payload="hello world" 使用路由转发消息
| |
− | rabbitmqadmin get queue=test requeue=true 查看消息,不消费
| |
− | rabbitmqadmin get queue=test requeue=false 查看消息,并消费
| |
− | rabbitmqadmin purge queue name=test 删除队列中的所有消息 清空队列
| |
− | rabbitmqadmin delete queue name=hello 删除消息队列 Queue
| |
− | rabbitmqadmin delete user name=test 删除用户 User
| |
− | rabbitmqadmin delete exchange name=test 删除路由器 Exchange
| |
− | rabbitmqadmin delete binding source='kk' destination_type=queue destination=test properties_key=test 删除路由器与消息队列的关系绑定 Binding
| |
− | rabbitmqadmin -f raw_json list users raw_json 格式化输出
| |
− | rabbitmqadmin -f long list users 格式化输出
| |
− | rabbitmqadmin -f pretty_json list users pretty_json 格式化输出
| |
− | rabbitmqadmin -f kvp list users 格式化输出
| |
− | rabbitmqadmin -f tsv list users 格式化输出
| |
− | rabbitmqadmin -f table list users table 格式化输出
| |
− | rabbitmqadmin -f bash list users bash 格式化输出
| |
− | </pre>
| |
− | | |
− | ==NOTE==
| |
− | 注意 运维 例如查看队列 是用 rabbitmqadmin ,rabbitmqadmin --username=admin --password=333 list queues 不是 rabbitmqctl list_queues 早上 同桌也说是这个 ,搞半天 还以为集群坏了呢 还看什么日志
| |
− | | |
− | =RabbitMQ 概念:=
| |
− | <pre>
| |
− | 概念 详解
| |
− | Exchange 消息交换机,它指定消息按什么规则,路由到哪个队列
| |
− | Queue 消息队列,每个消息都会被投入到一个或多个队列
| |
− | Binding 绑定,它的作用就是把 exchange 和 queue 按照路由规则绑定起来
| |
− | Routing Key 路由关键字,exchange 根据这个关键字进行消息投递
| |
− | Vhost 虚拟主机,可以开设多个 vhost,用作不同用户的权限分离
| |
− | Producer 消息生产者,就是投递消息的程序
| |
− | Consumer 消息消费者,就是接受消息的程序
| |
− | Channel 消息通道,在客户端的每个连接里,可建立多个 channel,每个 channel 代表一个会话任务
| |
− | </pre>
| |
− | =查看 RabbitMQ日志=
| |
− | | |
− | | |
− | | |
− | [https://blog.csdn.net/weixin_33716941/article/details/90324587 学会查看 RabbitMQ日志]
| |
− | | |
− | =* see alse=
| |
− | [https://blog.csdn.net/zyz511919766/article/details/42292655 RabbitMQ用户角色及权限控制] | |
− | | |
− | [https://blog.csdn.net/chenshourui/article/details/81203770 rabbitmq学习笔记2 : 添加用户和virtual hosts]
| |
− | | |
− | | |
− | [https://www.cnblogs.com/xishuai/p/rabbitmq-cli-rabbitmqadmin.html RabbitMQ CLI 管理工具 rabbitmqadmin(管理和监控)]
| |
− | | |
− | | |
− | [https://www.rabbitmq.com/management-cli.html Management Command Line Tool官网]
| |
− | | |
| | | |
− | [[category:ops]] | + | [https://www.cnblogs.com/Alanf/p/7509268.html cannot access Input/output error] |