环境变量中的 RabbitMQ 日志和 Mnesia 位置没有反映?
RabbitMQ log and Mnesia location in Environment variables not reflecting?
我想将 Rabbitmq MNESIA 目录更改为 /disk
文件夹而不是默认 /var/lib
。我用
在 rabbitmq-env
对 /usr/lib/rabbitmq/bin
进行了更改
RABBITMQ_MNESIA_BASE=/disk/rabbitmq/
RABBITMQ_LOG_BASE=/disk/rabbitmq/log/
然后用
重新启动它
service rabbitmq-server restart
Restarting rabbitmq-server (via systemctl): [ OK ]
但是当我检查状态时
> service rabbitmq-server status
WARNING: Removing trailing slash from RABBITMQ_MNESIA_BASE
WARNING: Removing trailing slash from RABBITMQ_MNESIA_BASE
Status of node 'rabbit@ip-10-03-209-294' ...
Error: unable to connect to node 'rabbit@ip-10-03-209-294': nodedown
DIAGNOSTICS
===========
attempted to contact: ['rabbit@ip-10-03-209-294']
rabbit@ip-10-03-209-294:
* connected to epmd (port 4369) on ip-10-03-209-294
* epmd reports: node 'rabbit' not running at all
no other nodes on ip-10-03-209-294
* suggestion: start the node
current node details:
- node name: 'rabbitmq-cli-61@10-03-209-294'
- home dir: /var/lib/rabbitmq
- cookie hash: D1JxYyl9vuDgVmH5K4dGyQ==
删除所有更改后,它正在运行 fine.But 我希望 MNESIA 目录为 /disk。我也重新启动了实例。
尝试按照以下步骤操作:
/etc/init.d/rabbitmq-server stop
nano /etc/rabbitmq/rabbitmq-env.conf
并添加:
RABBITMQ_MNESIA_BASE=/disk/rabbitmq
RABBITMQ_LOG_BASE=/disk/rabbitmq/log
chown rabbitmq:rabbitmq /disk/(and all subdirs)
/etc/init.d/rabbitmq-server start
service rabbitmq-server status
刚刚在我的 debian 上试过:
root@bae18650cea4:/# service rabbitmq-server status
Status of node rabbit@bae18650cea4 ...
[{pid,15240},
{running_applications,[{rabbit,"RabbitMQ","3.6.2"},
{mnesia,"MNESIA CXC 138 12","4.13.3"},
{os_mon,"CPO CXC 138 46","2.4"},
{rabbit_common,[],"3.6.2"},
{xmerl,"XML parser","1.3.10"},
{ranch,"Socket acceptor pool for TCP protocols.",
"1.2.1"},
{sasl,"SASL CXC 138 11","2.7"},
{stdlib,"ERTS CXC 138 10","2.8"},
{kernel,"ERTS CXC 138 10","4.2"}]},
{os,{unix,linux}},
{erlang_version,"Erlang/OTP 18 [erts-7.3] [source] [64-bit] [async-threads:64] [kernel-poll:true]\n"},
{memory,[{total,139371632},
{connection_readers,0},
{connection_writers,0},
{connection_channels,0},
{connection_other,0},
{queue_procs,2592},
{queue_slave_procs,0},
{plugins,0},
{other_proc,18525024},
{mnesia,58264},
{mgmt_db,0},
{msg_index,41880},
{other_ets,920384},
{binary,19128},
{code,19777571},
{atom,752537},
{other_system,99274252}]},
{alarms,[]},
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,839966720},
{disk_free_limit,50000000},
{disk_free,17685676032},
{file_descriptors,[{total_limit,1048476},
{total_used,2},
{sockets_limit,943626},
{sockets_used,0}]},
{processes,[{limit,1048576},{used,137}]},
{run_queue,0},
{uptime,399},
{kernel,{net_ticktime,60}}]
root@bae18650cea4:/#
而不是这些环境变量
RABBITMQ_MNESIA_BASE=/disk/rabbitmq/
RABBITMQ_LOG_BASE=/disk/rabbitmq/log/
尝试
MNESIA_BASE=/disk/rabbitmq/
LOG_BASE=/disk/rabbitmq/log/
这至少在我停止并重新启动后对我有用。
我强烈建议安装 stools 和 setroubleshoot-server 并酌情使用 selinux 实施完整的安全解决方案。
见https://www.systutorials.com/docs/linux/man/8-rabbitmq_selinux/
有些 ansible-love-example:
- name: Enabling Selinux by default
selinux:
policy: targeted
state: enforcing
- name: selinux | allow selinux rabbitmq_t
selinux_permissive:
name: rabbitmq_t
permissive: true
- name: Run selinux restore context on /etc
shell: "restorecon -Rv /etc/"
- name: rabbitmq | Fix the SELINUX fcontenxt
sefcontext:
target: '/var/lib/rabbitmq/(.*)?'
setype: rabbitmq_var_lib_t
state: present
notify:
- reset permissions
- restart rabbitmq-server
- name: Allow RabbitMQ Selinux TCP to listen on
seport:
ports: 5672,15672
proto: tcp
setype: rabbitmq_port_t
state: present
我想将 Rabbitmq MNESIA 目录更改为 /disk
文件夹而不是默认 /var/lib
。我用
rabbitmq-env
对 /usr/lib/rabbitmq/bin
进行了更改
RABBITMQ_MNESIA_BASE=/disk/rabbitmq/
RABBITMQ_LOG_BASE=/disk/rabbitmq/log/
然后用
重新启动它service rabbitmq-server restart
Restarting rabbitmq-server (via systemctl): [ OK ]
但是当我检查状态时
> service rabbitmq-server status
WARNING: Removing trailing slash from RABBITMQ_MNESIA_BASE
WARNING: Removing trailing slash from RABBITMQ_MNESIA_BASE
Status of node 'rabbit@ip-10-03-209-294' ...
Error: unable to connect to node 'rabbit@ip-10-03-209-294': nodedown
DIAGNOSTICS
===========
attempted to contact: ['rabbit@ip-10-03-209-294']
rabbit@ip-10-03-209-294:
* connected to epmd (port 4369) on ip-10-03-209-294
* epmd reports: node 'rabbit' not running at all
no other nodes on ip-10-03-209-294
* suggestion: start the node
current node details:
- node name: 'rabbitmq-cli-61@10-03-209-294'
- home dir: /var/lib/rabbitmq
- cookie hash: D1JxYyl9vuDgVmH5K4dGyQ==
删除所有更改后,它正在运行 fine.But 我希望 MNESIA 目录为 /disk。我也重新启动了实例。
尝试按照以下步骤操作:
/etc/init.d/rabbitmq-server stop
nano /etc/rabbitmq/rabbitmq-env.conf
并添加:RABBITMQ_MNESIA_BASE=/disk/rabbitmq
RABBITMQ_LOG_BASE=/disk/rabbitmq/logchown rabbitmq:rabbitmq /disk/(and all subdirs)
/etc/init.d/rabbitmq-server start
service rabbitmq-server status
刚刚在我的 debian 上试过:
root@bae18650cea4:/# service rabbitmq-server status
Status of node rabbit@bae18650cea4 ...
[{pid,15240},
{running_applications,[{rabbit,"RabbitMQ","3.6.2"},
{mnesia,"MNESIA CXC 138 12","4.13.3"},
{os_mon,"CPO CXC 138 46","2.4"},
{rabbit_common,[],"3.6.2"},
{xmerl,"XML parser","1.3.10"},
{ranch,"Socket acceptor pool for TCP protocols.",
"1.2.1"},
{sasl,"SASL CXC 138 11","2.7"},
{stdlib,"ERTS CXC 138 10","2.8"},
{kernel,"ERTS CXC 138 10","4.2"}]},
{os,{unix,linux}},
{erlang_version,"Erlang/OTP 18 [erts-7.3] [source] [64-bit] [async-threads:64] [kernel-poll:true]\n"},
{memory,[{total,139371632},
{connection_readers,0},
{connection_writers,0},
{connection_channels,0},
{connection_other,0},
{queue_procs,2592},
{queue_slave_procs,0},
{plugins,0},
{other_proc,18525024},
{mnesia,58264},
{mgmt_db,0},
{msg_index,41880},
{other_ets,920384},
{binary,19128},
{code,19777571},
{atom,752537},
{other_system,99274252}]},
{alarms,[]},
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,839966720},
{disk_free_limit,50000000},
{disk_free,17685676032},
{file_descriptors,[{total_limit,1048476},
{total_used,2},
{sockets_limit,943626},
{sockets_used,0}]},
{processes,[{limit,1048576},{used,137}]},
{run_queue,0},
{uptime,399},
{kernel,{net_ticktime,60}}]
root@bae18650cea4:/#
而不是这些环境变量
RABBITMQ_MNESIA_BASE=/disk/rabbitmq/
RABBITMQ_LOG_BASE=/disk/rabbitmq/log/
尝试
MNESIA_BASE=/disk/rabbitmq/
LOG_BASE=/disk/rabbitmq/log/
这至少在我停止并重新启动后对我有用。
我强烈建议安装 stools 和 setroubleshoot-server 并酌情使用 selinux 实施完整的安全解决方案。
见https://www.systutorials.com/docs/linux/man/8-rabbitmq_selinux/
有些 ansible-love-example:
- name: Enabling Selinux by default
selinux:
policy: targeted
state: enforcing
- name: selinux | allow selinux rabbitmq_t
selinux_permissive:
name: rabbitmq_t
permissive: true
- name: Run selinux restore context on /etc
shell: "restorecon -Rv /etc/"
- name: rabbitmq | Fix the SELINUX fcontenxt
sefcontext:
target: '/var/lib/rabbitmq/(.*)?'
setype: rabbitmq_var_lib_t
state: present
notify:
- reset permissions
- restart rabbitmq-server
- name: Allow RabbitMQ Selinux TCP to listen on
seport:
ports: 5672,15672
proto: tcp
setype: rabbitmq_port_t
state: present