<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>YoungCheung</title><link>https://www.iopst.cn/</link><description>Zhang Sir's technical way</description><item><title>AnolisOS8.6 升级openssh版本</title><link>https://www.iopst.cn/article/261.html</link><description>&lt;p&gt;一、升级背景&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Anolis OS release 8.6操作系统自带的openssh版本为8.0，被扫出openssh的漏洞，故升级最新版本整改漏洞。&lt;/p&gt;&lt;p&gt;二、升级注意事项&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;1.龙蜥操作系统自带了openssl 1.1.1k，所以无需安装其他版本的openssl，以免导致冲突。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 2.升级前先备份openssh的配置文件目录，多打开一个会话窗口保持ssh连接，为了保险起见建议打开telnet服务，防止升级失败openssh无法启动导致远程不到服务器。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 3.编译安装时如提示缺少一些文件导致安装报错，可通过yum工具进行依赖包的安装。&lt;/p&gt;&lt;p&gt;三、升级步骤&lt;/p&gt;&lt;p&gt;3.1 编译安装&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#备份原始配置
$&amp;nbsp;\cp&amp;nbsp;-a&amp;nbsp;&amp;nbsp;/etc/ssh&amp;nbsp;/etc/ssh_bak
$&amp;nbsp;\cp&amp;nbsp;-a&amp;nbsp;&amp;nbsp;/etc/pam.d/sshd&amp;nbsp;/etc/pam.d/sshd_bak

#&amp;nbsp;下载源码
$&amp;nbsp;mkdir&amp;nbsp;/test
$&amp;nbsp;cd&amp;nbsp;/test
$&amp;nbsp;wget&amp;nbsp;https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
$&amp;nbsp;tar&amp;nbsp;xf&amp;nbsp;openssh-9.7p1.tar.gz
$&amp;nbsp;cd&amp;nbsp;openssh-9.7p1

#卸载旧版openssh
$&amp;nbsp;yum&amp;nbsp;remove&amp;nbsp;openssh&amp;nbsp;-y

#编译安装
$&amp;nbsp;yum&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;zlib-devel.x86_64&amp;nbsp;openssl-devel.x86_64&amp;nbsp;pam-devel.x86_64&amp;nbsp;gcc
$&amp;nbsp;./configure&amp;nbsp;--prefix=/usr&amp;nbsp;--sysconfdir=/etc/ssh&amp;nbsp;&amp;nbsp;--with-zlib=/usr/lib&amp;nbsp;--with-ssl-dir=/etc/pki/tls&amp;nbsp;--with-pam&lt;/pre&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;make&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;make&amp;nbsp;install

#生成ssh服务管理脚本和自启动
$&amp;nbsp;install&amp;nbsp;-m644&amp;nbsp;contrib/redhat/sshd.pam&amp;nbsp;/etc/pam.d/sshd&amp;nbsp;
$&amp;nbsp;cp&amp;nbsp;contrib/redhat/sshd.init&amp;nbsp;/etc/init.d/sshdchmod&amp;nbsp;a+x&amp;nbsp;/etc/init.d/sshd
$&amp;nbsp;chkconfig&amp;nbsp;--add&amp;nbsp;sshd

#还原配置
$&amp;nbsp;\cp&amp;nbsp;&amp;nbsp;-a&amp;nbsp;/etc/ssh/sshd_config&amp;nbsp;/etc/ssh/sshd_config_default
$&amp;nbsp;\cp&amp;nbsp;-a&amp;nbsp;&amp;nbsp;/etc/pam.d/sshd&amp;nbsp;/etc/pam.d/sshd_default

$&amp;nbsp;cat&amp;nbsp;/etc/ssh_bak/sshd_config&amp;nbsp;&amp;gt;/etc/ssh/sshd_config
$&amp;nbsp;cat&amp;nbsp;/etc/pam.d/sshd_bak&amp;nbsp;&amp;gt;/etc/pam.d/sshd

#重启sshd
$&amp;nbsp;systemctl&amp;nbsp;restart&amp;nbsp;sshd

#查看ssh和sshd版本
$&amp;nbsp;ssh&amp;nbsp;-V
$&amp;nbsp;sshd&amp;nbsp;-V&lt;/pre&gt;&lt;p&gt;3.2 RPM制作并升级操作&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#&amp;nbsp;安装依赖包
$&amp;nbsp;yum&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;rpm-build&amp;nbsp;rpmdevtools&amp;nbsp;gcc&amp;nbsp;gcc-c++&amp;nbsp;&amp;nbsp;perl&amp;nbsp;glibc&amp;nbsp;glibc-devel&amp;nbsp;openssl-devel&amp;nbsp;openssl&amp;nbsp;pcre-devel&amp;nbsp;zlib&amp;nbsp;zlib-devel&amp;nbsp;make&amp;nbsp;wget&amp;nbsp;krb5-devel&amp;nbsp;pam-devel&amp;nbsp;libX11-devel&amp;nbsp;xmkmf&amp;nbsp;libXt-devel&amp;nbsp;initscripts&amp;nbsp;libXt-devel&amp;nbsp;imake&amp;nbsp;gtk2-devel&amp;nbsp;lrzsz
&amp;nbsp;
#&amp;nbsp;创建RPM包的相关目录
$&amp;nbsp;mkdir&amp;nbsp;-pv&amp;nbsp;/root/rpmbuild
$&amp;nbsp;cd&amp;nbsp;/root/rpmbuild
$&amp;nbsp;rpmdev-setuptree
$&amp;nbsp;tree
.
├──&amp;nbsp;BUILD
├──&amp;nbsp;RPMS
├──&amp;nbsp;SOURCES
├──&amp;nbsp;SPECS
└──&amp;nbsp;SRPMS
5&amp;nbsp;directories,&amp;nbsp;0&amp;nbsp;files&amp;nbsp;
&amp;nbsp;
#&amp;nbsp;打开OpenSSH官网下载最新版本的Openssh&amp;nbsp;9.3p2和相关依赖包
$&amp;nbsp;cd&amp;nbsp;/root/rpmbuild/SOURCES/
$&amp;nbsp;wget&amp;nbsp;&amp;nbsp;https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
$&amp;nbsp;tar&amp;nbsp;-xf&amp;nbsp;openssh-9.7p1.tar.gz
$&amp;nbsp;wget&amp;nbsp;https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz
&amp;nbsp;
#&amp;nbsp;配置相关编译文件
$&amp;nbsp;cp&amp;nbsp;openssh-9.7p1/contrib/redhat/openssh.spec&amp;nbsp;/root/rpmbuild/SPECS/
$&amp;nbsp;cd&amp;nbsp;/root/rpmbuild/SPECS/

#不生产ask包（可选）
$&amp;nbsp;sed&amp;nbsp;-i&amp;nbsp;-e&amp;nbsp;&amp;quot;s/%global&amp;nbsp;no_gnome_askpass&amp;nbsp;0/%global&amp;nbsp;no_gnome_askpass&amp;nbsp;1/g&amp;quot;&amp;nbsp;openssh.spec
$&amp;nbsp;sed&amp;nbsp;-i&amp;nbsp;-e&amp;nbsp;&amp;quot;s/%global&amp;nbsp;no_x11_askpass&amp;nbsp;0/%global&amp;nbsp;no_x11_askpass&amp;nbsp;1/g&amp;quot;&amp;nbsp;openssh.spec
#修改openssl-devel的报错（如未报错不用执行）
$&amp;nbsp;sed&amp;nbsp;-i&amp;nbsp;&amp;#39;/openssl-devel&amp;nbsp;&amp;lt;&amp;nbsp;1.1/s/^/#/&amp;#39;&amp;nbsp;openssh.spec
#修改PreReq的报错（如未报错不用执行）
$&amp;nbsp;sed&amp;nbsp;-i&amp;nbsp;&amp;#39;/PreReq:/s/^/#/&amp;#39;&amp;nbsp;openssh.spec
&amp;nbsp;
#&amp;nbsp;编译文件
$&amp;nbsp;rpmbuild&amp;nbsp;-ba&amp;nbsp;openssh.spec
&amp;nbsp;
#&amp;nbsp;
$&amp;nbsp;cd&amp;nbsp;/root/rpmbuild/RPMS/x86_64
$&amp;nbsp;ll
-rw-r--r--&amp;nbsp;1&amp;nbsp;root&amp;nbsp;root&amp;nbsp;&amp;nbsp;627876&amp;nbsp;6月&amp;nbsp;&amp;nbsp;19&amp;nbsp;09:46&amp;nbsp;openssh-9.7p1-1.an8.x86_64.rpm
-rw-r--r--&amp;nbsp;1&amp;nbsp;root&amp;nbsp;root&amp;nbsp;&amp;nbsp;623488&amp;nbsp;6月&amp;nbsp;&amp;nbsp;19&amp;nbsp;09:46&amp;nbsp;openssh-clients-9.7p1-1.an8.x86_64.rpm
-rw-r--r--&amp;nbsp;1&amp;nbsp;root&amp;nbsp;root&amp;nbsp;&amp;nbsp;970000&amp;nbsp;6月&amp;nbsp;&amp;nbsp;19&amp;nbsp;09:46&amp;nbsp;openssh-debuginfo-9.7p1-1.an8.x86_64.rpm
-rw-r--r--&amp;nbsp;1&amp;nbsp;root&amp;nbsp;root&amp;nbsp;&amp;nbsp;496012&amp;nbsp;6月&amp;nbsp;&amp;nbsp;19&amp;nbsp;09:46&amp;nbsp;openssh-server-9.7p1-1.an8.x86_64.rpm

&amp;nbsp;
#&amp;nbsp;打包所有rpm包
tar&amp;nbsp;-zcvf&amp;nbsp;openssh9.7p1_an8_rpm.tar.gz&amp;nbsp;*.rpm

#问题参考&amp;nbsp;https://www.cnblogs.com/JimmyThomas/p/16257866.html&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;3.3 使用RPM升级openssh操作&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#备份原始配置
$&amp;nbsp;\cp&amp;nbsp;-a&amp;nbsp;&amp;nbsp;/etc/ssh&amp;nbsp;/etc/ssh_bak
$&amp;nbsp;\cp&amp;nbsp;-a&amp;nbsp;&amp;nbsp;/etc/pam.d/sshd&amp;nbsp;/etc/pam.d/sshd_bak

#查看当前openssh版本
#&amp;nbsp;rpm&amp;nbsp;-qa|grep&amp;nbsp;openssh
openssh-8.0p1-13.0.1.an8.x86_64
openssh-server-8.0p1-13.0.1.an8.x86_64
openssh-clients-8.0p1-13.0.1.an8.x86_64
openssh-askpass-8.0p1-13.0.1.an8.x86_64

#卸载旧版openssh
$&amp;nbsp;yum&amp;nbsp;remove&amp;nbsp;openssh&amp;nbsp;-y

#执行升级
$&amp;nbsp;rpm&amp;nbsp;-Uvh&amp;nbsp;openssh-*rpm

#还原配置
$&amp;nbsp;\cp&amp;nbsp;&amp;nbsp;-a&amp;nbsp;/etc/ssh/sshd_config&amp;nbsp;/etc/ssh/sshd_config_default
$&amp;nbsp;\cp&amp;nbsp;-a&amp;nbsp;&amp;nbsp;/etc/pam.d/sshd&amp;nbsp;/etc/pam.d/sshd_default

$&amp;nbsp;cat&amp;nbsp;/etc/ssh_bak/sshd_config&amp;nbsp;&amp;gt;/etc/ssh/sshd_config
$&amp;nbsp;cat&amp;nbsp;/etc/pam.d/sshd_bak&amp;nbsp;&amp;gt;/etc/pam.d/sshd

#修改权限并重启sshd
$&amp;nbsp;chmod&amp;nbsp;600&amp;nbsp;/etc/ssh/ssh_host_rsa_key
$&amp;nbsp;chmod&amp;nbsp;600&amp;nbsp;/etc/ssh/ssh_host_ecdsa_key
$&amp;nbsp;chmod&amp;nbsp;600&amp;nbsp;/etc/ssh/ssh_host_ed25519_key
$&amp;nbsp;systemctl&amp;nbsp;restart&amp;nbsp;sshd&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;注意：从8.8开始默认禁用使用SHA-1哈希算法的RSA签名，从9.5以后ssh-keygen 默认使用Ed25519加密算法，dsa从openssh 9.0就不再使用，rsa从openssh 9.3开始就不再使用。详&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #222222; font-family: 方正兰亭细黑_GBK, 方正兰亭粗黑简体, 方正兰亭特黑简体, 方正正粗黑简体; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;情请阅读：&lt;/span&gt;&lt;a href=&quot;http://www.openssh.com/releasenotes.html#9.6p1&quot; rel=&quot;nofollow&quot; title=&quot;OpenSSH: Release Notes&quot; style=&quot;margin: 0px; padding: 0px; box-sizing: border-box; outline: none; text-decoration-line: none; color: rgb(78, 161, 219); font-family: 方正兰亭细黑_GBK, 方正兰亭粗黑简体, 方正兰亭特黑简体, 方正正粗黑简体; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;OpenSSH: Release Notes&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;3.4 正确创建key的方式&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;ssh-keygen&amp;nbsp;-t&amp;nbsp;ed25519&lt;/pre&gt;&lt;p&gt;3.5 使用源码升级后未找到ssh-copy-id命令&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;rpm升级openssh之后，高版本的openssh-clinet已经没有ssh-copy-id命令，对于用此命令做免密登陆，不是很方便。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;如果使用openssh源码的话，解压之后，会在openssh-9.7p1/contrib下生产ssh-copy-id文件&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;chmod&amp;nbsp;+x&amp;nbsp;ssh-copy-id&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;mv&amp;nbsp;ssh-copy-id&amp;nbsp;/usr/bin&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 19 Jun 2024 09:18:00 +0800</pubDate></item><item><title>Kafka 3.5.1 基于kraft 集群搭建</title><link>https://www.iopst.cn/article/260.html</link><description>&lt;h4 class=&quot;md-end-block md-heading md-focus&quot; id=&quot;Kafka3.5.1kraft集群搭建-一、简介&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(23, 43, 77); line-height: 1.42857; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain md-expand&quot;&gt;一、简介&lt;/span&gt;&lt;/h4&gt;&lt;p class=&quot;md-end-block md-p&quot; style=&quot;margin-top: 10px; margin-bottom: 0px; padding: 0px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;Apache 软件基金会发布了包含许多新特性和改进的 Kafka 3.3.1。这是第一个标志着可以在生产环境中使用 KRaft（Kafka Raft）共识协议的版本。在几年的开发过程中，它先是在 Kafka 2.8 早期访问版本中发布，然后又在 Kafka 3.0 预览版本中发布。&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;md-end-block md-p&quot; style=&quot;margin-top: 10px; margin-bottom: 0px; padding: 0px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;KRaft 是一种共识协议，可以直接在 Kafka 中管理元数据。元数据的管理被整合到了 Kafka 当中，而不需要使用像 ZooKeeper 这样的第三方工具，这大大简化了 Kafka 的架构。这种新的 KRaft 模式提高了分区的可伸缩性和弹性，同时简化了 Kafka 的部署，现在可以不依赖 ZooKeeper 单独部署 Kafka 了。&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;md-end-block md-p&quot; style=&quot;margin-top: 10px; margin-bottom: 0px; padding: 0px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;KRaft 使用了 Raft 共识算法的一种基于事件的变体，因此得名。&lt;/span&gt;&lt;/p&gt;&lt;h4 class=&quot;md-end-block md-heading&quot; id=&quot;Kafka3.5.1kraft集群搭建-二、集群安装&quot; style=&quot;margin: 20px 0px 0px; padding: 0px; color: rgb(23, 43, 77); line-height: 1.42857; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;二、集群安装&lt;/span&gt;&lt;/h4&gt;&lt;h5 class=&quot;md-end-block md-heading md-focus&quot; id=&quot;Kafka3.5.1kraft集群搭建-2.1环境规划&quot; style=&quot;margin: 10px 0px 0px; padding: 0px; color: rgb(94, 108, 132); font-size: 14px; line-height: 1.66667; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain md-expand&quot;&gt;2.1 环境规划&lt;/span&gt;&lt;/h5&gt;&lt;br/&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/08/202308251692936760305681.png&quot; alt=&quot;image.png&quot;/&gt;&lt;h5 class=&quot;md-end-block md-heading&quot; id=&quot;Kafka3.5.1kraft集群搭建-2.2集群安装&quot; style=&quot;margin: 20px 0px 0px; padding: 0px; color: rgb(94, 108, 132); font-size: 14px; line-height: 1.66667; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;2.2 集群安装&lt;/span&gt;&lt;/h5&gt;&lt;h6 class=&quot;md-end-block md-heading&quot; id=&quot;Kafka3.5.1kraft集群搭建-2.2.1下载并解压&quot; style=&quot;margin: 10px 0px 0px; padding: 0px; color: rgb(94, 108, 132); font-size: 12px; line-height: 1.66667; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;2.2.1 下载并解压&lt;/span&gt;&lt;/h6&gt;&lt;h6 class=&quot;md-end-block md-heading&quot; id=&quot;Kafka3.5.1kraft集群搭建-2.2.1下载并解压&quot; style=&quot;margin: 10px 0px 0px; padding: 0px; color: rgb(94, 108, 132); font-size: 12px; line-height: 1.66667; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;/h6&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;wget&amp;nbsp;https://downloads.apache.org/kafka/3.5.1/kafka_2.13-3.5.1.tgz&lt;/pre&gt;&lt;h6 class=&quot;md-end-block md-heading&quot; id=&quot;Kafka3.5.1kraft集群搭建-2.2.2修改配置文件&quot; style=&quot;margin: 20px 0px 0px; padding: 0px; color: rgb(94, 108, 132); font-size: 12px; line-height: 1.66667; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;2.2.2 修改配置文件&lt;/span&gt;&lt;/h6&gt;&lt;h6 class=&quot;md-end-block md-heading&quot; id=&quot;Kafka3.5.1kraft集群搭建-2.2.2修改配置文件&quot; style=&quot;margin: 20px 0px 0px; padding: 0px; color: rgb(94, 108, 132); font-size: 12px; line-height: 1.66667; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;&lt;/span&gt;&lt;/h6&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;cd&amp;nbsp;/opt/kafka_2.13-3.5.1/config/kraft
&amp;nbsp;
[root@k8s-master1&amp;nbsp;kraft]#&amp;nbsp;grep&amp;nbsp;-Ev&amp;nbsp;&amp;quot;^#|^$&amp;quot;&amp;nbsp;server.properties
$&amp;nbsp;vi&amp;nbsp;server.properties
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@192.168.1.215:9093,2@192.168.1.216:9093,3@192.168.1.217:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
inter.broker.listener.name=PLAINTEXT
advertised.listeners=PLAINTEXT://192.168.1.215:9092
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
#数据存储位置
log.dirs=/opt/kafka_2.13-3.5.1/logs/kraft-combined-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000&lt;/pre&gt;&lt;p class=&quot;md-end-block md-p&quot; style=&quot;margin-top: 10px; margin-bottom: 0px; padding: 0px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;注意：集群内主机配置文件都需要修改，差异如下&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;md-end-block md-p&quot; style=&quot;margin-top: 10px; margin-bottom: 0px; padding: 0px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#&amp;nbsp;节点ID，自己设置每个节点的值要不同
node.id=1
#&amp;nbsp;使用IP端口，每个节点填写自己节点的IP
advertised.listeners=PLAINTEXT://192.168.1.215:9092&lt;/pre&gt;&lt;h6 class=&quot;md-end-block md-heading&quot; id=&quot;Kafka3.5.1kraft集群搭建-2.2.3初始化集群&quot; style=&quot;margin: 20px 0px 0px; padding: 0px; color: rgb(94, 108, 132); font-size: 12px; line-height: 1.66667; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;2.2.3 初始化集群&lt;/span&gt;&lt;/h6&gt;&lt;p class=&quot;md-end-block md-p&quot; style=&quot;margin-top: 10px; margin-bottom: 0px; padding: 0px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;在其中一台服务器上执行下面命令生成一个uuid&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;md-end-block md-p&quot; style=&quot;margin-top: 10px; margin-bottom: 0px; padding: 0px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;sh&amp;nbsp;bin/kafka-storage.sh&amp;nbsp;random-uuid
&amp;nbsp;16K1urtBT6iLRg_L77bY9Q&lt;/pre&gt;&lt;p class=&quot;md-end-block md-p&quot; style=&quot;margin-top: 10px; margin-bottom: 0px; padding: 0px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;用该uuid格式化kafka存储目录，集群内服务器都要执行以下命令&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;sh&amp;nbsp;bin/kafka-storage.sh&amp;nbsp;format&amp;nbsp;-t&amp;nbsp;16K1urtBT6iLRg_L77bY9Q&amp;nbsp;-c&amp;nbsp;config/kraft/server.properties&lt;/pre&gt;&lt;h6 class=&quot;md-end-block md-heading&quot; id=&quot;Kafka3.5.1kraft集群搭建-2.2.3启动集群&quot; style=&quot;margin: 20px 0px 0px; padding: 0px; color: rgb(94, 108, 132); font-size: 12px; line-height: 1.66667; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain&quot;&gt;2.2.3 启动集群&lt;/span&gt;&lt;/h6&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;sh&amp;nbsp;bin/kafka-server-start.sh&amp;nbsp;-daemon&amp;nbsp;config/kraft/server.properties&lt;/pre&gt;&lt;h6 class=&quot;md-end-block md-heading md-focus&quot; id=&quot;Kafka3.5.1kraft集群搭建-2.2.4验证集群&quot; style=&quot;margin: 20px 0px 0px; padding: 0px; color: rgb(94, 108, 132); font-size: 12px; line-height: 1.66667; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;md-plain md-expand&quot;&gt;2.2.4 验证集群&lt;/span&gt;&lt;/h6&gt;&lt;ul style=&quot;margin-top: 10px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;span class=&quot;md-plain md-expand&quot;&gt;创建topic&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;sh&amp;nbsp;bin/kafka-topics.sh&amp;nbsp;--bootstrap-server&amp;nbsp;localhost:9092&amp;nbsp;--create&amp;nbsp;--topic&amp;nbsp;test&amp;nbsp;--partitions&amp;nbsp;3&amp;nbsp;--replication-factor&amp;nbsp;3
Created&amp;nbsp;topic&amp;nbsp;test.&lt;/pre&gt;&lt;ul style=&quot;margin-top: 10px; color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p class=&quot;md-end-block md-p md-focus&quot; style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 0px;&quot;&gt;&lt;span class=&quot;md-plain md-expand&quot;&gt;查看topic详情&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;sh&amp;nbsp;bin/kafka-topics.sh&amp;nbsp;--bootstrap-server&amp;nbsp;localhost:9092&amp;nbsp;--describe&amp;nbsp;test
Topic:&amp;nbsp;test&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TopicId:&amp;nbsp;GtjDnrWsSza0bHufc3pIRQ&amp;nbsp;PartitionCount:&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReplicationFactor:&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Configs:&amp;nbsp;segment.bytes=1073741824
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Topic:&amp;nbsp;test&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Partition:&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Leader:&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Replicas:&amp;nbsp;1,2,3&amp;nbsp;Isr:&amp;nbsp;1,2,3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Topic:&amp;nbsp;test&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Partition:&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Leader:&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Replicas:&amp;nbsp;2,3,1&amp;nbsp;Isr:&amp;nbsp;2,3,1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Topic:&amp;nbsp;test&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Partition:&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Leader:&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Replicas:&amp;nbsp;3,1,2&amp;nbsp;Isr:&amp;nbsp;3,1,2&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 25 Aug 2023 12:10:01 +0800</pubDate></item><item><title>openEuler22.03-LTS配置本地yum源</title><link>https://www.iopst.cn/article/259.html</link><description>&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&amp;nbsp; &amp;nbsp;本地yum源是指将操作系统的安装介质文件（ISO）映射至挂载点的方式提供yum源，适合无互联网、无内部私有网络yum源的环境。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;一、上传ISO文件至操作系统指定目录内&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 16px; vertical-align: baseline; background: rgb(255, 255, 255); overflow-wrap: break-word; line-height: 1.8em; color: rgb(51, 51, 51); font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; white-space: normal;&quot;&gt;　本文以将 openEuler-22.03-LTS-x86_64-dvd.iso 文件上传至/u01/soft/目录内，做为配置yum源的原始文件。&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; font-variant-ligatures: no-common-ligatures; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;[root@euler-node001&amp;nbsp;~]#&amp;nbsp;mkdir&amp;nbsp;/u01/soft&amp;nbsp;-p
[root@euler-node001&amp;nbsp;~]#&amp;nbsp;cd&amp;nbsp;/u01/soft/
[root@euler-node001&amp;nbsp;soft]#&amp;nbsp;pwd
/u01/soft
[root@euler-node001&amp;nbsp;soft]#&amp;nbsp;ls&amp;nbsp;-l
总用量&amp;nbsp;3561476
-rw-r--r--&amp;nbsp;1&amp;nbsp;root&amp;nbsp;root&amp;nbsp;3646947328&amp;nbsp;&amp;nbsp;3月&amp;nbsp;&amp;nbsp;9&amp;nbsp;10:17&amp;nbsp;openEuler-22.03-LTS-x86_64-dvd.iso&lt;/pre&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 16px; vertical-align: baseline; background: rgb(255, 255, 255); overflow-wrap: break-word; line-height: 1.8em; color: rgb(51, 51, 51); font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; white-space: normal;&quot;&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3 style=&quot;margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 16px; vertical-align: baseline; background: rgb(255, 255, 255); overflow-wrap: break-word; color: rgb(51, 51, 51); font-weight: normal; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; white-space: normal;&quot;&gt;二、创建挂载目录与挂载ISO文件&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 16px; vertical-align: baseline; background: rgb(255, 255, 255); overflow-wrap: break-word; line-height: 1.8em; color: rgb(51, 51, 51); font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; white-space: normal;&quot;&gt;　&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;[root@euler-node001&amp;nbsp;soft]#&amp;nbsp;mkdir&amp;nbsp;-p&amp;nbsp;/mnt/cdrom
[root@euler-node001&amp;nbsp;soft]#&amp;nbsp;mount&amp;nbsp;-o&amp;nbsp;loop&amp;nbsp;/u01/soft/openEuler-22.03-LTS-x86_64-dvd.iso&amp;nbsp;&amp;nbsp;/mnt/cdrom/
mount:&amp;nbsp;/mnt/cdrom:&amp;nbsp;WARNING:&amp;nbsp;source&amp;nbsp;write-protected,&amp;nbsp;mounted&amp;nbsp;read-only.&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;输出信息：mount: /mnt/cdrom: WARNING: source write-protected, mounted read-only.&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;--mount命令的 -o选项，loop，是指把一个文件当成硬盘分区mount到目录。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303091678328629351683.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;　上面为挂载成功后用df-h命令显示的效果。&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;三、&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;配置yum配置文件openEuler.repo&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;[root@euler-node001&amp;nbsp;soft]#&amp;nbsp;cd&amp;nbsp;/etc/yum.repos.d/
[root@euler-node001&amp;nbsp;yum.repos.d]#&amp;nbsp;cp&amp;nbsp;openEuler.repo{,.bak}
[root@euler-node001&amp;nbsp;yum.repos.d]#&amp;nbsp;vi&amp;nbsp;/etc/yum.repos.d/openEuler.repo
[root@euler-node001&amp;nbsp;yum.repos.d]#&amp;nbsp;cat&amp;nbsp;&amp;nbsp;/etc/yum.repos.d/openEuler.repo
[OS]
name=OS
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 16px; vertical-align: baseline; background: rgb(255, 255, 255); overflow-wrap: break-word; line-height: 1.8em; color: rgb(51, 51, 51); font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; white-space: normal;&quot;&gt;如上所示，把文中所有baseurl的值全部写成file:///mnt/cdrom ，所有gpgkey的值全部写成&lt;a href=&quot;http://file:///mnt/cdrom/RPM-GPG-KEY-openEuler。&quot; _src=&quot;http://file:///mnt/cdrom/RPM-GPG-KEY-openEuler。&quot;&gt;file:///mnt/cdrom/RPM-GPG-KEY-openEuler。&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 16px; vertical-align: baseline; background: rgb(255, 255, 255); overflow-wrap: break-word; line-height: 1.8em; color: rgb(51, 51, 51); font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; white-space: normal;&quot;&gt;修改保存后，清除并重新建立yum缓存：&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;yum&amp;nbsp;clean&amp;nbsp;all
yum&amp;nbsp;makecache&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><pubDate>Thu, 09 Mar 2023 10:09:56 +0800</pubDate></item><item><title>RabbitMQ集群部署</title><link>https://www.iopst.cn/article/257.html</link><description>&lt;p&gt;一、简介&lt;br/&gt;&lt;/p&gt;&lt;p&gt;1.1. 概述&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RabbitMQ是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点，当你要发送一个包裹时，你把你的包裹放到快递站，快递员最终会把你的快递送到收件人那里，按照这种逻辑RabbitMQ是一个快递站，一个快递员帮你传递快件。RabbitMQ与快递站的主要区别在于，它不处理快件而是接收，存储和转发消息数据。、&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;1.2 工作原理示意图&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677807447374183.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;1.3&amp;nbsp; 名词介绍&lt;/p&gt;&lt;p&gt;1、Broker:接收和分发消息的应用，RabbitMQ Server就是Message Broker&lt;/p&gt;&lt;p&gt;2、Connection: publisher / consumer和 broker之间的TCP连接&lt;/p&gt;&lt;p&gt;3、Channel:如果每一次访问RabbitMQ都建立一个Connection，在消息量大的时候建立TCP&lt;/p&gt;&lt;p&gt;Connection的开销将是巨大的，效率也较低。Channel是在connection 内部建立的逻辑连接，如果应用程序支持多线程，通常每个thread创建单独的channel进行通讯，AMQP method包含了channel id 帮助客户端和message broker识别 channel，所以channel 之间是完全隔离的。Channel作为轻量级的Connection极大减少了操作系统建TCP connection的开销&lt;/p&gt;&lt;p&gt;4、Exchange: message 到达 broker 的第一站，根据分发规则，匹配查询表中的 routing key，分发消息到queue 中去。常用的类型有: direct (point-to-point), topic(publish-subscribe) and fanout&lt;/p&gt;&lt;p&gt;(multicast)&lt;/p&gt;&lt;p&gt;5、Routing Key:生产者将消息发送到交换机时会携带一个key,来指定路由规则&lt;/p&gt;&lt;p&gt;6、binding Key:在绑定Exchange和Queue时，会指定一个BindingKey,生产者发送消息携带的RoutingKey会和bindingKey对比，若一致就将消息分发至这个队列&lt;/p&gt;&lt;p&gt;7、vHost 虚拟主机：每一个RabbitMQ服务器可以开设多个虚拟主机每一个vhost本质上是一个mini版的RabbitMQ服务器，拥有自己的 &amp;quot;交换机exchange、绑定Binding、队列Queue&amp;quot;，更重要的是每一个vhost拥有独立的权限机制，这样就能安全地使用一个RabbitMQ服务器来服务多个应用程序，其中每个vhost服务一个应用程序。&lt;/p&gt;&lt;p&gt;1.4 交换机类型&lt;br/&gt;&lt;/p&gt;&lt;p&gt;1.direct Exchange(直接交换机)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 匹配路由键，只有完全匹配消息才会被转发&lt;/p&gt;&lt;p&gt;2.Fanout Excange（扇出交换机）&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 将消息发送至所有的队列&lt;/p&gt;&lt;p&gt;3.Topic Exchange(主题交换机)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 将路由按模式匹配，此时队列需要绑定要一个模式上。符号“#”匹配一个或多个词，符号“匹配不多不少一个词。因此“abc.#”能够匹配到“abc.def.ghi”，但是“abc.” 只会匹配到“abc.def”。&lt;/p&gt;&lt;p&gt;4.Header Exchange&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 在绑定Exchange和Queue的时候指定一组键值对，header为键，根据请求消息中携带的header进行路由&lt;/p&gt;&lt;p&gt;1.5 工作模式&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;1.5.1 simple（简单模式）&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677807590550421.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;一个消费者消费一个生产者生产的东西。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;1.5.2&amp;nbsp;Work queues(工作模式)&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677807677436980.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;一个生产者生产信息，多个消费者进行消费，但是一条消息只能消费一次&lt;/p&gt;&lt;p&gt;1.5.3&amp;nbsp;Publish/Subscribe（发布订阅模式）&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677807714329582.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;生产者首先投递消息到交换机，订阅了这个交换机的队列就会收到生产者投递的消息&lt;/p&gt;&lt;p&gt;1.5.4&amp;nbsp;Routing（路由模式）&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677807760195715.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&amp;nbsp;生产者生产消息投递到direct交换机中，扇出交换机会根据消息携带的routing Key匹配相应的队列&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;1.5.5&amp;nbsp;Topics（主题模式）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677807794130871.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&amp;nbsp;生产者生产消息投递到topic交换机中，上面是完全匹配路由键，而主题模式是模糊匹配，只要有合适规则的路由就会投递给消费者&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;1.6 保证消息的稳定性&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;1.消息持久化&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;RabbitMQ的消息默认存在内存中的，一旦服务器意外挂掉，消息就会丢失。&lt;/p&gt;&lt;p&gt;消息持久化需做到三点&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;A、Exchange设置持久化&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;B、Queue设置持久化&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;C、Message持久化发送：发送消息设置发送模式deliveryMode=2，代表持久化消息&lt;/p&gt;&lt;p&gt;2.ACK确认机制&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;多个消费者同时收取消息，收取消息到一半，突然某个消费者挂掉，要保证此条消息不丢失，就需要acknowledgement机制，就是消费者消费完要通知服务端，服务端才将数据删除这样就解决了，及时一个消费者出了问题，没有同步消息给服务端，还有其他的消费端去消费，保证了消息不丢的case。&lt;/p&gt;&lt;p&gt;3.设置集群镜像模式&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 我们先来介绍下RabbitMQ三种部署模式：&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 1）单节点模式：最简单的情况，非集群模式，节点挂了，消息就不能用了。业务可能瘫痪，只能等待。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 2）普通模式：默认的集群模式，某个节点挂了，该节点上的消息不能用，有影响的业务瘫痪，只能等待节点恢复重启可用（必须持久化消息情况下）。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 3）镜像模式：把需要的队列做成镜像队列，存在于多个节点，属于RabbitMQ的HA方案&lt;/p&gt;&lt;p&gt;4.消息补偿机制&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 持久化的消息，保存到硬盘过程中，当前队列节点挂了，存储节点硬盘又坏了，消息丢了，怎么办？&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 产线网络环境太复杂，所以不知数太多，消息补偿机制需要建立在消息要写入DB日志，发送日志，接受日志，两者的状态必须记录。然后根据DB日志记录check 消息发送消费是否成功，不成功，进行消息补偿措施，重新发送消息处理。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;1.7&amp;nbsp;如何实现延迟队列&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;RabbitMQ本身没有延迟队列，需要靠TTL和DLX模拟出延迟的效果&lt;/p&gt;&lt;p&gt;1、 TTL（Time To Live）&lt;/p&gt;&lt;p&gt;RabbitMQ可以针对Queue和Message设置 x-message-tt，来控制消息的生存时间，如果超时，则消息变为dead letter&lt;/p&gt;&lt;p&gt;RabbitMQ针对队列中的消息过期时间有两种方法可以设置。&lt;/p&gt;&lt;p&gt;A: 通过队列属性设置，队列中所有消息都有相同的过期时间。&lt;/p&gt;&lt;p&gt;B: 对消息进行单独设置，每条消息TTL可以不同。&lt;/p&gt;&lt;p&gt;如果同时使用，则消息的过期时间以两者之间TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的TTL值，就成为dead letter&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2、DLX (Dead-Letter-Exchange)&lt;/p&gt;&lt;p&gt;RabbitMQ的Queue可以配置x-dead-letter-exchange 和x-dead-letter-routing-key（可选）两个参数，如果队列内出现了dead letter，则按照这两个参数重新路由。&lt;/p&gt;&lt;p&gt;x-dead-letter-exchange：出现dead letter之后将dead letter重新发送到指定exchange&lt;/p&gt;&lt;p&gt;x-dead-letter-routing-key：指定routing-key发送&lt;/p&gt;&lt;p&gt;队列出现dead letter的情况有：&lt;/p&gt;&lt;p&gt;A、消息或者队列的TTL过期&lt;/p&gt;&lt;p&gt;B、队列达到最大长度&lt;/p&gt;&lt;p&gt;C、消息被消费端拒绝（basic.reject or basic.nack）并且requeue=false&lt;/p&gt;&lt;p&gt;D、利用DLX，当消息在一个队列中变成死信后，它能被重新publish到另一个Exchange。这时候消息就可以重新被消费。&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;二、Rabbitmq部署&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;2.1 主机规划&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677822395703628.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.2 下载软件包&lt;/p&gt;&lt;p&gt;安装二进制rabbitmq需要安装erlang语言包，每个rabbitmq版本需要的erlang版本也不一样，要注意&lt;/p&gt;&lt;p&gt;比对地址：http://www.rabbitmq.com/which-erlang.html&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677825534287819.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; outline: 0px; margin-bottom: 24px; padding: 0px; list-style-position: initial; list-style-image: initial; font-size: 16px; overflow: auto hidden; overflow-wrap: break-word; color: rgba(0, 0, 0, 0.75); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures; white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;安装Erlang环境，注意版本要与RabbitMQ版本对应。这里演示我们选择以下版本下载：&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;wget&amp;nbsp;https://github.com/erlang/otp/releases/download/OTP-25.0/otp_src_25.0.tar.gz
wget&amp;nbsp;https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.11.4/rabbitmq-server-generic-unix-3.11.4.tar.xz&lt;/pre&gt;&lt;p&gt;2.3 安装依赖&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;yum&amp;nbsp;install&amp;nbsp;make&amp;nbsp;gcc&amp;nbsp;gcc-c++&amp;nbsp;build-essential&amp;nbsp;openssl&amp;nbsp;openssl-devel&amp;nbsp;unixODBC&amp;nbsp;unixODBC-devel&amp;nbsp;kernel-devel&amp;nbsp;m4&amp;nbsp;ncurses-devel&amp;nbsp;-y&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;2.4 解压安装erlang环境&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tar&amp;nbsp;xf&amp;nbsp;otp_src_25.0.tar.gz&amp;nbsp;-C&amp;nbsp;/data
cd&amp;nbsp;otp_src_25.0/
./configure&amp;nbsp;--prefix=/data/erlang
make&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;make&amp;nbsp;install&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677813032368918.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;此报错可忽略，若想要解决参考：&lt;/p&gt;&lt;p style=&quot;white-space: normal;&quot;&gt;在编译rabbitmq过程中报错：rabbitmq wxWidgets must be installed on your system.&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;width: 1413.6px; padding: 0px; white-space: normal; box-sizing: border-box; outline: 0px; list-style-position: initial; list-style-image: initial; overflow: auto hidden; line-height: 22px; overflow-wrap: break-word; color: rgba(0, 0, 0, 0.5); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.wxwidgets.org/downloads/&quot; style=&quot;box-sizing: border-box; outline: none; margin: 0px; padding: 0px; text-decoration-line: none; cursor: pointer; color: rgb(78, 161, 219); overflow-wrap: break-word;&quot;&gt;wxWidgets官网&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;[root@linux-node001]#&amp;nbsp;otp_src_25.0]#&amp;nbsp;yum&amp;nbsp;-y&amp;nbsp;install&amp;nbsp;bzip2
[root@linux-node001&amp;nbsp;otp_src_25.0]#&amp;nbsp;tar&amp;nbsp;-jxvf&amp;nbsp;&amp;nbsp;wxWidgets-3.0.5.tar.bz2&amp;nbsp;
[root@linux-node001t&amp;nbsp;otp_src_25.0]#&amp;nbsp;cd&amp;nbsp;wxWidgets-3.0.5
[root@linux-node001&amp;nbsp;otp_src_25.0]#&amp;nbsp;./configure&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;make&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;sudo&amp;nbsp;make&amp;nbsp;install&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.5 添加环境变量&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;vi&amp;nbsp;/etc/profile
export&amp;nbsp;ERLANG_HOME=/data/erlang
export&amp;nbsp;PATH=$ERLANG_HOME/bin:$PATH

$&amp;nbsp;source&amp;nbsp;/etc/profile&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.6 安装rabbitmq依赖&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;&amp;nbsp;sudo&amp;nbsp;yum&amp;nbsp;install&amp;nbsp;socat&amp;nbsp;-y&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.7 解压rabbitmq并配置环境变量&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tar&amp;nbsp;xf&amp;nbsp;rabbitmq-server-generic-unix-3.11.4.tar.xz&amp;nbsp;-C&amp;nbsp;/data/
mv&amp;nbsp;rabbitmq_server-3.11.4&amp;nbsp;rabbitmq

$&amp;nbsp;vi&amp;nbsp;/etc/profile
export&amp;nbsp;ERLANG_HOME=/data/rabbitmq
export&amp;nbsp;PATH=$ERLANG_HOME/sbin:$PATH

$&amp;nbsp;source&amp;nbsp;/etc/profile&lt;/pre&gt;&lt;p&gt;2.8 后台启动rabbitmq&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;rabbitmq-server&amp;nbsp;-detached&lt;/pre&gt;&lt;p&gt;2.9 开启管理页面插件&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;rabbitmq-plugins&amp;nbsp;enable&amp;nbsp;rabbitmq_management&lt;/pre&gt;&lt;p&gt;2.10 修改默认guest并创建用户&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677814084343570.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;rabbitmqctl&amp;nbsp;add_user&amp;nbsp;zhangsir&amp;nbsp;&amp;nbsp;Admin@123
rabbitmqctl&amp;nbsp;add_user&amp;nbsp;operation&amp;nbsp;Admin@123&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677814127871635.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;2.11 指定用户权限&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;rabbitmqctl&amp;nbsp;set_user_tags&amp;nbsp;zhangsir&amp;nbsp;administrator
rabbitmqctl&amp;nbsp;set_user_tags&amp;nbsp;operation&amp;nbsp;administrator&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677814206354069.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.12 用户角色类型&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;用户角色5种类型：
none：无任何角色。新创建的用户的角色默认为none。
management：可以访问Web管理页面。
policymaker：包含management的所有权限，并且可以管理策略（policy）和参数（parameter）。
monitoring：包含management的所有权限，并且可以看到所有连接（connections）、信道（channels）以及节点相关的信息。
administartor：包含monitoring的所有权限，并且可以管理用户、虚拟主机、权限、策略、参数等等。
administator代表了最高的权限。&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 0px; padding: 0px; font-size: 16px; color: rgb(85, 86, 102); line-height: 22px; overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures; white-space: normal;&quot;&gt;2.13 用户授权&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;命令格式：rabbitmqctl&amp;nbsp;set_permissions&amp;nbsp;[-p&amp;nbsp;vhosts]&amp;nbsp;{user}&amp;nbsp;{conf}&amp;nbsp;{write}&amp;nbsp;{read}
[-p&amp;nbsp;vhost]：授予用户访问权限的&amp;nbsp;vhost&amp;nbsp;名称，如果不写默认为&amp;nbsp;/。
user：指定哪个用户可以访问该vhost的权限。
conf：用户在哪些资源上拥有可配置权限（支持正则表达式）。
write：用户在哪些资源上拥有写权限（支持正则表达式）。
read：用户在哪些资源上拥有读权限（支持正则表达式）。

$&amp;nbsp;rabbitmqctl&amp;nbsp;set_permissions&amp;nbsp;-p&amp;nbsp;&amp;quot;/&amp;quot;&amp;nbsp;&amp;nbsp;operation&amp;nbsp;&amp;quot;.*&amp;quot;&amp;nbsp;&amp;quot;.*&amp;quot;&amp;nbsp;&amp;quot;.*&amp;quot;&lt;/pre&gt;&lt;ol style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; list-style-position: initial; list-style-image: initial; overflow: auto hidden; line-height: 22px; overflow-wrap: break-word; color: rgba(0, 0, 0, 0.5); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures; white-space: normal;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;2.14 登录&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677817328786971.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;如果业务使用单节到此结束，接下来我们继续配置集群。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.16 配置rabbitmq集群&lt;/p&gt;&lt;p&gt;2.16.1&amp;nbsp; 停止服务并拷贝erlang cookie&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;/data/rabbitmq/sbin/rabbitmqctl&amp;nbsp;&amp;nbsp;stop

cat&amp;nbsp;&amp;nbsp;/home/operation/.erlang.cookie&amp;nbsp;&amp;nbsp;(每台机器复制内容保持一致）
rsync&amp;nbsp;&amp;nbsp;-av&amp;nbsp;&amp;nbsp;/home/operation/.erlang.cookie&amp;nbsp;&amp;nbsp;节点的ip:/home/operation/.erlang.cookie（支持rsync复制下）

#启动
/data/rabbitmq/sbin/rabbitmq-server&amp;nbsp;&amp;nbsp;&amp;nbsp;-detached&amp;nbsp;（每台机器启动服务）&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.16.2 将rabbitmq节点加入集群&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#192.168.1.11&amp;nbsp;

rabbitmqctl&amp;nbsp;stop_app
rabbitmqctl&amp;nbsp;join_cluster&amp;nbsp;rabbit@node1&amp;nbsp;&amp;nbsp;--ram
rabbitmqctl&amp;nbsp;start_app
rabbitmqctl&amp;nbsp;cluster_status


#192.168.1.12&amp;nbsp;

rabbitmqctl&amp;nbsp;stop_app
rabbitmqctl&amp;nbsp;join_cluster&amp;nbsp;rabbit@node1&amp;nbsp;&amp;nbsp;--disc
rabbitmqctl&amp;nbsp;start_app
rabbitmqctl&amp;nbsp;cluster_status&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.16.2 查看集群状态&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;rabbitmqctl&amp;nbsp;cluster_status&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.16.3 访问IP：15672查看集群情况&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677818129954545.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;三、配置镜像队列&lt;/p&gt;&lt;p&gt;&lt;br/&gt;3.1 设置镜像队列策略&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#&amp;nbsp;任意节点
rabbitmqctl&amp;nbsp;set_policy&amp;nbsp;ha-all&amp;nbsp;&amp;quot;^&amp;quot;&amp;nbsp;&amp;#39;{&amp;quot;ha-mode&amp;quot;:&amp;quot;all&amp;quot;}&amp;#39;&lt;/pre&gt;&lt;p&gt;将所有队列设置为镜像队列，即队列会被复制到各个节点，各个节点状态一致，RabbitMQ高可用集群就已经搭建好了,我们可以重启服务，查看其队列是否在从节点同步&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;3.2 移除集群节点[拓展]&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;rabbitmqctl&amp;nbsp;forget_cluster_node&amp;nbsp;rabbit@linux-node002&lt;/pre&gt;&lt;p&gt;3.3 修改集群名称（默认为第一个node名称）[拓展]&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); font-variant-ligatures: no-common-ligatures; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#&amp;nbsp;任意节点
rabbitmqctl&amp;nbsp;set_cluster_name&amp;nbsp;rabbitmq_cluster1&lt;/pre&gt;&lt;p&gt;3.4 测试队列同步&lt;br/&gt;&lt;/p&gt;&lt;p&gt;在node1上&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677819455626374.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;队列开始同步&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303031677819531885486.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;登录其他两个node查看，镜像队列已经同步。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 03 Mar 2023 09:35:08 +0800</pubDate></item><item><title>Activemq的高可用—基于Zookeeper的主从集群</title><link>https://www.iopst.cn/article/256.html</link><description>&lt;p&gt;一、Activemq介绍&lt;/p&gt;&lt;p&gt;1.1&amp;nbsp; Activemq简介&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Activemq 是Apache出品，最流行的，能力强劲的开源消息总线。完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。&lt;/p&gt;&lt;p&gt;1.2&amp;nbsp; Activemq特性&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)；&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性；&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;通过常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resourceadaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE1.4商业服务器上支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;支持通过JDBC和journal提供高速的消息持久化&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 从设计上保证了高性能的集群,客户端-服务器,点对点&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 支持Ajax&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 支持与Axis的整合 可以很容易得调用内嵌JMS provider,进行测试&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;二、环境部署演示&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.1 主机规划&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303021677742036638317.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.2 搭建zookeeper集群（略）&lt;/p&gt;&lt;p&gt;zk集群地址：&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;zkAddress=&amp;quot;192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181&amp;quot;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.3 搭建Activemq集群&lt;/p&gt;&lt;p&gt;2.3.1 下载Activemq安装包&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;cd&amp;nbsp;/data
wget&amp;nbsp;https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/5.18.3/apache-activemq-5.18.3-bin.tar.gz&lt;/pre&gt;&lt;p&gt;2.3.2 解压&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tar&amp;nbsp;xf&amp;nbsp;apache-activemq-5.18.3-bin.tar.gz&amp;nbsp;-C&amp;nbsp;/data/
mv&amp;nbsp;apache-activemq-5.18.3&amp;nbsp;activemq
cd&amp;nbsp;activemq

#下载jdk13并解压
https://download.java.net/java/GA/jdk13/5b8a42f3905b406298b72d750b6919f6/33/GPL/openjdk-13_linux-x64_bin.tar.gz
修改&amp;nbsp;env，vi&amp;nbsp;/data/activemq/bin/env&amp;nbsp;,增加如下配置
JAVA_HOME=&amp;quot;/data/activemq/jdk-13&amp;quot;
CLASSPATH=.:$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin&lt;/pre&gt;&lt;p&gt;2.3.3&amp;nbsp;&lt;span style=&quot;font-size:14px;font-family:宋体&quot;&gt;修改控制台的登录用户名密码&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:14px;font-family:宋体&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;cd&amp;nbsp;/data/activemq/conf/
vi&amp;nbsp;jetty-realm.properties

#用户名:密码,权限
admin:&amp;nbsp;admin,admin
user:&amp;nbsp;user,user
operation:&amp;nbsp;Admin@123,admin&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size:14px;font-family:宋体&quot;&gt;&lt;/span&gt;2.3.4&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: 宋体;&quot;&gt;配置策安全略，禁止无关人员访问发送接收信息&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#新增一个插件,在&amp;lt;broker&amp;gt;节点里面&amp;lt;systemUsage&amp;gt;节点前面添加
&amp;lt;plugins&amp;gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;simpleAuthenticationPlugin&amp;gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;users&amp;gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;authenticationUser&amp;nbsp;username=&amp;quot;${activemq.username}&amp;quot;&amp;nbsp;password=&amp;quot;${activemq.password}&amp;quot;&amp;nbsp;groups=&amp;quot;users,admins&amp;quot;/&amp;gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/users&amp;gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/simpleAuthenticationPlugin&amp;gt;&amp;nbsp;&amp;nbsp;
&amp;lt;/plugins&amp;gt;&lt;/pre&gt;&lt;p&gt;2.3.5&amp;nbsp;修改三台服务器管控台端口。默认为8161。&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;vi&amp;nbsp;/data/activemq/conf/jetty.xml&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303021677739770635874.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303021677739912328702.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303021677739840484828.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;2.3.5 集群持久化配置&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&amp;nbsp;注意：&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF; color: #FF0000;&quot;&gt;3个activemq的brokerName必须相同，否则不能加入集群&lt;/span&gt;&lt;span style=&quot;color: #4D4D4D; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #FFFFFF;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/03/202303021677740036659792.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;&amp;lt;persistenceAdapter&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!--&amp;lt;kahaDB&amp;nbsp;directory=&amp;quot;${activemq.data}/kahadb&amp;quot;/&amp;gt;--&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;replicatedLevelDB
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;directory=&amp;quot;${activemq.data}/leveldb&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;replicas=&amp;quot;3&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bind=&amp;quot;tcp://0.0.0.0:62621&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zkAddress=&amp;quot;192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zkPassword=&amp;quot;&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hostname=&amp;quot;本机IP&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zkPath=&amp;quot;/activemq/leveldb-stores&amp;quot;&amp;nbsp;/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/persistenceAdapter&amp;gt;&lt;/pre&gt;&lt;p&gt;2.3.6 启动&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;/data/activemq/bin/activemq&amp;nbsp;start&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.4 集群管理&lt;/p&gt;&lt;p&gt;（1）通过使用ZooInspector工具查看zookeeper集群情况&lt;/p&gt;&lt;p&gt;（2）&lt;a href=&quot;http://192.168.1.10:8161/admin&quot; _src=&quot;http://192.168.1.10:8161/admin&quot;&gt;http://192.168.1.10:8161/admin&lt;/a&gt;&amp;nbsp;默认用户名与口令为admin登录ActiveMQ管理端&lt;/p&gt;&lt;p&gt;通过以上步骤，便可以实现Activemq的主从集群，当Master主节点出现故障宕机后，Slave从节点便会通过投票机制，票数最多的Slave从节点升级为新的Master主节点，用来提供服务。当故障节点恢复之后，会重新加入到集群中并连接 Master 进入Slave 模式。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;客户端配置：&lt;span style=&quot;color: #202124; font-family: consolas, &amp;quot;lucida console&amp;quot;, &amp;quot;courier new&amp;quot;, monospace; font-size: 12px; white-space: pre-wrap; background-color: #FFFFFF;&quot;&gt;failover:(tcp:192.168.1.10:61616,&lt;span style=&quot;color: #202124; font-family: consolas, &amp;quot;lucida console&amp;quot;, &amp;quot;courier new&amp;quot;, monospace; font-size: 12px; white-space: pre-wrap; background-color: #FFFFFF;&quot;&gt;192.168.1.11:61616&lt;/span&gt;,&lt;span style=&quot;color: #202124; font-family: consolas, &amp;quot;lucida console&amp;quot;, &amp;quot;courier new&amp;quot;, monospace; font-size: 12px; white-space: pre-wrap; background-color: #FFFFFF;&quot;&gt;192.168.1.12:61616&lt;/span&gt;)?randomize=false&lt;/span&gt;&lt;/p&gt;</description><pubDate>Wed, 01 Mar 2023 12:16:49 +0800</pubDate></item><item><title>基于OpenLDAP_MirrorMode的OpenLDAP高可用</title><link>https://www.iopst.cn/article/254.html</link><description>&lt;p&gt;1、主机规划&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/02/202302281677550483900892.png&quot; alt=&quot;image.png&quot;/&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2、示意图&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/02/202302281677550503507216.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;3、基础环境准备&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#关闭selinux和防火墙
sed&amp;nbsp;-i&amp;nbsp;&amp;#39;/SELINUX/s/enforcing/disabled/&amp;#39;&amp;nbsp;/etc/selinux/config&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;sestatus
/bin/systemctl&amp;nbsp;disable&amp;nbsp;firewalld.service&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;/bin/systemctl&amp;nbsp;stop&amp;nbsp;firewalld.service

#配置阿里源
wget&amp;nbsp;-O&amp;nbsp;/etc/yum.repos.d/CentOS-Base.repo&amp;nbsp;http://mirrors.aliyun.com/repo/Centos-7.repo
sed&amp;nbsp;-i&amp;nbsp;&amp;#39;s/$releasever/7/g&amp;#39;&amp;nbsp;/etc/yum.repos.d/CentOS-Base.repo
yum&amp;nbsp;clean&amp;nbsp;all&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;yum&amp;nbsp;list&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;4、安装依赖包和下载软件包&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#安装依赖
sudo&amp;nbsp;yum&amp;nbsp;-y&amp;nbsp;install&amp;nbsp;libtool-ltdl&amp;nbsp;libtool-ltdl-devel&amp;nbsp;gcc&amp;nbsp;openssl&amp;nbsp;openssl-devel&amp;nbsp;cyrus-sasl*&amp;nbsp;libdb*&amp;nbsp;sasl*
sudo&amp;nbsp;mkdir&amp;nbsp;/data/&amp;nbsp;-p&amp;nbsp;
sudo&amp;nbsp;chown&amp;nbsp;-R&amp;nbsp;operation:operation&amp;nbsp;/data/
cd&amp;nbsp;/data/
wget&amp;nbsp;ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.45.tgz
wget&amp;nbsp;http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;二、 安装Berkeley DB和openldap&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;编译安装openldap需要数据库的支持，openldap的数据库支持Berkeley DB,Oracle,Mysql,MariaDB,GDBM等数据库。默认openldap采用Berkeley DB，并且openldap对数据库有一定的要求，openldap 2.4的软件为例，需要Berkeley DB 4.4版本以上.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.1 编译安装Berkeley DB&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tar&amp;nbsp;-xf&amp;nbsp;db-4.6.21.tar.gz&amp;nbsp;-C&amp;nbsp;/data
cd&amp;nbsp;/data/db-4.6.21/build_unix/&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;mkdir&amp;nbsp;/data/BerkeleyDB
../dist/configure&amp;nbsp;--prefix=/data/BerkeleyDB
make&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;make&amp;nbsp;install

echo&amp;nbsp;&amp;quot;/data/BerkeleyDB/lib/&amp;quot;&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;/etc/ld.so.conf
ldconfig&amp;nbsp;-v
ln&amp;nbsp;-sv&amp;nbsp;/data/BerkeleyDB/include&amp;nbsp;/usr/include/BerkeleyDB&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.2 编译安装openldap&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tar&amp;nbsp;-xf&amp;nbsp;openldap-2.4.45.tgz&amp;nbsp;-C&amp;nbsp;/data
cd&amp;nbsp;/data/openldap-2.4.45/
./configure&amp;nbsp;--prefix=/data/openldap&amp;nbsp;--enable-syslog&amp;nbsp;--enable-modules&amp;nbsp;--enable-debug&amp;nbsp;--with-tls&amp;nbsp;CPPFLAGS=-I/data/BerkeleyDB/include/&amp;nbsp;LDFLAGS=-L/data/BerkeleyDB/lib/&amp;nbsp;--enable-ldap&amp;nbsp;--enable-relay&amp;nbsp;--enable-accesslog&amp;nbsp;--enable-auditlog&amp;nbsp;--enable-syncprov&amp;nbsp;--with-cyrus-sasl&amp;nbsp;--enable-spasswd
make&amp;nbsp;depend
make&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;make&amp;nbsp;install

echo&amp;nbsp;&amp;quot;/data/openldap/lib/&amp;quot;&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;/etc/ld.so.conf
ldconfig&amp;nbsp;-v
ln&amp;nbsp;-sv&amp;nbsp;/data/openldap/include/&amp;nbsp;/usr/include/ldap
ln&amp;nbsp;-s&amp;nbsp;/data/openldap/bin/*&amp;nbsp;/usr/local/bin/
ln&amp;nbsp;-s&amp;nbsp;/data/openldap/sbin/*&amp;nbsp;/usr/local/sbin/&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.3 配置openldap&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;配置openldap的方法有两种&lt;/p&gt;&lt;p&gt;*&amp;nbsp; 通过修改配置文件实现配置&lt;/p&gt;&lt;p&gt;*&amp;nbsp; 通过配置数据库的形式完成配置（slapd.d下的数据库配置文件）,属于动态配置不需要重启slapd进程,此配置文件在cn=config目录下的LDIF的配置文件 。此文件不建议手动修改，用ldap命令生成。&lt;/p&gt;&lt;p&gt;这里，我们将通过第一种通过修改配置文件实现的方式来演示。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.3.1 创建用户(假如以ldap用户启动)&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;useradd&amp;nbsp;ldap&lt;/pre&gt;&lt;p&gt;2.3.1 创建rootdn密码&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;/usr/local/sbin/slappasswd
New&amp;nbsp;password:
Re-enter&amp;nbsp;new&amp;nbsp;password:
{SSHA}COM7SL18KzRv+ZI4iYC7lVZdiYrie0PX&lt;/pre&gt;&lt;p&gt;2.3.3 创建相关目录及授权&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;mkdir&amp;nbsp;/data/openldap/{data,log,var}&amp;nbsp;-p

cp&amp;nbsp;/data/openldap/etc/openldap/DB_CONFIG.example&amp;nbsp;/data/openldap/data/DB_CONFIG
chown&amp;nbsp;-R&amp;nbsp;ldap:ldap&amp;nbsp;/data/openldap/
chmod&amp;nbsp;700&amp;nbsp;-R&amp;nbsp;/data/openldap/data&lt;/pre&gt;&lt;p&gt;2.3.4 修改配置文件&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;vi&amp;nbsp;/data/openldap/etc/openldap/slapd.conf

include&amp;nbsp;/data/openldap/etc/openldap/schema/core.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/collective.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/corba.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/cosine.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/duaconf.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/dyngroup.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/inetorgperson.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/java.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/misc.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/nis.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/openldap.schema
include&amp;nbsp;/data/openldap/etc/openldap/schema/ppolicy.schema
pidfile&amp;nbsp;/data/openldap/var/run/slapd.pid
argsfile&amp;nbsp;/data/openldap/var/run/slapd.args
loglevel&amp;nbsp;256
logfile&amp;nbsp;/data/openldap/log/slapd.log
moduleload&amp;nbsp;syncprov.la
disallow&amp;nbsp;bind_anon
database&amp;nbsp;mdb
maxsize		1073741824
directory	/data/openldap/data
suffix		&amp;quot;dc=iopst,dc=com&amp;quot;
rootdn		&amp;quot;cn=www,dc=iopst,dc=com&amp;quot;
access&amp;nbsp;to&amp;nbsp;dn.subtree=&amp;quot;ou=huyu,ou=group,dc=iopst,dc=com&amp;quot;
&amp;nbsp;&amp;nbsp;by&amp;nbsp;group.exact=&amp;quot;cn=admin,ou=huyu,ou=group,dc=iopst,dc=com&amp;quot;&amp;nbsp;write
access&amp;nbsp;to&amp;nbsp;*&amp;nbsp;by&amp;nbsp;*&amp;nbsp;read
rootpw&amp;nbsp;{SSHA}04W6/rxm3B4Re/uI+ecU12GWCm5+aUmOZ
index&amp;nbsp;objectclass&amp;nbsp;eq
overlay&amp;nbsp;syncprov
syncprov-checkpoint&amp;nbsp;100&amp;nbsp;10
syncprov-sessionlog&amp;nbsp;100
serverID&amp;nbsp;1
syncrepl&amp;nbsp;rid=1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;provider=ldap://10.148.170.129:389
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bindmethod=simple
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;binddn=&amp;quot;cn=www,dc=iopst,dc=com&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;credentials=123456
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;searchbase=&amp;quot;dc=iopst,dc=com&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;schemachecking=off
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type=refreshAndPersist
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;retry=&amp;quot;60&amp;nbsp;+&amp;quot;

syncrepl&amp;nbsp;rid=2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;provider=ldap://10.148.170.130:389
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bindmethod=simple
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;binddn=&amp;quot;cn=www,dc=iopst,dc=com&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;credentials=123456
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;searchbase=&amp;quot;dc=iopst,dc=com&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;schemachecking=off
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type=refreshAndPersist
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;retry=&amp;quot;60&amp;nbsp;+&amp;quot;
mirrormode&amp;nbsp;on
mirrormode&amp;nbsp;on&lt;/pre&gt;&lt;p&gt;注意： 两个服务器的配置文件有两个地方不一致&lt;/p&gt;&lt;p&gt;1）serverID不一致&amp;nbsp;&lt;/p&gt;&lt;p&gt;2）provider=ldap://：port 不一致&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.3.5&amp;nbsp; 开启日志功能&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;通过修改配置文件开启日志功能
sudo&amp;nbsp;vim&amp;nbsp;/etc/rsyslog.d/slapd.conf
local4.*&amp;nbsp;/data/openldap/log/openldap.log

sudo&amp;nbsp;systemctl&amp;nbsp;restart&amp;nbsp;&amp;nbsp;rsyslog&lt;/pre&gt;&lt;p&gt;2.3.6 启动ldap&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;/data/openldap/libexec/slapd&amp;nbsp;-u&amp;nbsp;ldap&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;三、PHPLDAPadmin安装&lt;/p&gt;&lt;p&gt;3.1 安装工具&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;yum&amp;nbsp;-y&amp;nbsp;install&amp;nbsp;httpd&amp;nbsp;php&amp;nbsp;php-ldap&amp;nbsp;php-gd&amp;nbsp;php-mbstring&amp;nbsp;php-pear&amp;nbsp;php-bcmath&amp;nbsp;php-xml
yum&amp;nbsp;-y&amp;nbsp;install&amp;nbsp;epel-release
yum&amp;nbsp;--enablerepo=epel&amp;nbsp;-y&amp;nbsp;install&amp;nbsp;phpldapadmin&lt;/pre&gt;&lt;p&gt;3.2 修改配置文件&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;vim&amp;nbsp;/etc/phpldapadmin/config.php&amp;nbsp;
修改如下：
$servers-&amp;gt;setValue(&amp;#39;login&amp;#39;,&amp;#39;attr&amp;#39;,&amp;#39;dn&amp;#39;);
//$servers-&amp;gt;setValue(&amp;#39;login&amp;#39;,&amp;#39;attr&amp;#39;,&amp;#39;uid&amp;#39;);

vi&amp;nbsp;/etc/httpd/conf.d/phpldapadmin.conf
#Apache2.4&amp;nbsp;
Require&amp;nbsp;local
Require&amp;nbsp;all&amp;nbsp;granted

#Apache&amp;nbsp;2.2
Order&amp;nbsp;Deny,Allow
Deny&amp;nbsp;from&amp;nbsp;all
Allow&amp;nbsp;from&amp;nbsp;all&lt;/pre&gt;&lt;p&gt;3.3 启动httpd&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;systemctl&amp;nbsp;start&amp;nbsp;httpd&lt;/pre&gt;&lt;p&gt;3.4 访问&lt;a href=&quot;http://10.148.170.129&quot; _src=&quot;http://10.148.170.129&quot;&gt;http://10.148.170.129&lt;/a&gt;&amp;nbsp;&amp;amp;&amp;amp; &lt;a href=&quot;http://10.148.170.130&quot; _src=&quot;http://10.148.170.130&quot;&gt;http://10.148.170.130&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;四、数据同步演示&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/02/202302281677551437492267.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/02/202302281677551464303721.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;现在在10.148.170.129创建一个OU名为t1&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/02/202302281677551596873314.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;可以看到已经同步到10.148.170.130，现在我们在10.148.170.130上创建一个OU名为t2&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2023/02/202302281677551660327551.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;white-space: normal;&quot;&gt;四、问题处理&lt;/p&gt;&lt;p style=&quot;white-space: normal;&quot;&gt;4. 1、 This base cannot be created with PLA.（如果导入用户恢复无需操作）&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;1）添加一个base.ldif文件，里面的dc和配置文件里的保持一致即可
dn:&amp;nbsp;dc=iopst,dc=cn
o:&amp;nbsp;ldap
objectclass:&amp;nbsp;dcObject
objectclass:&amp;nbsp;organization

2）然后执行命令导入数据库
ldapadd&amp;nbsp;-f&amp;nbsp;base.ldif&amp;nbsp;-x&amp;nbsp;-D&amp;nbsp;cn=www,dc=iopst,dc=cn&amp;nbsp;&amp;nbsp;-W

然后会提示输入密码，添加成功会提示增加了一个新的节点
Enter&amp;nbsp;LDAP&amp;nbsp;Password:
adding&amp;nbsp;new&amp;nbsp;entry&amp;nbsp;&amp;quot;dc=iopst,dc=cn&amp;quot;

3）在&amp;nbsp;phpldapadmin&amp;nbsp;控制面板刷新下，发现根节点已经变成了可以编辑的状态了。&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;五、数据导出与导入&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#导出
&amp;nbsp;/data/openldap/bin/ldapsearch&amp;nbsp;-LLL&amp;nbsp;&amp;nbsp;-x&amp;nbsp;&amp;nbsp;-w&amp;nbsp;admin@123&amp;nbsp;-D&amp;nbsp;&amp;quot;cn=www,dc=iopst,dc=com&amp;quot;&amp;nbsp;-b&amp;nbsp;&amp;quot;dc=iopst,dc=com&amp;quot;&amp;nbsp;&amp;gt;&amp;nbsp;backup_data2.ldif
&amp;nbsp;
#导入
/data/openldap/bin/ldapadd&amp;nbsp;-x&amp;nbsp;-D&amp;nbsp;&amp;quot;cn=www,dc=iopst,dc=cn&amp;quot;&amp;nbsp;-w&amp;nbsp;&amp;quot;admin@123&amp;quot;&amp;nbsp;-f&amp;nbsp;&amp;nbsp;backup_data.ldif&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 28 Feb 2023 10:11:30 +0800</pubDate></item><item><title>logstash离线安装插件</title><link>https://www.iopst.cn/article/252.html</link><description>&lt;p&gt;1、离线安装命令&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;./bin/logstash-plugin&amp;nbsp;install&amp;nbsp;file:///path/logstash-7.16.3/logstash-offline-plugins-7.16.3.zip&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2022/08/202208161660640274683285.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;2、检查插件是否安装成功&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;./logstash-plugin&amp;nbsp;list&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2022/08/202208161660640378797952.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;</description><pubDate>Tue, 16 Aug 2022 16:56:55 +0800</pubDate></item><item><title>ELK-7.16.3集群部署实战</title><link>https://www.iopst.cn/article/249.html</link><description>&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ELK是一款开源的海量日志搜索分析平台，能够完美的解决我们上述的问题，对日志进行集中采集和实时索引，提供实时搜索、分析、可视化、报警等功能，帮助企业在统一平台实时管理日志数据，进行线上业务实时监控、异常原因定位、数据统计分析。ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Elasticsearch是实时全文搜索和分析引擎，提供搜集、分析、存储数据三大功能；是一套开放REST和JAVA API等结构提供高效搜索功能，可扩展的分布式系统；它构建于Apache Lucene搜索引擎库之上&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志，包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志，这些来源包括 syslog、消息传递（例如 RabbitMQ）和JMX，它能够以多种方式输出数据，包括电子邮件、websockets和Elasticsearch&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Kibana是一个基于Web的图形界面，用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据，不仅允许用户创建他们自己的数据的定制仪表板视图，还允许他们以特殊的方式查询和过滤数据&lt;/p&gt;&lt;p&gt;一个完整的集中式日志系统，需要包含以下几个主要特点：&lt;/p&gt;&lt;p&gt;1）收集－能够采集多种来源的日志数据;&lt;/p&gt;&lt;p&gt;2）传输－能够稳定的把日志数据传输到中央系统;&lt;/p&gt;&lt;p&gt;3）存储－如何存储日志数据;&lt;/p&gt;&lt;p&gt;4）分析－可以支持 UI 分析;&lt;/p&gt;&lt;p&gt;5）警告－能够提供错误报告，监控机制;&lt;/p&gt;&lt;p&gt;而ELK则提供了一整套解决方案，并且都是开源软件，之间互相配合使用，完美衔接，高效的满足了很多场合的应用。是目前主流的一种日志系统。&lt;/p&gt;&lt;p&gt;官方网站https://www.elastic.co/products&lt;/p&gt;&lt;p&gt;集群部署规划架构图（演示）：&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.yangxingzhen.com/wp-content/uploads/2020/11/111220_0332_LinuxELK1.png&quot; alt=&quot;Linux搭建ELK+Filebeat+Kafka分布式日志管理平台&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;white-space: normal;&quot;&gt;ELK下载地址：&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;wget&amp;nbsp;https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3-linux-x86_64.tar.gz&amp;nbsp;
wget&amp;nbsp;https://artifacts.elastic.co/downloads/kibana/kibana-7.16.3-linux-x86_64.tar.gz&amp;nbsp;
wget&amp;nbsp;https://artifacts.elastic.co/downloads/logstash/logstash-7.16.3-linux-x86_64.tar.gz&lt;/pre&gt;&lt;p&gt;基础环境准备&lt;/p&gt;&lt;p&gt;1、关闭防火墙和selinux&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;systemctl&amp;nbsp;stop&amp;nbsp;firewalld
systemctl&amp;nbsp;disable&amp;nbsp;firewalld
setenforce&amp;nbsp;0
sed&amp;nbsp;-i&amp;nbsp;&amp;#39;/SELINUX/s/enforcing/disabled/&amp;#39;&amp;nbsp;/etc/selinux/config&lt;/pre&gt;&lt;p&gt;2、内核优化&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;#&amp;nbsp;/etc/security/limits.conf（可选）
末尾添加
*&amp;nbsp;soft&amp;nbsp;nofile&amp;nbsp;65535
*&amp;nbsp;hard&amp;nbsp;nofile&amp;nbsp;65535
*&amp;nbsp;soft&amp;nbsp;nproc&amp;nbsp;65535
*&amp;nbsp;hard&amp;nbsp;nproc&amp;nbsp;65535

#/etc/sysctl.conf
如下参数
net.ipv4.tcp_max_syn_backlog&amp;nbsp;=&amp;nbsp;65536
net.core.netdev_max_backlog&amp;nbsp;=&amp;nbsp;32768
net.core.somaxconn&amp;nbsp;=&amp;nbsp;32768
net.core.wmem_default&amp;nbsp;=&amp;nbsp;8388608
net.core.rmem_default&amp;nbsp;=&amp;nbsp;8388608
net.core.rmem_max&amp;nbsp;=&amp;nbsp;16777216
net.core.wmem_max&amp;nbsp;=&amp;nbsp;16777216
net.ipv4.tcp_timestamps&amp;nbsp;=&amp;nbsp;0
net.ipv4.tcp_synack_retries&amp;nbsp;=&amp;nbsp;2
net.ipv4.tcp_syn_retries&amp;nbsp;=&amp;nbsp;2
net.ipv4.tcp_tw_recycle&amp;nbsp;=&amp;nbsp;1
net.ipv4.tcp_tw_reuse&amp;nbsp;=&amp;nbsp;1
net.ipv4.tcp_mem&amp;nbsp;=&amp;nbsp;94500000&amp;nbsp;915000000&amp;nbsp;927000000
net.ipv4.tcp_max_orphans&amp;nbsp;=&amp;nbsp;3276800
net.ipv4.tcp_fin_timeout&amp;nbsp;=&amp;nbsp;120
net.ipv4.tcp_keepalive_time&amp;nbsp;=&amp;nbsp;120
net.ipv4.ip_local_port_range&amp;nbsp;=&amp;nbsp;1024&amp;nbsp;65535
net.ipv4.tcp_max_tw_buckets&amp;nbsp;=&amp;nbsp;30000
fs.file-max=655350
vm.max_map_count&amp;nbsp;=&amp;nbsp;262144
net.core.somaxconn=&amp;nbsp;65535
net.ipv4.ip_forward&amp;nbsp;=&amp;nbsp;1
net.ipv6.conf.all.disable_ipv6=1

#生效
sudo&amp;nbsp;sysctl&amp;nbsp;-p&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;一、Elasticsearch&lt;/p&gt;&lt;p&gt;1、创建数据目录和授权（所有主机执行以下操作）&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tar&amp;nbsp;xf&amp;nbsp;elasticsearch-7.16.3-linux-x86_64.tar.gz&amp;nbsp;-C&amp;nbsp;/data/
cd&amp;nbsp;/data/elasticsearch-7.16.3
sudo&amp;nbsp;mkdir&amp;nbsp;/data/elasticsearch-7.16.3/es7.16.3&amp;nbsp;-p&lt;/pre&gt;&lt;p&gt;注意：es需要使用非root用户启动。&lt;/p&gt;&lt;p&gt;2、修改配置&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;cluster.name:&amp;nbsp;meta-meeting
node.name:&amp;nbsp;node-129
path.data:&amp;nbsp;/data/elasticsearch-7.16.3/es7.16.3
path.logs:&amp;nbsp;/data/elasticsearch-7.16.3/logs
network.host:&amp;nbsp;10.148.181.129
http.port:&amp;nbsp;9200
transport.tcp.port:&amp;nbsp;9300
discovery.seed_hosts:&amp;nbsp;[&amp;quot;10.148.181.129:9300&amp;quot;,&amp;nbsp;&amp;quot;10.148.181.130:9300&amp;quot;,&amp;quot;10.148.181.131:9300&amp;quot;]
cluster.initial_master_nodes:&amp;nbsp;[&amp;quot;10.148.181.129:9300&amp;quot;,&amp;nbsp;&amp;quot;10.148.181.130:9300&amp;quot;,&amp;quot;10.148.181.131:9300&amp;quot;]
xpack.security.enabled:&amp;nbsp;true
xpack.security.transport.ssl.enabled:&amp;nbsp;true
xpack.security.transport.ssl.verification_mode:&amp;nbsp;certificate
xpack.security.transport.ssl.keystore.path:&amp;nbsp;/data/elasticsearch-7.16.3/config/elasticsearch-certificates.p12
xpack.security.transport.ssl.truststore.path:&amp;nbsp;/data/elasticsearch-7.16.3/config/elasticsearch-certificates.p12
xpack.monitoring.collection.enabled:&amp;nbsp;true


cluster.name:&amp;nbsp;meta-meeting
node.name:&amp;nbsp;node-130
path.data:&amp;nbsp;/data/elasticsearch-7.16.3/es7.16.3
path.logs:&amp;nbsp;/data/elasticsearch-7.16.3/logs
network.host:&amp;nbsp;10.148.181.130
http.port:&amp;nbsp;9200
transport.tcp.port:&amp;nbsp;9300
discovery.seed_hosts:&amp;nbsp;[&amp;quot;10.148.181.129:9300&amp;quot;,&amp;nbsp;&amp;quot;10.148.181.130:9300&amp;quot;,&amp;quot;10.148.181.131:9300&amp;quot;]
cluster.initial_master_nodes:&amp;nbsp;[&amp;quot;10.148.181.129:9300&amp;quot;,&amp;nbsp;&amp;quot;10.148.181.130:9300&amp;quot;,&amp;quot;10.148.181.131:9300&amp;quot;]
xpack.security.enabled:&amp;nbsp;true
xpack.security.transport.ssl.enabled:&amp;nbsp;true
xpack.security.transport.ssl.verification_mode:&amp;nbsp;certificate
xpack.security.transport.ssl.keystore.path:&amp;nbsp;/data/elasticsearch-7.16.3/config/elasticsearch-certificates.p12
xpack.security.transport.ssl.truststore.path:&amp;nbsp;/data/elasticsearch-7.16.3/config/elasticsearch-certificates.p12
xpack.monitoring.collection.enabled:&amp;nbsp;true


cluster.name:&amp;nbsp;meta-meeting
node.name:&amp;nbsp;node-131
path.data:&amp;nbsp;/data/elasticsearch-7.16.3/es7.16.3
path.logs:&amp;nbsp;/data/elasticsearch-7.16.3/logs
network.host:&amp;nbsp;10.148.181.131
http.port:&amp;nbsp;9200
transport.tcp.port:&amp;nbsp;9300
discovery.seed_hosts:&amp;nbsp;[&amp;quot;10.148.181.129:9300&amp;quot;,&amp;nbsp;&amp;quot;10.148.181.130:9300&amp;quot;,&amp;quot;10.148.181.131:9300&amp;quot;]
cluster.initial_master_nodes:&amp;nbsp;[&amp;quot;10.148.181.129:9300&amp;quot;,&amp;nbsp;&amp;quot;10.148.181.130:9300&amp;quot;,&amp;quot;10.148.181.131:9300&amp;quot;]
xpack.security.enabled:&amp;nbsp;true
xpack.security.transport.ssl.enabled:&amp;nbsp;true
xpack.security.transport.ssl.verification_mode:&amp;nbsp;certificate
xpack.security.transport.ssl.keystore.path:&amp;nbsp;/data/elasticsearch-7.16.3/config/elasticsearch-certificates.p12
xpack.security.transport.ssl.truststore.path:&amp;nbsp;/data/elasticsearch-7.16.3/config/elasticsearch-certificates.p12
xpack.monitoring.collection.enabled:&amp;nbsp;true&lt;/pre&gt;&lt;p&gt;3、生成证书并拷贝到其他节点&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;bin/elasticsearch-certutil&amp;nbsp;cert&amp;nbsp;-out&amp;nbsp;/data/elasticsearch-7.16.3/config/elasticsearch-certificates.p12&amp;nbsp;-pass&amp;nbsp;&amp;quot;&amp;quot;

scp&amp;nbsp;-r&amp;nbsp;config/elasticsearch-certificates.p12&amp;nbsp;10.148.181.130:/data/elasticsearch-7.16.3/config/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
scp&amp;nbsp;-r&amp;nbsp;config/elasticsearch-certificates.p12&amp;nbsp;10.148.181.131:/data/elasticsearch-7.16.3/config/&lt;/pre&gt;&lt;p&gt;4、依次启动elasticsearch&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;bin/elasticsearch&amp;nbsp;-d&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;5、生成集群密码&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;bin/elasticsearch-setup-passwords&amp;nbsp;interactive&lt;/pre&gt;&lt;p&gt;手动设置密码，elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user，这些用户登录时会用到。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2022/04/202204251650876644158226.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;浏览器登录http://ip:9200显示如下：&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2022/04/202204251650890853249638.png&quot; alt=&quot;image.png&quot; width=&quot;500&quot; height=&quot;400&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;image.png&quot; style=&quot;width: 500px; height: 400px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;二、logstash&lt;/p&gt;&lt;p&gt;本文我们以filebeat输入nginx日志到kafka为例，首先我们要部署filebeat，简述安装过程如下&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;wget&amp;nbsp;https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.0-linux-x86_64.tar.gz
tar&amp;nbsp;&amp;nbsp;xf&amp;nbsp;filebeat-6.5.0-linux-x86_64.tar.gz&amp;nbsp;-C&amp;nbsp;/data/
cd&amp;nbsp;/data/filebeat-6.5.0
修改文件filebeat.yml

filebeat.config.modules:
&amp;nbsp;&amp;nbsp;path:&amp;nbsp;${path.config}/modules.d/*.yml
&amp;nbsp;&amp;nbsp;reload.enabled:&amp;nbsp;false
setup.template.settings:
&amp;nbsp;&amp;nbsp;index.number_of_shards:&amp;nbsp;3
output.kafka:
&amp;nbsp;&amp;nbsp;hosts:&amp;nbsp;[&amp;quot;kafka1:9092&amp;quot;,&amp;quot;kafka2:9092&amp;quot;,&amp;quot;kafka3:9092&amp;quot;]&amp;nbsp;&amp;nbsp;&amp;nbsp;#注意需要填写IP地址
&amp;nbsp;&amp;nbsp;topic:&amp;nbsp;&amp;quot;nginx&amp;quot;&amp;nbsp;#请根据项目topic填写
&amp;nbsp;&amp;nbsp;codec.json:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pretty:&amp;nbsp;false

启动nginx&amp;nbsp;module

$&amp;nbsp;./filebeat&amp;nbsp;modules&amp;nbsp;enable&amp;nbsp;nginx

修改文件modules.d/nginx.yml
-&amp;nbsp;module:&amp;nbsp;nginx
&amp;nbsp;&amp;nbsp;#&amp;nbsp;Access&amp;nbsp;logs
&amp;nbsp;&amp;nbsp;access:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Set&amp;nbsp;custom&amp;nbsp;paths&amp;nbsp;for&amp;nbsp;the&amp;nbsp;log&amp;nbsp;files.&amp;nbsp;If&amp;nbsp;left&amp;nbsp;empty,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Filebeat&amp;nbsp;will&amp;nbsp;choose&amp;nbsp;the&amp;nbsp;paths&amp;nbsp;depending&amp;nbsp;on&amp;nbsp;your&amp;nbsp;OS.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var.paths:&amp;nbsp;[&amp;quot;path/logs/access.log&amp;quot;]

&amp;nbsp;&amp;nbsp;#&amp;nbsp;Error&amp;nbsp;logs
&amp;nbsp;&amp;nbsp;error:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Set&amp;nbsp;custom&amp;nbsp;paths&amp;nbsp;for&amp;nbsp;the&amp;nbsp;log&amp;nbsp;files.&amp;nbsp;If&amp;nbsp;left&amp;nbsp;empty,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Filebeat&amp;nbsp;will&amp;nbsp;choose&amp;nbsp;the&amp;nbsp;paths&amp;nbsp;depending&amp;nbsp;on&amp;nbsp;your&amp;nbsp;OS.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var.paths:&amp;nbsp;[&amp;quot;path/logs/error.log&amp;quot;]

启动filebeat
nohup&amp;nbsp;./filebeat&amp;nbsp;-e&amp;nbsp;-c&amp;nbsp;filebeat.yml&amp;nbsp;&amp;gt;&amp;nbsp;filebeat.log&amp;nbsp;&amp;amp;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;1、部署logstash（任意一台主机部署即可）&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tar&amp;nbsp;xf&amp;nbsp;logstash-7.16.3-linux-x86_64.tar.gz&amp;nbsp;-C&amp;nbsp;/data/
cd&amp;nbsp;logstash-7.16.3/config&lt;/pre&gt;&lt;p&gt;2、meta-nginx.conf 模板&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;input&amp;nbsp;{
&amp;nbsp;kafka&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bootstrap_servers&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;quot;kafka1:9092,kafka2:9092,kafka3:9092&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;topics&amp;nbsp;=&amp;gt;&amp;nbsp;[&amp;quot;nginx&amp;quot;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;codec&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;quot;json&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;group_id&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;quot;meta-nginx&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;auto_offset_reset=&amp;gt;&amp;quot;latest&amp;quot;
	consumer_threads&amp;nbsp;=&amp;gt;&amp;nbsp;2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;decorate_events&amp;nbsp;=&amp;gt;&amp;nbsp;true
&amp;nbsp;&amp;nbsp;}
}

output&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elasticsearch&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hosts&amp;nbsp;=&amp;gt;&amp;nbsp;[&amp;nbsp;&amp;quot;http://es1:9200&amp;quot;,&amp;quot;http://es2:9200&amp;quot;,&amp;quot;http://es3:9200&amp;quot;&amp;nbsp;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;index=&amp;gt;&amp;nbsp;&amp;quot;meta-nginx-%{+YYYY.MM.dd}&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;template_name=&amp;gt;&amp;quot;meta-nginx-template&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;manage_template=&amp;gt;false
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;user&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;quot;elastic&amp;quot;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;password&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;quot;password&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;3、启动logstash&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;nohup&amp;nbsp;../bin/logstash&amp;nbsp;-f&amp;nbsp;meta-nginx.conf&amp;nbsp;-l&amp;nbsp;../logs/meta-nginx/&amp;nbsp;--config.reload.automatic&amp;nbsp;&amp;gt;/dev/null&amp;nbsp;&amp;amp;&lt;/pre&gt;&lt;p&gt;注意如果要启动多个需要删除 .lock文件&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;三、kibana&lt;/p&gt;&lt;p&gt;1、解压kibana&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tar&amp;nbsp;xf&amp;nbsp;kibana-7.16.3-linux-x86_64.tar.gz&amp;nbsp;-C&amp;nbsp;/data/
cd&amp;nbsp;/data/kibana-7.16.3-linux-x86_64/&lt;/pre&gt;&lt;p&gt;2、修改config/kibana.yml&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;server.port:&amp;nbsp;5601
server.host:&amp;nbsp;&amp;quot;本机IP&amp;quot;
server.basePath:&amp;nbsp;&amp;quot;/meta&amp;quot;
server.rewriteBasePath:&amp;nbsp;true
elasticsearch.hosts:&amp;nbsp;[&amp;quot;http://es1:9200&amp;quot;,&amp;quot;http://es2:9200&amp;quot;,http://es3:9200]
elasticsearch.username:&amp;nbsp;&amp;quot;kibana_system&amp;quot;
elasticsearch.password:&amp;nbsp;&amp;quot;password&amp;quot;&lt;/pre&gt;&lt;p&gt;3、启动kibana&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;nohup&amp;nbsp;bin/kibana&amp;nbsp;&amp;amp;&lt;/pre&gt;&lt;p&gt;4、浏览器访问http://ip:5601/meta&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2022/04/202204261650938234319819.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 25 Apr 2022 15:33:25 +0800</pubDate></item><item><title>Container Runtime</title><link>https://www.iopst.cn/article/248.html</link><description>&lt;p&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;为了在 Pod 中运行容器，Kubernetes 使用&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;glossary-tooltip&quot; title=&quot;&quot; data-toggle=&quot;tooltip&quot; data-placement=&quot;top&quot; href=&quot;https://kubernetes.io/zh/docs/setup/production-environment/container-runtimes&quot; target=&quot;_blank&quot; aria-label=&quot;容器运行时（Container Runtime）&quot; data-original-title=&quot;容器运行时是负责运行容器的软件。&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); display: inline-block; border-bottom: 1px dotted rgb(0, 0, 0); font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; white-space: normal; text-decoration-line: none !important;&quot;&gt;容器运行时（Container Runtime）&lt;/a&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;默认情况下，Kubernetes 使用&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;glossary-tooltip&quot; title=&quot;&quot; data-toggle=&quot;tooltip&quot; data-placement=&quot;top&quot; href=&quot;https://kubernetes.io/zh/docs/concepts/overview/components/#container-runtime&quot; target=&quot;_blank&quot; aria-label=&quot;容器运行时接口（Container Runtime Interface，CRI）&quot; data-original-title=&quot;一组与 kubelet 集成的容器运行时 API&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); display: inline-block; border-bottom: 1px dotted rgb(0, 0, 0); font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; white-space: normal; text-decoration-line: none !important;&quot;&gt;容器运行时接口（Container Runtime Interface，CRI）&lt;/a&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&amp;nbsp;来与你所选择的容器运行时交互。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;如果你不指定运行时，则 kubeadm 会自动尝试检测到系统上已经安装的运行时， 方法是扫描一组众所周知的 Unix 域套接字。 下面的表格列举了一些查找的容器运行时及其对应的套接字路径：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;table&gt;&lt;thead style=&quot;box-sizing: border-box;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;box-sizing: border-box; text-align: -webkit-match-parent;&quot;&gt;运行时&lt;/th&gt;&lt;th style=&quot;box-sizing: border-box; text-align: -webkit-match-parent;&quot;&gt;域套接字&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td style=&quot;box-sizing: border-box;&quot;&gt;Docker Engine&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;liberation mono&amp;quot;, &amp;quot;courier new&amp;quot;, monospace; color: inherit; overflow-wrap: break-word; background-color: rgba(0, 0, 0, 0.05); padding: 0.2em 0.4em; margin: 0px; word-break: break-word; border-radius: 0.25rem;&quot;&gt;/var/run/dockershim.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td style=&quot;box-sizing: border-box;&quot;&gt;containerd&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;liberation mono&amp;quot;, &amp;quot;courier new&amp;quot;, monospace; color: inherit; overflow-wrap: break-word; background-color: rgba(0, 0, 0, 0.05); padding: 0.2em 0.4em; margin: 0px; word-break: break-word; border-radius: 0.25rem;&quot;&gt;/run/containerd/containerd.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td style=&quot;box-sizing: border-box;&quot;&gt;CRI-O&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;liberation mono&amp;quot;, &amp;quot;courier new&amp;quot;, monospace; color: inherit; overflow-wrap: break-word; background-color: rgba(0, 0, 0, 0.05); padding: 0.2em 0.4em; margin: 0px; word-break: break-word; border-radius: 0.25rem;&quot;&gt;/var/run/crio/crio.sock&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px;&quot;&gt;如果同时检测到 Docker Engine 和 containerd，kubeadm 将优先考虑 Docker Engine。 这是必然的，因为 Docker 18.09 附带了 containerd 并且两者都是可以检测到的， 即使你仅安装了 Docker。 **如果检测到其他两个或多个运行时，kubeadm 输出错误信息并退出。**&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 1rem; color: rgb(34, 34, 34); font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;kubelet 可以使用已弃用的 dockershim 适配器与 Docker Engine 集成（dockershim 是 kubelet 本身的一部分）。&lt;/p&gt;&lt;h3 id=&quot;containerd&quot; style=&quot;box-sizing: border-box; margin-top: 2rem; margin-bottom: 1rem; font-weight: 500; line-height: 1.2; font-size: 1.5rem; color: rgb(34, 34, 34); font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;containerd&lt;/h3&gt;&lt;p&gt;1、&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;安装和配置的先决条件&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;cat&amp;nbsp;&amp;lt;&amp;lt;EOF&amp;nbsp;|&amp;nbsp;sudo&amp;nbsp;tee&amp;nbsp;/etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

sudo&amp;nbsp;modprobe&amp;nbsp;overlay
sudo&amp;nbsp;modprobe&amp;nbsp;br_netfilter

#&amp;nbsp;设置必需的&amp;nbsp;sysctl&amp;nbsp;参数，这些参数在重新启动后仍然存在。
cat&amp;nbsp;&amp;lt;&amp;lt;EOF&amp;nbsp;|&amp;nbsp;sudo&amp;nbsp;tee&amp;nbsp;/etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables&amp;nbsp;&amp;nbsp;=&amp;nbsp;1
net.ipv4.ip_forward&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;1
net.bridge.bridge-nf-call-ip6tables&amp;nbsp;=&amp;nbsp;1
EOF

#&amp;nbsp;应用&amp;nbsp;sysctl&amp;nbsp;参数而无需重新启动
sudo&amp;nbsp;sysctl&amp;nbsp;--system&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;2、下载continerd&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;yum&amp;nbsp;install&amp;nbsp;&amp;nbsp;containerd.io&amp;nbsp;&amp;nbsp;-y&lt;/pre&gt;&lt;p&gt;3、配置containerd&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;mkdir&amp;nbsp;-p&amp;nbsp;/etc/containerd&amp;nbsp;
containerd&amp;nbsp;config&amp;nbsp;default&amp;nbsp;|&amp;nbsp;sudo&amp;nbsp;tee&amp;nbsp;/etc/containerd/config.toml&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;4、修改配置和修改systemd cgroup程序驱动&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;结合&amp;nbsp;runc&amp;nbsp;使用&amp;nbsp;systemd&amp;nbsp;cgroup&amp;nbsp;驱动，在&amp;nbsp;/etc/containerd/config.toml&amp;nbsp;中设置
#&amp;nbsp;找到containerd.runtimes.runc.options，在其下加入SystemdCgroup&amp;nbsp;=&amp;nbsp;true
[plugins.&amp;quot;io.containerd.grpc.v1.cri&amp;quot;.containerd.runtimes.runc.options]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SystemdCgroup&amp;nbsp;=&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[plugins.&amp;quot;io.containerd.grpc.v1.cri&amp;quot;.cni]

#&amp;nbsp;将sandbox_image默认地址改为符合版本地址
sandbox_image&amp;nbsp;=&amp;nbsp;&amp;quot;registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6&amp;quot;

#配置crictl客户端连接的运行时位置
cat&amp;nbsp;&amp;gt;&amp;nbsp;/etc/crictl.yaml&amp;nbsp;&amp;lt;&amp;lt;EOF
runtime-endpoint:&amp;nbsp;unix:///run/containerd/containerd.sock
image-endpoint:&amp;nbsp;unix:///run/containerd/containerd.sock
timeout:&amp;nbsp;10
debug:&amp;nbsp;false
EOF&lt;/pre&gt;&lt;p&gt;5、启动&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;systemctl&amp;nbsp;restart&amp;nbsp;containerd&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;open sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;segoe ui&amp;quot;, Roboto, &amp;quot;helvetica neue&amp;quot;, Arial, sans-serif, &amp;quot;apple color emoji&amp;quot;, &amp;quot;segoe ui emoji&amp;quot;, &amp;quot;segoe ui symbol&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 24 Apr 2022 13:39:42 +0800</pubDate></item><item><title>Mongodb4.4.13集群安装实战</title><link>https://www.iopst.cn/article/247.html</link><description>&lt;p&gt;1、环境规划&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2022/04/202204191650353710289544.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.iopst.cn/zb_users/upload/2022/04/202204191650358688351029.png&quot; alt=&quot;image.png&quot; width=&quot;717&quot; height=&quot;409&quot; style=&quot;width: 717px; height: 409px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;2、创建目录&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;mkdir&amp;nbsp;-p&amp;nbsp;/data/mongodb/{data,logs,apps,run}
mkdir&amp;nbsp;-p&amp;nbsp;/data/mongodb/data/shard{1,2,3}
mkdir&amp;nbsp;-p&amp;nbsp;/data/mongodb/data/config
mkdir&amp;nbsp;-p&amp;nbsp;/data/mongodb/conf
mkdir&amp;nbsp;-p&amp;nbsp;/tmp/mongodb/configsvr
mkdir&amp;nbsp;-p&amp;nbsp;/tmp/mongodb/shard1
mkdir&amp;nbsp;-p&amp;nbsp;/tmp/mongodb/shard2
mkdir&amp;nbsp;-p&amp;nbsp;/tmp/mongodb/shard3
mkdir&amp;nbsp;-p&amp;nbsp;/tmp/mongodb/mongos&lt;/pre&gt;&lt;p&gt;3、创建&lt;span style=&quot;color: rgba(0, 0, 0, 0.75); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; font-variant-ligatures: no-common-ligatures; background-color: #FFFFFF;&quot;&gt;Keyfile Security&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;openssl&amp;nbsp;rand&amp;nbsp;-base64&amp;nbsp;756&amp;nbsp;&amp;gt;&amp;nbsp;/data/mongodb/conf/mongodb.key
$&amp;nbsp;chmod&amp;nbsp;400&amp;nbsp;/data/mongodb/conf/mongodb.key
$&amp;nbsp;scp&amp;nbsp;-r&amp;nbsp;/data/mongodb/conf/mongodb.key&amp;nbsp;&amp;nbsp;nodeIP:/data/mongodb/conf/&lt;/pre&gt;&lt;p&gt;4、创建配置文件&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tee&amp;nbsp;/data/mongodb/conf/configsvr.yml&amp;nbsp;&amp;lt;&amp;lt;-&amp;#39;EOF&amp;#39;
systemLog:
&amp;nbsp;&amp;nbsp;destination:&amp;nbsp;&amp;quot;file&amp;quot;
&amp;nbsp;&amp;nbsp;logAppend:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;path:&amp;nbsp;&amp;quot;/data/mongodb/logs/configsvr.log&amp;quot;
storage:
&amp;nbsp;&amp;nbsp;dbPath:&amp;nbsp;&amp;quot;/data/mongodb/data/config&amp;quot;
&amp;nbsp;&amp;nbsp;journal:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;engine:&amp;nbsp;&amp;quot;wiredTiger&amp;quot;
&amp;nbsp;&amp;nbsp;wiredTiger:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;engineConfig:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;directoryForIndexes:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheSizeGB:&amp;nbsp;2
processManagement:
&amp;nbsp;&amp;nbsp;fork:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;pidFilePath:&amp;nbsp;&amp;quot;/data/mongodb/run/configsvr.pid&amp;quot;
&amp;nbsp;&amp;nbsp;timeZoneInfo:&amp;nbsp;&amp;quot;/usr/share/zoneinfo&amp;quot;
net:
&amp;nbsp;&amp;nbsp;port:&amp;nbsp;27019
&amp;nbsp;&amp;nbsp;bindIp:&amp;nbsp;&amp;quot;::,0.0.0.0&amp;quot;
&amp;nbsp;&amp;nbsp;maxIncomingConnections:&amp;nbsp;5000
&amp;nbsp;&amp;nbsp;unixDomainSocket:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pathPrefix:&amp;nbsp;&amp;quot;/tmp/mongodb/configsvr&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filePermissions:&amp;nbsp;0700
setParameter:
&amp;nbsp;&amp;nbsp;enableLocalhostAuthBypass:&amp;nbsp;true
security:
&amp;nbsp;&amp;nbsp;clusterAuthMode:&amp;nbsp;&amp;quot;keyFile&amp;quot;
&amp;nbsp;&amp;nbsp;keyFile:&amp;nbsp;&amp;quot;/data/mongodb/conf/mongodb.key&amp;quot;
&amp;nbsp;&amp;nbsp;authorization:&amp;nbsp;&amp;quot;enabled&amp;quot;
replication:
&amp;nbsp;&amp;nbsp;replSetName:&amp;nbsp;&amp;quot;replCluster&amp;quot;
sharding:
&amp;nbsp;&amp;nbsp;clusterRole:&amp;nbsp;&amp;quot;configsvr&amp;quot;
EOF&lt;/pre&gt;&lt;p&gt;创建shard配置文件&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tee&amp;nbsp;/data/mongodb/conf/shard1.yml&amp;nbsp;&amp;lt;&amp;lt;-&amp;#39;EOF&amp;#39;
systemLog:
&amp;nbsp;&amp;nbsp;destination:&amp;nbsp;&amp;quot;file&amp;quot;
&amp;nbsp;&amp;nbsp;logAppend:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;path:&amp;nbsp;&amp;quot;/data/mongodb/logs/shard1.log&amp;quot;
storage:
&amp;nbsp;&amp;nbsp;dbPath:&amp;nbsp;&amp;quot;/data/mongodb/data/shard1&amp;quot;
&amp;nbsp;&amp;nbsp;journal:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;engine:&amp;nbsp;&amp;quot;wiredTiger&amp;quot;
&amp;nbsp;&amp;nbsp;wiredTiger:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;engineConfig:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;directoryForIndexes:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheSizeGB:&amp;nbsp;2
processManagement:
&amp;nbsp;&amp;nbsp;fork:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;pidFilePath:&amp;nbsp;&amp;quot;/data/mongodb/run/shard1.pid&amp;quot;
&amp;nbsp;&amp;nbsp;timeZoneInfo:&amp;nbsp;&amp;quot;/usr/share/zoneinfo&amp;quot;
net:
&amp;nbsp;&amp;nbsp;port:&amp;nbsp;29017
&amp;nbsp;&amp;nbsp;bindIp:&amp;nbsp;&amp;quot;::,0.0.0.0&amp;quot;
&amp;nbsp;&amp;nbsp;maxIncomingConnections:&amp;nbsp;5000
&amp;nbsp;&amp;nbsp;unixDomainSocket:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pathPrefix:&amp;nbsp;&amp;quot;/tmp/mongodb/shard1&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filePermissions:&amp;nbsp;0700
setParameter:
&amp;nbsp;&amp;nbsp;enableLocalhostAuthBypass:&amp;nbsp;true
security:
&amp;nbsp;&amp;nbsp;clusterAuthMode:&amp;nbsp;&amp;quot;keyFile&amp;quot;
&amp;nbsp;&amp;nbsp;keyFile:&amp;nbsp;&amp;quot;/data/mongodb/conf/mongodb.key&amp;quot;
&amp;nbsp;&amp;nbsp;authorization:&amp;nbsp;&amp;quot;enabled&amp;quot;
replication:
&amp;nbsp;&amp;nbsp;replSetName:&amp;nbsp;&amp;quot;shard1&amp;quot;
sharding:
&amp;nbsp;&amp;nbsp;clusterRole:&amp;nbsp;&amp;quot;shardsvr&amp;quot;
EOF&lt;/pre&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tee&amp;nbsp;/data/mongodb/conf/shard2.yml&amp;nbsp;&amp;lt;&amp;lt;-&amp;#39;EOF&amp;#39;
systemLog:
&amp;nbsp;&amp;nbsp;destination:&amp;nbsp;&amp;quot;file&amp;quot;
&amp;nbsp;&amp;nbsp;logAppend:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;path:&amp;nbsp;&amp;quot;/data/mongodb/logs/shard2.log&amp;quot;
storage:
&amp;nbsp;&amp;nbsp;dbPath:&amp;nbsp;&amp;quot;/data/mongodb/data/shard2&amp;quot;
&amp;nbsp;&amp;nbsp;journal:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;engine:&amp;nbsp;&amp;quot;wiredTiger&amp;quot;
&amp;nbsp;&amp;nbsp;wiredTiger:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;engineConfig:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;directoryForIndexes:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheSizeGB:&amp;nbsp;2
processManagement:
&amp;nbsp;&amp;nbsp;fork:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;pidFilePath:&amp;nbsp;&amp;quot;/data/mongodb/run/shard2.pid&amp;quot;
&amp;nbsp;&amp;nbsp;timeZoneInfo:&amp;nbsp;&amp;quot;/usr/share/zoneinfo&amp;quot;
net:
&amp;nbsp;&amp;nbsp;port:&amp;nbsp;29018
&amp;nbsp;&amp;nbsp;bindIp:&amp;nbsp;&amp;quot;::,0.0.0.0&amp;quot;
&amp;nbsp;&amp;nbsp;maxIncomingConnections:&amp;nbsp;5000
&amp;nbsp;&amp;nbsp;unixDomainSocket:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pathPrefix:&amp;nbsp;&amp;quot;/tmp/mongodb/shard2&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filePermissions:&amp;nbsp;0700
setParameter:
&amp;nbsp;&amp;nbsp;enableLocalhostAuthBypass:&amp;nbsp;true
security:
&amp;nbsp;&amp;nbsp;clusterAuthMode:&amp;nbsp;&amp;quot;keyFile&amp;quot;
&amp;nbsp;&amp;nbsp;keyFile:&amp;nbsp;&amp;quot;/data/mongodb/conf/mongodb.key&amp;quot;
&amp;nbsp;&amp;nbsp;authorization:&amp;nbsp;&amp;quot;enabled&amp;quot;
replication:
&amp;nbsp;&amp;nbsp;replSetName:&amp;nbsp;&amp;quot;shard2&amp;quot;
sharding:
&amp;nbsp;&amp;nbsp;clusterRole:&amp;nbsp;&amp;quot;shardsvr&amp;quot;
EOF&lt;/pre&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tee&amp;nbsp;/data/mongodb/conf/shard3.yml&amp;nbsp;&amp;lt;&amp;lt;-&amp;#39;EOF&amp;#39;
systemLog:
&amp;nbsp;&amp;nbsp;destination:&amp;nbsp;&amp;quot;file&amp;quot;
&amp;nbsp;&amp;nbsp;logAppend:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;path:&amp;nbsp;&amp;quot;/data/mongodb/logs/shard3.log&amp;quot;
storage:
&amp;nbsp;&amp;nbsp;dbPath:&amp;nbsp;&amp;quot;/data/mongodb/data/shard3&amp;quot;
&amp;nbsp;&amp;nbsp;journal:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;engine:&amp;nbsp;&amp;quot;wiredTiger&amp;quot;
&amp;nbsp;&amp;nbsp;wiredTiger:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;engineConfig:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;directoryForIndexes:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheSizeGB:&amp;nbsp;2
processManagement:
&amp;nbsp;&amp;nbsp;fork:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;pidFilePath:&amp;nbsp;&amp;quot;/data/mongodb/run/shard3.pid&amp;quot;
&amp;nbsp;&amp;nbsp;timeZoneInfo:&amp;nbsp;&amp;quot;/usr/share/zoneinfo&amp;quot;
net:
&amp;nbsp;&amp;nbsp;port:&amp;nbsp;29019
&amp;nbsp;&amp;nbsp;bindIp:&amp;nbsp;&amp;quot;::,0.0.0.0&amp;quot;
&amp;nbsp;&amp;nbsp;maxIncomingConnections:&amp;nbsp;5000
&amp;nbsp;&amp;nbsp;unixDomainSocket:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pathPrefix:&amp;nbsp;&amp;quot;/tmp/mongodb/shard3&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filePermissions:&amp;nbsp;0700
setParameter:
&amp;nbsp;&amp;nbsp;enableLocalhostAuthBypass:&amp;nbsp;true
security:
&amp;nbsp;&amp;nbsp;clusterAuthMode:&amp;nbsp;&amp;quot;keyFile&amp;quot;
&amp;nbsp;&amp;nbsp;keyFile:&amp;nbsp;&amp;quot;/data/mongodb/conf/mongodb.key&amp;quot;
&amp;nbsp;&amp;nbsp;authorization:&amp;nbsp;&amp;quot;enabled&amp;quot;
replication:
&amp;nbsp;&amp;nbsp;replSetName:&amp;nbsp;&amp;quot;shard3&amp;quot;
sharding:
&amp;nbsp;&amp;nbsp;clusterRole:&amp;nbsp;&amp;quot;shardsvr&amp;quot;
EOF&lt;/pre&gt;&lt;p&gt;创建mongos.yml&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tee&amp;nbsp;/data/mongodb/conf/mongos.yml&amp;nbsp;&amp;lt;&amp;lt;-&amp;#39;EOF&amp;#39;
systemLog:
&amp;nbsp;&amp;nbsp;destination:&amp;nbsp;&amp;quot;file&amp;quot;
&amp;nbsp;&amp;nbsp;logAppend:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;path:&amp;nbsp;&amp;quot;/data/mongodb/logs/mongos.log&amp;quot;
processManagement:
&amp;nbsp;&amp;nbsp;fork:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;pidFilePath:&amp;nbsp;&amp;quot;/data/mongodb/run/mongos.pid&amp;quot;
&amp;nbsp;&amp;nbsp;timeZoneInfo:&amp;nbsp;&amp;quot;/usr/share/zoneinfo&amp;quot;
net:
&amp;nbsp;&amp;nbsp;port:&amp;nbsp;27017
&amp;nbsp;&amp;nbsp;bindIp:&amp;nbsp;&amp;quot;::,0.0.0.0&amp;quot;
&amp;nbsp;&amp;nbsp;maxIncomingConnections:&amp;nbsp;5000
&amp;nbsp;&amp;nbsp;unixDomainSocket:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pathPrefix:&amp;nbsp;&amp;quot;/tmp/mongodb/mongos&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filePermissions:&amp;nbsp;0700
setParameter:
&amp;nbsp;&amp;nbsp;enableLocalhostAuthBypass:&amp;nbsp;true
security:
&amp;nbsp;&amp;nbsp;clusterAuthMode:&amp;nbsp;&amp;quot;keyFile&amp;quot;
&amp;nbsp;&amp;nbsp;keyFile:&amp;nbsp;&amp;quot;/data/mongodb/conf/mongodb.key&amp;quot;
replication:
&amp;nbsp;&amp;nbsp;localPingThresholdMs:&amp;nbsp;15
sharding:
&amp;nbsp;&amp;nbsp;#&amp;nbsp;出处的replCluster与configsvr.yml中replication.replSetName配置的名称保持一致
&amp;nbsp;&amp;nbsp;configDB:&amp;nbsp;&amp;quot;replCluster/192.168.137.5:27019,192.168.137.6:27019,192.168.137.7:27019&amp;quot;
EOF&lt;/pre&gt;&lt;p&gt;5、启动和初始化相关服务&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;cd&amp;nbsp;/data/mongodb/
$&amp;nbsp;mongod&amp;nbsp;--config&amp;nbsp;./conf/configsvr.yml
$&amp;nbsp;mongo&amp;nbsp;localhost:27019
rs.initiate({_id:&amp;nbsp;&amp;quot;replCluster&amp;quot;,&amp;nbsp;configsvr:&amp;nbsp;true,&amp;nbsp;members:&amp;nbsp;[{_id:&amp;nbsp;0,&amp;nbsp;host:&amp;nbsp;&amp;quot;192.168.137.5:27019&amp;quot;},{_id:&amp;nbsp;1,host:&amp;nbsp;&amp;quot;192.168.137.6:27019&amp;quot;},{_id:&amp;nbsp;2,host:&amp;nbsp;&amp;quot;192.168.137.7:27019&amp;quot;}]})
rs.status()


$&amp;nbsp;mongod&amp;nbsp;--config&amp;nbsp;./conf/shard1.yml
$&amp;nbsp;mongo&amp;nbsp;localhost:29017
rs.initiate({_id:&amp;quot;shard1&amp;quot;,members:[{_id:&amp;nbsp;0,&amp;nbsp;host:&amp;nbsp;&amp;quot;192.168.137.5:29017&amp;quot;},{_id:&amp;nbsp;1,host:&amp;nbsp;&amp;quot;192.168.137.6:29017&amp;quot;},{_id:&amp;nbsp;2,host:&amp;nbsp;&amp;quot;192.168.137.7:29017&amp;quot;}]})
rs.status()

$&amp;nbsp;mongod&amp;nbsp;--config&amp;nbsp;./conf/shard2.yml
$&amp;nbsp;mongo&amp;nbsp;localhost:29018
rs.initiate({_id:&amp;quot;shard2&amp;quot;,members:[{_id:&amp;nbsp;0,&amp;nbsp;host:&amp;nbsp;&amp;quot;192.168.137.5:29018&amp;quot;},{_id:&amp;nbsp;1,host:&amp;nbsp;&amp;quot;192.168.137.6:29018&amp;quot;},{_id:&amp;nbsp;2,host:&amp;nbsp;&amp;quot;192.168.137.7:29018&amp;quot;}]})
rs.status()

$&amp;nbsp;mongod&amp;nbsp;--config&amp;nbsp;./conf/shard3.yml
$&amp;nbsp;mongo&amp;nbsp;localhost:29019
rs.initiate({_id:&amp;quot;shard3&amp;quot;,members:[{_id:&amp;nbsp;0,&amp;nbsp;host:&amp;nbsp;&amp;quot;192.168.137.5:29019&amp;quot;},{_id:&amp;nbsp;1,host:&amp;nbsp;&amp;quot;192.168.137.6:29019&amp;quot;},{_id:&amp;nbsp;2,host:&amp;nbsp;&amp;quot;192.168.137.7:29019&amp;quot;}]})
rs.status()&lt;/pre&gt;&lt;p&gt;6、启动和初始化mongos&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #ABB2BF; font-family: &amp;quot;Source Code Pro&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, &amp;quot;Anonymous Pro&amp;quot;, &amp;quot;Droid Sans Mono&amp;quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures; white-space: pre; background-color: #282C34;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;mongos&amp;nbsp;--config&amp;nbsp;./conf/mongos.yml
$&amp;nbsp;mongo&amp;nbsp;localhost:27017
MongoDB&amp;nbsp;shell&amp;nbsp;version&amp;nbsp;v4.4.13
connecting&amp;nbsp;to:&amp;nbsp;mongodb://localhost:27017/test?compressors=disabled&amp;amp;gssapiServiceName=mongodb
Implicit&amp;nbsp;session:&amp;nbsp;session&amp;nbsp;{&amp;nbsp;&amp;quot;id&amp;quot;&amp;nbsp;:&amp;nbsp;UUID(&amp;quot;2a4f50a7-29bf-40c0-8ffc-8c81074f31be&amp;quot;)&amp;nbsp;}
MongoDB&amp;nbsp;server&amp;nbsp;version:&amp;nbsp;4.4.13
mongos&amp;gt;&amp;nbsp;admin&amp;nbsp;=&amp;nbsp;db.getSiblingDB(&amp;quot;admin&amp;quot;);
admin

#Create&amp;nbsp;the&amp;nbsp;user&amp;nbsp;administrator.
mongos&amp;gt;&amp;nbsp;admin.createUser({user:&amp;quot;admin&amp;quot;,pwd:passwordPrompt(),roles:[{role:&amp;quot;userAdminAnyDatabase&amp;quot;,db:&amp;quot;admin&amp;quot;}]});
Enter&amp;nbsp;password:
Successfully&amp;nbsp;added&amp;nbsp;user:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;user&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;admin&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;roles&amp;quot;&amp;nbsp;:&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;role&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;userAdminAnyDatabase&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;db&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;admin&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]
}

#Authenticate&amp;nbsp;as&amp;nbsp;the&amp;nbsp;user&amp;nbsp;administrator.
mongos&amp;gt;&amp;nbsp;db.getSiblingDB(&amp;quot;admin&amp;quot;).auth(&amp;quot;admin&amp;quot;,&amp;nbsp;passwordPrompt());
Enter&amp;nbsp;password:
1

#Create&amp;nbsp;Administrative&amp;nbsp;User&amp;nbsp;for&amp;nbsp;Cluster&amp;nbsp;Management
mongos&amp;gt;&amp;nbsp;db.getSiblingDB(&amp;quot;admin&amp;quot;).createUser({&amp;quot;user&amp;quot;:&amp;quot;root&amp;quot;,&amp;quot;pwd&amp;quot;:passwordPrompt(),roles:[{&amp;quot;role&amp;quot;:&amp;quot;clusterAdmin&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;admin&amp;quot;}]});
Enter&amp;nbsp;password:
Successfully&amp;nbsp;added&amp;nbsp;user:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;user&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;root&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;roles&amp;quot;&amp;nbsp;:&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;role&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;clusterAdmin&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;db&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;admin&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]
}&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: #ABB2BF; font-family: &amp;quot;Source Code Pro&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, &amp;quot;Anonymous Pro&amp;quot;, &amp;quot;Droid Sans Mono&amp;quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures; white-space: pre; background-color: #282C34;&quot;&gt;&lt;/span&gt;7、添加分片到集群&lt;/p&gt;&lt;p&gt;注意：以下都必须以集群管理员登录进行操作&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;$&amp;nbsp;mongo&amp;nbsp;--host&amp;nbsp;192.168.137.5&amp;nbsp;--port&amp;nbsp;27017&amp;nbsp;-u&amp;nbsp;&amp;quot;root&amp;quot;&amp;nbsp;-p&amp;nbsp;--authenticationDatabase&amp;nbsp;&amp;quot;admin&amp;quot;
MongoDB&amp;nbsp;shell&amp;nbsp;version&amp;nbsp;v4.4.13
Enter&amp;nbsp;password:
connecting&amp;nbsp;to:&amp;nbsp;mongodb://192.168.137.5:27017/?authSource=admin&amp;amp;compressors=disabled&amp;amp;gssapiServiceName=mongodb
Implicit&amp;nbsp;session:&amp;nbsp;session&amp;nbsp;{&amp;nbsp;&amp;quot;id&amp;quot;&amp;nbsp;:&amp;nbsp;UUID(&amp;quot;7fa077ee-5ba8-4256-8e78-dc6a4fb9fc01&amp;quot;)&amp;nbsp;}
MongoDB&amp;nbsp;server&amp;nbsp;version:&amp;nbsp;4.4.13
---
The&amp;nbsp;server&amp;nbsp;generated&amp;nbsp;these&amp;nbsp;startup&amp;nbsp;warnings&amp;nbsp;when&amp;nbsp;booting:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2022-04-19T14:54:46.540+08:00:&amp;nbsp;You&amp;nbsp;are&amp;nbsp;running&amp;nbsp;this&amp;nbsp;process&amp;nbsp;as&amp;nbsp;the&amp;nbsp;root&amp;nbsp;user,&amp;nbsp;which&amp;nbsp;is&amp;nbsp;not&amp;nbsp;recommended
---
mongos&amp;gt;&amp;nbsp;sh.addShard(&amp;quot;shard1/192.168.137.5:29017,192.168.137.6:29017,192.168.137.7:29017&amp;quot;);
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;shardAdded&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;shard1&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;ok&amp;quot;&amp;nbsp;:&amp;nbsp;1,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;operationTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351575,&amp;nbsp;3),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;$clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351576,&amp;nbsp;1),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;signature&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;hash&amp;quot;&amp;nbsp;:&amp;nbsp;BinData(0,&amp;quot;0Isi8A729Q65bpG72CaNNcwC8jE=&amp;quot;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;keyId&amp;quot;&amp;nbsp;:&amp;nbsp;NumberLong(&amp;quot;7088204486748930069&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}
mongos&amp;gt;&amp;nbsp;sh.addShard(&amp;quot;shard2/192.168.137.5:29018,192.168.137.6:29018,192.168.137.7:29018&amp;quot;);
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;shardAdded&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;shard2&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;ok&amp;quot;&amp;nbsp;:&amp;nbsp;1,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;operationTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351587,&amp;nbsp;3),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;$clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351587,&amp;nbsp;3),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;signature&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;hash&amp;quot;&amp;nbsp;:&amp;nbsp;BinData(0,&amp;quot;LIfpd7Oic2+9l7Dfw/14HEV41i0=&amp;quot;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;keyId&amp;quot;&amp;nbsp;:&amp;nbsp;NumberLong(&amp;quot;7088204486748930069&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}
mongos&amp;gt;&amp;nbsp;sh.addShard(&amp;quot;shard3/192.168.137.5:29019,192.168.137.6:29019,192.168.137.7:29019&amp;quot;);
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;shardAdded&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;shard3&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;ok&amp;quot;&amp;nbsp;:&amp;nbsp;1,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;operationTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351593,&amp;nbsp;2),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;$clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351593,&amp;nbsp;2),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;signature&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;hash&amp;quot;&amp;nbsp;:&amp;nbsp;BinData(0,&amp;quot;t2mrOOeL3gvshZRb6kMmdSOagTA=&amp;quot;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;keyId&amp;quot;&amp;nbsp;:&amp;nbsp;NumberLong(&amp;quot;7088204486748930069&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}
mongos&amp;gt;&amp;nbsp;sh.status();
---&amp;nbsp;Sharding&amp;nbsp;Status&amp;nbsp;---
&amp;nbsp;&amp;nbsp;sharding&amp;nbsp;version:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;_id&amp;quot;&amp;nbsp;:&amp;nbsp;1,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;minCompatibleVersion&amp;quot;&amp;nbsp;:&amp;nbsp;5,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;currentVersion&amp;quot;&amp;nbsp;:&amp;nbsp;6,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;clusterId&amp;quot;&amp;nbsp;:&amp;nbsp;ObjectId(&amp;quot;625e5c6dde34df14051f52b9&amp;quot;)
&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;shards:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;quot;_id&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;shard1&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;quot;host&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;shard1/192.168.137.5:29017,192.168.137.6:29017,192.168.137.7:29017&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;quot;state&amp;quot;&amp;nbsp;:&amp;nbsp;1&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;quot;_id&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;shard2&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;quot;host&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;shard2/192.168.137.5:29018,192.168.137.6:29018,192.168.137.7:29018&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;quot;state&amp;quot;&amp;nbsp;:&amp;nbsp;1&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;quot;_id&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;shard3&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;quot;host&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;shard3/192.168.137.5:29019,192.168.137.6:29019,192.168.137.7:29019&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;quot;state&amp;quot;&amp;nbsp;:&amp;nbsp;1&amp;nbsp;}
&amp;nbsp;&amp;nbsp;active&amp;nbsp;mongoses:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;4.4.13&amp;quot;&amp;nbsp;:&amp;nbsp;1
&amp;nbsp;&amp;nbsp;autosplit:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Currently&amp;nbsp;enabled:&amp;nbsp;yes
&amp;nbsp;&amp;nbsp;balancer:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Currently&amp;nbsp;enabled:&amp;nbsp;&amp;nbsp;yes
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Currently&amp;nbsp;running:&amp;nbsp;&amp;nbsp;no
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Failed&amp;nbsp;balancer&amp;nbsp;rounds&amp;nbsp;in&amp;nbsp;last&amp;nbsp;5&amp;nbsp;attempts:&amp;nbsp;&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Migration&amp;nbsp;Results&amp;nbsp;for&amp;nbsp;the&amp;nbsp;last&amp;nbsp;24&amp;nbsp;hours:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;No&amp;nbsp;recent&amp;nbsp;migrations
&amp;nbsp;&amp;nbsp;databases:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;quot;_id&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;config&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;quot;primary&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;config&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;quot;partitioned&amp;quot;&amp;nbsp;:&amp;nbsp;true&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;8、创建test库并授权和enableShard&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;mongos&amp;gt;&amp;nbsp;use&amp;nbsp;test
switched&amp;nbsp;to&amp;nbsp;db&amp;nbsp;test
#Enable&amp;nbsp;Sharding&amp;nbsp;for&amp;nbsp;a&amp;nbsp;Database
mongos&amp;gt;&amp;nbsp;sh.enableSharding(&amp;quot;test&amp;quot;);
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;ok&amp;quot;&amp;nbsp;:&amp;nbsp;1,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;operationTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351729,&amp;nbsp;4),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;$clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351729,&amp;nbsp;4),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;signature&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;hash&amp;quot;&amp;nbsp;:&amp;nbsp;BinData(0,&amp;quot;dxCD31CPgO4e22gX3rrHg5LV2/c=&amp;quot;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;keyId&amp;quot;&amp;nbsp;:&amp;nbsp;NumberLong(&amp;quot;7088204486748930069&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}
#Shard&amp;nbsp;a&amp;nbsp;Collection
mongos&amp;gt;&amp;nbsp;sh.shardCollection(&amp;quot;test.user&amp;quot;,{&amp;quot;id&amp;quot;:1});
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;collectionsharded&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;test.user&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;collectionUUID&amp;quot;&amp;nbsp;:&amp;nbsp;UUID(&amp;quot;d283f69d-1ba0-491a-a4f9-8d9088016830&amp;quot;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;ok&amp;quot;&amp;nbsp;:&amp;nbsp;1,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;operationTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351740,&amp;nbsp;5),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;$clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;clusterTime&amp;quot;&amp;nbsp;:&amp;nbsp;Timestamp(1650351740,&amp;nbsp;5),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;signature&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;hash&amp;quot;&amp;nbsp;:&amp;nbsp;BinData(0,&amp;quot;e+etCFvF35U8eINVOD7RXAjnX8M=&amp;quot;),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;keyId&amp;quot;&amp;nbsp;:&amp;nbsp;NumberLong(&amp;quot;7088204486748930069&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

mongo&amp;nbsp;--host&amp;nbsp;192.168.137.5&amp;nbsp;--port&amp;nbsp;27017&amp;nbsp;-u&amp;nbsp;&amp;quot;admin&amp;quot;&amp;nbsp;-p&amp;nbsp;--authenticationDatabase&amp;nbsp;&amp;quot;admin&amp;quot;
MongoDB&amp;nbsp;shell&amp;nbsp;version&amp;nbsp;v4.4.13
Enter&amp;nbsp;password:
connecting&amp;nbsp;to:&amp;nbsp;mongodb://192.168.137.5:27017/?authSource=admin&amp;amp;compressors=disabled&amp;amp;gssapiServiceName=mongodb
Implicit&amp;nbsp;session:&amp;nbsp;session&amp;nbsp;{&amp;nbsp;&amp;quot;id&amp;quot;&amp;nbsp;:&amp;nbsp;UUID(&amp;quot;87083031-dc97-4420-95d4-03469bf86411&amp;quot;)&amp;nbsp;}
MongoDB&amp;nbsp;server&amp;nbsp;version:&amp;nbsp;4.4.13
mongos&amp;gt;&amp;nbsp;use&amp;nbsp;admin
switched&amp;nbsp;to&amp;nbsp;db&amp;nbsp;admin
mongos&amp;gt;
mongos&amp;gt;
mongos&amp;gt;
#根据自己的需求在创建普通用户（不建议创建root权限的用户操作数据库，此处为了操作方便），例如，read或者readWrite权限的用户
mongos&amp;gt;&amp;nbsp;db.getSiblingDB(&amp;quot;admin&amp;quot;).createUser({&amp;quot;user&amp;quot;:&amp;quot;metameeting&amp;quot;,&amp;quot;pwd&amp;quot;:password,roles:[{&amp;quot;role&amp;quot;:&amp;quot;readWrite&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;test&amp;quot;}]});
Enter&amp;nbsp;password:
Successfully&amp;nbsp;added&amp;nbsp;user:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;user&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;metameeting&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;roles&amp;quot;&amp;nbsp;:&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;role&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;readWrite&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;db&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;test&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]
}&lt;/pre&gt;&lt;p&gt;9、测试用户写入和查询数据&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;mongo&amp;nbsp;--host&amp;nbsp;192.168.137.5&amp;nbsp;--port&amp;nbsp;27017&amp;nbsp;-u&amp;nbsp;&amp;quot;metameeting&amp;quot;&amp;nbsp;-p&amp;nbsp;--authenticationDatabase&amp;nbsp;&amp;quot;admin&amp;quot;
MongoDB&amp;nbsp;shell&amp;nbsp;version&amp;nbsp;v4.4.13
Enter&amp;nbsp;password:
connecting&amp;nbsp;to:&amp;nbsp;mongodb://192.168.137.5:27017/?authSource=admin&amp;amp;compressors=disabled&amp;amp;gssapiServiceName=mongodb
Implicit&amp;nbsp;session:&amp;nbsp;session&amp;nbsp;{&amp;nbsp;&amp;quot;id&amp;quot;&amp;nbsp;:&amp;nbsp;UUID(&amp;quot;551e3b7a-4678-40ed-9cc4-c18a521b6f26&amp;quot;)&amp;nbsp;}
MongoDB&amp;nbsp;server&amp;nbsp;version:&amp;nbsp;4.4.13
mongos&amp;gt;&amp;nbsp;use&amp;nbsp;test
switched&amp;nbsp;to&amp;nbsp;db&amp;nbsp;test
mongos&amp;gt;&amp;nbsp;db.test.insert({&amp;quot;test1&amp;quot;:&amp;quot;meta1&amp;quot;})
WriteResult({&amp;nbsp;&amp;quot;nInserted&amp;quot;&amp;nbsp;:&amp;nbsp;1&amp;nbsp;})
mongos&amp;gt;&amp;nbsp;db.test.find()
{&amp;nbsp;&amp;quot;_id&amp;quot;&amp;nbsp;:&amp;nbsp;ObjectId(&amp;quot;625e5f7aadd84bbc8eb36730&amp;quot;),&amp;nbsp;&amp;quot;test1&amp;quot;&amp;nbsp;:&amp;nbsp;&amp;quot;meta1&amp;quot;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;10、启动脚本&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;tee&amp;nbsp;/data/mongodb/cluster.sh&amp;nbsp;&amp;lt;&amp;lt;-&amp;#39;EOF&amp;#39;
#!/bin/bash

hosts=(&amp;nbsp;192.168.137.5&amp;nbsp;192.168.137.6&amp;nbsp;192.168.137.7&amp;nbsp;)

mongo_start(){
&amp;nbsp;&amp;nbsp;source&amp;nbsp;~/.bashrc
&amp;nbsp;&amp;nbsp;pre_mongod=`ps&amp;nbsp;-ef&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;mongod&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-v&amp;nbsp;grep`
&amp;nbsp;&amp;nbsp;pre_mongos=`ps&amp;nbsp;-ef&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;mongos&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-v&amp;nbsp;grep`
&amp;nbsp;&amp;nbsp;if&amp;nbsp;[[&amp;nbsp;!$pre_mongod&amp;nbsp;]]&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;[[&amp;nbsp;!$pre_mongos&amp;nbsp;]];&amp;nbsp;then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;host&amp;nbsp;in&amp;nbsp;${hosts[@]}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;do
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;********&amp;nbsp;$host&amp;nbsp;configsvr&amp;nbsp;start...&amp;nbsp;********&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;mongod&amp;nbsp;--config&amp;nbsp;/data/mongodb/conf/configsvr.yml
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;done
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sleep&amp;nbsp;2

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;host&amp;nbsp;in&amp;nbsp;${hosts[@]}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;do
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;**********&amp;nbsp;$host&amp;nbsp;shard&amp;nbsp;start...&amp;nbsp;**********&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;mongod&amp;nbsp;--config&amp;nbsp;/data/mongodb/conf/shard1.yml
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;mongod&amp;nbsp;--config&amp;nbsp;/data/mongodb/conf/shard2.yml
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;mongod&amp;nbsp;--config&amp;nbsp;/data/mongodb/conf/shard3.yml
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;done
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sleep&amp;nbsp;2

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;host&amp;nbsp;in&amp;nbsp;${hosts[@]}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;do
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;**********&amp;nbsp;$host&amp;nbsp;mongos&amp;nbsp;start...&amp;nbsp;**********&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;mongos&amp;nbsp;--config&amp;nbsp;/data/mongodb/conf/mongos.yml
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;done
&amp;nbsp;&amp;nbsp;else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;check&amp;nbsp;whether&amp;nbsp;the&amp;nbsp;process&amp;nbsp;has&amp;nbsp;stopped!&amp;quot;
&amp;nbsp;&amp;nbsp;fi
}

mongo_stop(){
&amp;nbsp;&amp;nbsp;source&amp;nbsp;~/.bashrc
&amp;nbsp;&amp;nbsp;for&amp;nbsp;host&amp;nbsp;in&amp;nbsp;${hosts[@]}
&amp;nbsp;&amp;nbsp;do
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;************&amp;nbsp;$host&amp;nbsp;mongos&amp;nbsp;stop...&amp;nbsp;***********&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;&amp;quot;cat&amp;nbsp;/data/mongodb/run/mongos.pid&amp;nbsp;|&amp;nbsp;xargs&amp;nbsp;kill&amp;nbsp;-15&amp;quot;
&amp;nbsp;&amp;nbsp;done
&amp;nbsp;&amp;nbsp;sleep&amp;nbsp;3

&amp;nbsp;&amp;nbsp;for&amp;nbsp;host&amp;nbsp;in&amp;nbsp;${hosts[@]}
&amp;nbsp;&amp;nbsp;do
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;************&amp;nbsp;$host&amp;nbsp;shard&amp;nbsp;stop...&amp;nbsp;************&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;&amp;quot;cat&amp;nbsp;/data/mongodb/run/shard1.pid&amp;nbsp;|&amp;nbsp;xargs&amp;nbsp;kill&amp;nbsp;-15&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;&amp;quot;cat&amp;nbsp;/data/mongodb/run/shard2.pid&amp;nbsp;|&amp;nbsp;xargs&amp;nbsp;kill&amp;nbsp;-15&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;&amp;quot;cat&amp;nbsp;/data/mongodb/run/shard3.pid&amp;nbsp;|&amp;nbsp;xargs&amp;nbsp;kill&amp;nbsp;-15&amp;quot;
&amp;nbsp;&amp;nbsp;done
&amp;nbsp;&amp;nbsp;sleep&amp;nbsp;3

&amp;nbsp;&amp;nbsp;for&amp;nbsp;host&amp;nbsp;in&amp;nbsp;${hosts[@]}
&amp;nbsp;&amp;nbsp;do
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;**********&amp;nbsp;$host&amp;nbsp;configsvr&amp;nbsp;stop...&amp;nbsp;**********&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;&amp;quot;cat&amp;nbsp;/data/mongodb/run/configsvr.pid&amp;nbsp;|&amp;nbsp;xargs&amp;nbsp;kill&amp;nbsp;-15&amp;quot;
&amp;nbsp;&amp;nbsp;done
}

mongo_status(){
&amp;nbsp;&amp;nbsp;source&amp;nbsp;~/.bashrc
&amp;nbsp;&amp;nbsp;for&amp;nbsp;host&amp;nbsp;in&amp;nbsp;${hosts[@]}
&amp;nbsp;&amp;nbsp;do
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;***************&amp;nbsp;$host&amp;nbsp;status&amp;nbsp;***************&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;$host&amp;nbsp;ps&amp;nbsp;-ef&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;mongo*&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-v&amp;nbsp;grep
&amp;nbsp;&amp;nbsp;done
}

case&amp;nbsp;$1&amp;nbsp;in
&amp;nbsp;&amp;nbsp;start)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;**************&amp;nbsp;start&amp;nbsp;mongodb&amp;nbsp;***************&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongo_start
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;**************&amp;nbsp;start&amp;nbsp;finish&amp;nbsp;****************&amp;quot;
&amp;nbsp;&amp;nbsp;;;
&amp;nbsp;&amp;nbsp;stop)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;**************&amp;nbsp;stop&amp;nbsp;mongodb&amp;nbsp;****************&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongo_stop
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;***************&amp;nbsp;stop&amp;nbsp;finish&amp;nbsp;****************&amp;quot;
&amp;nbsp;&amp;nbsp;;;
&amp;nbsp;&amp;nbsp;status)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;***********&amp;nbsp;mongodb-4.4.13&amp;nbsp;status&amp;nbsp;**********&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongo_status
&amp;nbsp;&amp;nbsp;;;
&amp;nbsp;&amp;nbsp;*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;*************&amp;nbsp;illegal&amp;nbsp;argument&amp;nbsp;*************&amp;quot;
esac
EOF&lt;/pre&gt;&lt;p&gt;11、修改密码&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; padding: 16px; border-radius: 3px; background-color: rgb(246, 248, 250); box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow-wrap: normal; overflow: auto; color: rgb(36, 41, 46); margin-bottom: 0px !important;&quot;&gt;./mongo&amp;nbsp;--host&amp;nbsp;xxx&amp;nbsp;--port&amp;nbsp;27107&amp;nbsp;-u&amp;nbsp;&amp;quot;admin&amp;quot;&amp;nbsp;-p&amp;nbsp;--authenticationDatabase&amp;nbsp;&amp;quot;admin&amp;quot;
&amp;gt;&amp;nbsp;use&amp;nbsp;admin&amp;nbsp;
&amp;gt;&amp;nbsp;db.changeUserPassword(&amp;#39;user&amp;#39;,&amp;#39;newpassword&amp;#39;)；&amp;nbsp;
&amp;gt;&amp;nbsp;db.auth(&amp;#39;user&amp;#39;,&amp;#39;newpassword&amp;#39;);&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 19 Apr 2022 14:19:33 +0800</pubDate></item></channel></rss><!--22.98 ms , 5 query , 2726kb memory , 0 error-->