2016-06-13 160 views
1

我想將Rabbitmq MNESIA目錄更改爲/disk文件夾,而不是默認/var/lib。我沒有在/usr/lib/rabbitmq/bin變更,在rabbitmq-envRabbitMQ日誌和Mnesia在環境變量中的位置沒有反映?

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 '[email protected]' ... 
Error: unable to connect to node '[email protected]': nodedown 

DIAGNOSTICS 
=========== 

attempted to contact: ['[email protected]'] 

[email protected]: 
    * 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: '[email protected]' 
- home dir: /var/lib/rabbitmq 
- cookie hash: D1JxYyl9vuDgVmH5K4dGyQ== 

刪除所有更改後,它是工作正常。但我想MNESIA目錄是/磁盤。我也重新啓動了該實例。

回答

1

嘗試以下步驟:

  1. /etc/init.d/rabbitmq-server stop
  2. nano /etc/rabbitmq/rabbitmq-env.conf並添加:

    RABBITMQ_MNESIA_BASE = /磁盤/ RabbitMQ的
    RABBITMQ_LOG_BASE = /磁盤/ RabbitMQ的/日誌

  3. chown rabbitmq:rabbitmq /disk/(and all subdirs)

  4. /etc/init.d/rabbitmq-server start

  5. service rabbitmq-server status

剛試過在我的debian:

[email protected]:/# service rabbitmq-server status 
Status of node [email protected] ... 
[{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}}] 
[email protected]:/# 
+0

做步驟4在其啓動後,如果我使用Ctrl + C,然後停止退出?我該如何克服這個? – Dileephell

+0

你不應該阻止它,如果目錄沒有正確的權限,就會發生這種情況! – Gabriele

+0

我剛剛重新啓動了它很多天後,它下降,數據目錄自動更改爲/ var/lib/rabbitmq ??? 「 – Dileephell

0

相反,這些ENV變量

RABBITMQ_MNESIA_BASE=/disk/rabbitmq/ 
RABBITMQ_LOG_BASE=/disk/rabbitmq/log/ 

嘗試

MNESIA_BASE=/disk/rabbitmq/ 
LOG_BASE=/disk/rabbitmq/log/ 

這至少在我停止並重新啓動後爲我工作。

0

在CentOS 7.2我也有以禁用SELinux以有工作

0

我會強烈建議安裝凳子和setroubleshoot服務器並實施SELinux的適當一個完整安全的解決方案。

https://www.systutorials.com/docs/linux/man/8-rabbitmq_selinux/

隨着一些ansible愛 - 例如:

- 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