2023-10-21 架构第五周

一、Logstash利用redis做缓存从filebeat收集nginx日志和系统日志。

将nginx 服务器的logstash收集之后的访问日志写入到redis服务器,然后通过另外的logstash将redis服
务器的数据取出在写入到elasticsearch服务器。

实践架构
在这里插入图片描述

在上一篇文章中我写了安装filebeat、elasticsearch的过程这里不做过多赘述,跳过安装过程的介绍
链接:http://t.csdnimg.cn/L1WTM

1.安装logstash

#安装jdk
[root@logstash ~]#yum -y install java-1.8.0-openjdk

#安装logstash,版本必须和es版本一样
[root@logstash ~]#wget -P /usr/local/src/ https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/7.17.5/logstash-7.17.5-x86_64.rpm
[root@logstash ~]#yum -y install /usr/local/src/logstash-7.17.5-x86_64.rpm 

#修改配置文件
[root@logstash ~]#vim /etc/logstash/logstash.yml
19 node.name: logstash-node01
28 path.data: /var/lib/logstash #默认值
41 pipeline.workers: 2
45 pipeline.batch.size: 1000    #批量写入的消息个数,可以根据ES的性能做性能优化
50 pipeline.batch.delay: 5      #批量写入的延时,可以根据ES的性能做性能优化
200 path.logs: /var/log/logstash #默认值

#Logstash默认以logstash用户运行,如果logstash需要收集本机的日志,可能会有权限问题,可以修改为root
[root@logstash ~]#vim /etc/systemd/system/logstash.service
[Service]
User=root
Group=root

[root@logstash ~]#systemctl enable --now logstash.service 
Created symlink /etc/systemd/system/multi-user.target.wants/logstash.service → /etc/systemd/system/logstash.service.
[root@logstash ~]#systemctl status logstash.service

2.安装nginx

#安装nginx
[root@filebeat-web ~]#yum -y install nginx

#配置日志的JSON格式
[root@filebeat-web ~]#vim /etc/nginx/nginx.conf
     log_format access_json '{"@timestamp":"$time_iso8601",'
                            '"host":"$server_addr",'
                            '"clientip":"$remote_addr",'
                            '"size":$body_bytes_sent,'
                            '"responsetime":$request_time,'
                            '"upstreamtime":"$upstream_response_time",'
                            '"upstreamhost":"$upstream_addr",'
                            '"http_host":"$host",'
                            '"uri":"$uri",'
                            '"domain":"$host",'
                            '"xff":"$http_x_forwarded_for",'
                            '"referer":"$http_referer",'
                            '"tcp_xff":"$proxy_protocol_addr",'
                            '"http_user_agent":"$http_user_agent",'
                            '"status":"$status"}';
      server {
          access_log   /data/nginx/logs/access_json.log access_json;
      }
#创建日志目录
[root@filebeat-web ~]#vim /etc/nginx/nginx.conf
[root@filebeat-web ~]#vim /etc/nginx/nginx.conf.default 
[root@filebeat-web ~]#vim /etc/nginx/nginx.conf
[root@filebeat-web ~]#mkdir /data/nginx/logs/ -pv
mkdir: created directory '/data/nginx'
mkdir: created directory '/data/nginx/logs/'
[root@filebeat-web ~]#chown -R nginx.nginx /data/nginx

[root@filebeat-web ~]#systemctl enable --now nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@filebeat-web ~]#systemctl status --now nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2023-10-21 10:20:25 CST; 7s ago
  Process: 25619 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 25618 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 25616 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)

#访问日志的JSON格式
[root@filebeat-web ~]#tail -n 1 /data/nginx/logs/access_json.log
{"@timestamp":"2023-10-21T10:26:18+08:00","host":"10.0.0.38","clientip":"10.0.0.1","size":0,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"10.0.0.38","uri":"/index.html","domain":"10.0.0.38","xff":"-","referer":"-","tcp_xff":"","http_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36","status":"304"}

3.安装redis

#安装redis
[root@redis ~]#yum -y install redis

#配置redis
[root@redis ~]#vim /etc/redis.conf
69 bind 0.0.0.0
216 save ""    #禁用rdb持久保存
#save 900 1
#save 300 10
#save 60 10000
508 requirepass 123456

[root@redis ~]#systemctl enable --now redis
Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.

4.配置filebeat文件,利用filebeat收集日志到Redis

[root@filebeat-web ~]#vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /data/nginx/logs/access_json.log
  json.keys_under_root: true #默认False会将json数据存储至message,改为true则会独立message外存储
  json.overwrite_keys: true  #设为true,覆盖默认的message字段,使用自定义json格式中的key
  tags: ["nginx-access"]
output.redis:
  hosts: ["10.0.0.58:6379"]
  password: "123456"
  db: "0"
  key: "filebeat" #所有日志都存放在key名称为filebeat的列表中,llen filebeat可查看长度,即日志记录数

5.配置logstash文件收集Redis数据发送至Elasticsearch

#配置文件
[root@logstash ~]#vim /etc/logstash/conf.d/redis-to-es.conf
input {
 redis {
   host => "10.0.0.58"
   port => "6379"
   password => "123456"
   db => "0"
   key => "filebeat"
   data_type => "list"
 }
}

output {
    if "nginx-access" in [tags] {
       elasticsearch {
           hosts => ["10.0.0.18:9200"]
           index => "nginx-accesslog-%{+YYYY.MM.dd}"
           template_overwrite => true
       }
   }
}

#验证配置文件
[root@logstash ~]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis-to-es.conf -t
Using bundled JDK: /usr/share/logstash/jdk
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults
Could not find log4j2 configuration at path /usr/share/logstash/config/log4j2.properties. Using default config which logs errors to the console
[INFO ] 2023-10-21 12:16:07.550 [main] runner - Starting Logstash {"logstash.version"=>"7.17.5", "jruby.version"=>"jruby 9.2.20.1 (2.5.8) 2021-11-30 2a2962fbd1 OpenJDK 64-Bit Server VM 11.0.15+10 on 11.0.15+10 +indy +jit [linux-x86_64]"}
[INFO ] 2023-10-21 12:16:07.566 [main] runner - JVM bootstrap flags: [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djdk.io.File.enableADS=true, -Djruby.compile.invokedynamic=true, -Djruby.jit.threshold=0, -Djruby.regexp.interruptible=true, -XX:+HeapDumpOnOutOfMemoryError, -Djava.security.egd=file:/dev/urandom, -Dlog4j2.isThreadContextMapInheritable=true]
[WARN ] 2023-10-21 12:16:08.130 [LogStash::Runner] multilocal - Ignoring the 'pipelines.yml' file because modules or command line options are specified
[INFO ] 2023-10-21 12:16:09.225 [LogStash::Runner] Reflections - Reflections took 60 ms to scan 1 urls, producing 119 keys and 419 values 
[WARN ] 2023-10-21 12:16:09.809 [LogStash::Runner] json - Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[WARN ] 2023-10-21 12:16:09.898 [LogStash::Runner] plain - Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[WARN ] 2023-10-21 12:16:09.974 [LogStash::Runner] elasticsearch - Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
Configuration OK
[INFO ] 2023-10-21 12:16:09.990 [LogStash::Runner] runner - Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

[root@logstash ~]#systemctl restart logstash

创建索引模式
索引模式
查看索引
查看索引

二、分别部署RabbitMQ单机版及RabbitMQ集群。

单机的rabbitmq

由于rabbitmq安装的话需要到外网,如果你科学上网可以访问下载外网的东西就可以直接跟着官方提供的下载步骤进行
官方下载文档地址:https://www.rabbitmq.com/install-rpm.html (这是RHEL,CentOS的rpm安装文档)
https://www.rabbitmq.com/install-debian.html (这是Debian,ubuntu安装文档)

如果你也没有科学上网的手段,参考我的步骤
我是根据先把一些密钥从网上下载到本地再传入虚拟机

1.安装erlang和rabbitmq

#这是无法从外网下载key
[root@rabbitmq ~]#rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc'
curl: (7) Failed to connect to github.com port 443: Connection refused
error: https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc: import read failed(2).

#在浏览器中输入 https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
#下载到本地再传到虚拟机中
[root@rabbitmq ~]#ls
anaconda-ks.cfg  cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key  cloudsmith.rabbitmq-server.9F4587F226208342.key  rabbitmq-release-signing-key.asc
[root@rabbitmq ~]#rpm --import rabbitmq-release-signing-key.asc
[root@rabbitmq ~]#rpm --import cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
[root@rabbitmq ~]#rpm --import cloudsmith.rabbitmq-server.9F4587F226208342.key

#编写yum源,yum源就是上面说的官方文档中提供的,但是要把里面从外网加载的key验证都换成本地的
[root@rabbitmq ~]#vim /etc/yum.repos.d/rabbitmq.repo
  1 #In /etc/yum.repos.d/rabbitmq.repo
  2 
  3 ##
  4 ## Zero dependency Erlang RPM
  5 ##
  6 
  7 [modern-erlang]
  8 name=modern-erlang-el8
  9 # uses a Cloudsmith mirror @ yum.novemberain.com in addition to its Cloudsmith upstream.
 10 # Unlike Cloudsmith, the mirror does not have any traffic quotas
 11 baseurl=https://yum1.novemberain.com/erlang/el/8/$basearch
 12         https://yum2.novemberain.com/erlang/el/8/$basearch
 13         https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/8/$basearch
 14 repo_gpgcheck=1
 15 enabled=1
 16 gpgkey=file:///root/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key           #这些地方改成自己的位置
 17 gpgcheck=1
 18 sslverify=1
 19 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
 20 metadata_expire=300
 21 pkg_gpgcheck=1
 22 autorefresh=1
 23 type=rpm-md
 24 
 25 [modern-erlang-noarch]
 26 name=modern-erlang-el8-noarch
 27 # uses a Cloudsmith mirror @ yum.novemberain.com.
 28 # Unlike Cloudsmith, it does not have any traffic quotas
 29 baseurl=https://yum1.novemberain.com/erlang/el/8/noarch
 30         https://yum2.novemberain.com/erlang/el/8/noarch
 31         https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/8/noarch
 32 repo_gpgcheck=1
 33 enabled=1
 34 gpgkey=file:///root/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key        #这些,剩下的自己找吧,下面还有
 35        file:///root/rabbitmq-release-signing-key.asc
 36 gpgcheck=1
 37 sslverify=1
 38 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
 39 metadata_expire=300
 40 pkg_gpgcheck=1
 41 autorefresh=1
 42 type=rpm-md
 43 
 44 [modern-erlang-source]
 45 name=modern-erlang-el8-source
 46 # uses a Cloudsmith mirror @ yum.novemberain.com.
 47 # Unlike Cloudsmith, it does not have any traffic quotas
 48 baseurl=https://yum1.novemberain.com/erlang/el/8/SRPMS
 49         https://yum2.novemberain.com/erlang/el/8/SRPMS
 50         https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/8/SRPMS
 51 repo_gpgcheck=1
 52 enabled=1
 53 gpgkey=file:///root/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
 54        file:///root/rabbitmq-release-signing-key.asc
 55 gpgcheck=1
 56 sslverify=1
 57 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
 58 metadata_expire=300
 59 pkg_gpgcheck=1
 60 autorefresh=1
 61 
 62 
 63 ##
 64 ## RabbitMQ Server
 65 ##
 66 
 67 [rabbitmq-el8]
 68 name=rabbitmq-el8
 69 baseurl=https://yum2.novemberain.com/rabbitmq/el/8/$basearch
 70         https://yum1.novemberain.com/rabbitmq/el/8/$basearch
 71         https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/8/$basearch
 72 repo_gpgcheck=1
 73 enabled=1
 74 # Cloudsmith's repository key and RabbitMQ package signing key
 75 gpgkey=file:///root/cloudsmith.rabbitmq-server.9F4587F226208342.key
 76        file:///root/rabbitmq-release-signing-key.asc
 77 gpgcheck=1
 78 sslverify=1
 79 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
 80 metadata_expire=300
 81 pkg_gpgcheck=1
 82 autorefresh=1
 83 type=rpm-md
 84 
 85 [rabbitmq-el8-noarch]
 86 name=rabbitmq-el8-noarch
 87 baseurl=https://yum2.novemberain.com/rabbitmq/el/8/noarch
 88         https://yum1.novemberain.com/rabbitmq/el/8/noarch
 89         https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/8/noarch
 90 repo_gpgcheck=1
 91 enabled=1
 92 # Cloudsmith's repository key and RabbitMQ package signing key
 93 gpgkey=file:///root/cloudsmith.rabbitmq-server.9F4587F226208342.key
 94        file:///root/rabbitmq-release-signing-key.asc
 95 gpgcheck=1
 96 sslverify=1
 97 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
 98 metadata_expire=300
 99 pkg_gpgcheck=1
100 autorefresh=1
101 type=rpm-md
102 
103 [rabbitmq-el8-source]
104 name=rabbitmq-el8-source
105 baseurl=https://yum2.novemberain.com/rabbitmq/el/8/SRPMS
106         https://yum1.novemberain.com/rabbitmq/el/8/SRPMS
107         https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/8/SRPMS
108 repo_gpgcheck=1
109 enabled=1
110 gpgkey=file:///root/cloudsmith.rabbitmq-server.9F4587F226208342.key
111 gpgcheck=0
112 sslverify=1
113 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
114 metadata_expire=300
115 pkg_gpgcheck=1
116 autorefresh=1
117 type=rpm-md

#安装erlang rabbitmq
[root@rabbitmq ~]#yum clean all
[root@rabbitmq ~]#yum -y install erlang rabbitmq-server

#rabbitmq 启动!
[root@rabbitmq ~]#systemctl enable --now rabbitmq-server.service

#加载web UI插件
[root@rabbitmq ~]#rabbitmq-plugins enable rabbitmq_management

#查看端口
[root@es-node1 ~]#ss -ntl
State                 Recv-Q                Send-Q                               Local Address:Port                                Peer Address:Port                Process                
LISTEN                0                     128                                        0.0.0.0:4369                                     0.0.0.0:*                                          
LISTEN                0                     128                                        0.0.0.0:22                                       0.0.0.0:*                                          
LISTEN                0                     128    这个是加载web插件之后会开启的访问端口    0.0.0.0:15672                                    0.0.0.0:*                                          
LISTEN                0                     128  剩下的除了22都是开启rabbitmq之后开放的端口 0.0.0.0:25672                                    0.0.0.0:*                                          
LISTEN                0                     128                                           [::]:4369                                        [::]:*                                          
LISTEN                0                     128                                           [::]:22                                          [::]:*                                          
LISTEN                0                     128                                              *:5672                                           *:*                                 

2.创建登录UI界面的用户

从rabbitmq3.3.0之后就禁止使用guest/guest权限登录除了localhost访问,直接访问会报错,所以需要关闭禁止guest访问登陆的配置,but,我没有找到该配置文件在哪里,所以我就另辟蹊径,自己创建了一个management用户!!!!!
禁止访问
我发现在不创建management的情况下,就算我创建了一个administrator,也是登录不上的,所以必须先创建一个管理用户

[root@rabbitmq ~]#rabbitmqctl add_user ma 123456
[root@rabbitmq ~]#rabbitmqctl set_user_tags ma management
Setting tags for user "ma" to [management] ...
[root@rabbitmq ~]#rabbitmqctl add_user rb 123456
Adding user "rb" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
[root@rabbitmq ~]#rabbitmqctl set_user_tags rb administrator
Setting tags for user "rb" to [administrator] ...

创建管理用户
超级管理员账号

创建rabbitmq集

10.0.0.18 rabbitmq-server1
10.0.0.28 rabbitmq-server2
10.0.0.38 rabbitmq-server3

1.安装rabbitmq,同上述一样

[root@rabbitmq-server1 ~]#scp cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key cloudsmith.rabbitmq-server.9F4587F226208342.key rabbitmq-release-signing-key.asc 10.0.0.28:
root@10.0.0.28's password:'
cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key                                                                                                          100% 1337   270.1KB/s   00:00    
cloudsmith.rabbitmq-server.9F4587F226208342.key                                                                                                          100% 1337   923.9KB/s   00:00    
rabbitmq-release-signing-key.asc                                                                                                                         100% 3187     3.4MB/s   00:00    

[root@rabbitmq-server1 ~]#scp cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key cloudsmith.rabbitmq-server.9F4587F226208342.key rabbitmq-release-signing-key.asc 10.0.0.38:
root@10.0.0.38's password: '
cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key                                                                                                          100% 1337     1.2MB/s   00:00    
cloudsmith.rabbitmq-server.9F4587F226208342.key                                                                                                          100% 1337     1.5MB/s   00:00    
rabbitmq-release-signing-key.asc                                                                                                                         100% 3187     2.8MB/s   00:00    

[root@rabbitmq-server1 ~]#scp /etc/yum.repos.d/rabbitmq.repo 10.0.0.28:/etc/yum.repos.d/rabbitmq.repo
root@10.0.0.28's password: '
rabbitmq.repo                                                                                                                                            100% 3579     2.5MB/s   00:00    
[root@rabbitmq-server1 ~]#scp /etc/yum.repos.d/rabbitmq.repo 10.0.0.38:/etc/yum.repos.d/rabbitmq.repo
root@10.0.0.38's password: 
rabbitmq.repo    
#跟上述步骤一样

2.创建rabbitmq集群

Rabbitmq 的集群是依赖于 erlang 的集群来工作的,所以必须先构建起 erlang 的集群环境,而 Erlang 的集群中各节点是通过一个 magic cookie 来实现的,这个cookie 存放在 /var/lib/rabbitmq/.erlang.cookie 中,文件是 400 的权限,所以必须保证各节点 cookie 保持一致,否则节点之间就无法通信。

#关闭服务
[root@rabbitmq-server1 ~]#systemctl stop rabbitmq-server.service
[root@rabbitmq-server2 ~]#systemctl stop rabbitmq-server.service
[root@rabbitmq-server3 ~]#systemctl stop rabbitmq-server.service

#同步magic cookie
[root@rabbitmq-server1 ~]#scp /var/lib/rabbitmq/.erlang.cookie 10.0.0.28:/var/lib/rabbitmq/.erlang.cookie
root@10.0.0.28's password: '
.erlang.cookie                                                                                                                                           100%   20     6.7KB/s   00:00    
[root@rabbitmq-server1 ~]#scp /var/lib/rabbitmq/.erlang.cookie 10.0.0.38:/var/lib/rabbitmq/.erlang.cookie
root@10.0.0.38's password: 
.erlang.cookie 

#启动服务
[root@rabbitmq-server1 ~]#systemctl start rabbitmq-server.service
[root@rabbitmq-server2 ~]#systemctl start rabbitmq-server.service
[root@rabbitmq-server3 ~]#systemctl start rabbitmq-server.service

#节点状态
[root@rabbitmq-server1 ~]#rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq-server1 ...
Basics

Cluster name: rabbit@rabbitmq-server1
Total CPU cores available cluster-wide: 2

Disk Nodes

rabbit@rabbitmq-server1

Running Nodes

rabbit@rabbitmq-server1

Versions

rabbit@rabbitmq-server1: RabbitMQ 3.12.7 on Erlang 26.1.2

3.关联集群

在 rabbitmq-server1 作为内存节点添加到rabbitmq-server3,并作为内存节点

#停止服务
[root@rabbitmq-server1 ~]#rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbitmq-server1 ...
#清空数据
[root@rabbitmq-server1 ~]#rabbitmqctl reset
Resetting node rabbit@rabbitmq-server1 ...

#先添加三个节点的host解析
[root@rabbitmq-server1 ~]#vim /etc/hosts
[root@rabbitmq-server2 ~]#vim /etc/hosts
[root@rabbitmq-server3 ~]#vim /etc/hosts
10.0.0.18 rabbitmq-server1
10.0.0.28 rabbitmq-server2
10.0.0.38 rabbitmq-server3

#将 rabbitmq-server1 添加到集群当中,并成为内存节点,不加--ram 默认是磁盘节点
[root@rabbitmq-server1 ~]#rabbitmqctl join_cluster rabbit@rabbitmq-server3 --ram
Clustering node rabbit@rabbitmq-server1 with rabbit@rabbitmq-server3

[root@rabbitmq-server1 ~]#rabbitmqctl start_app
Starting node rabbit@rabbitmq-server1 ...

在 rabbitmq-server2 作为内存节点添加到rabbitmq-server3,并作为内存节点

#关闭服务
[root@rabbitmq-server2 ~]#rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbitmq-server2 ...
#清空数据
[root@rabbitmq-server2 ~]#rabbitmqctl reset
Resetting node rabbit@rabbitmq-server2 ...

#将 rabbitmq-server2 添加到集群当中,并成为内存节点,不加--ram 默认是磁盘节点
[root@rabbitmq-server2 ~]#rabbitmqctl join_cluster rabbit@rabbitmq-server3 --ram
Clustering node rabbit@rabbitmq-server2 with rabbit@rabbitmq-server3

[root@rabbitmq-server2 ~]#rabbitmqctl start_app
Starting node rabbit@rabbitmq-server2 ...

#查看集群状态
[root@rabbitmq-server1 ~]#rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq-server1 ...
Basics

Cluster name: rabbit@rabbitmq-server1
Total CPU cores available cluster-wide: 6

Disk Nodes

rabbit@rabbitmq-server3

RAM Nodes

rabbit@rabbitmq-server1
rabbit@rabbitmq-server2

Running Nodes

rabbit@rabbitmq-server1
rabbit@rabbitmq-server2
rabbit@rabbitmq-server3

Versions

rabbit@rabbitmq-server1: RabbitMQ 3.12.7 on Erlang 26.1.2
rabbit@rabbitmq-server3: RabbitMQ 3.12.7 on Erlang 26.1.2
rabbit@rabbitmq-server2: RabbitMQ 3.12.7 on Erlang 26.1.2

#把集群设置为镜像模式
[root@rabbitmq-server1 ~]#rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' 
Setting policy "ha-all" for pattern "#" to "{"ha-mode":"all"}" with priority "0" for vhost "/" ...

镜像模式相当于普通模式的高可用

4.在web界面查看

[root@rabbitmq-server1 ~]#rabbitmqctl add_user ma 123456
Adding user "ma" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
[root@rabbitmq-server1 ~]#rabbitmqctl set_user_tags ma administrator
Setting tags for user "ma" to [administrator] ...

在没有开启UI插件的节点不显示统计信息
在这里插入图片描述
都开启UI插件

[root@rabbitmq-server2 ~]#rabbitmq-plugins enable rabbitmq_management
[root@rabbitmq-server3 ~]#rabbitmq-plugins enable rabbitmq_management

完结撒花

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值