一,Vmware虚拟机和环境安装配置
本文首先从环境开始安装起,不管是现在的基础环境,如mysql,redis,还是后面可能需要的rocketMq,es等,都会在本文中详细的写出安装命令。在安装前,由于本人用的是虚拟机,虽然有服务器,但是服务器真的太耗成本了,所以选择虚拟机,虚拟机使用的 Vmware17,ios选择的是ubuntu版本,ubuntu相对于centos在安装环境时比较友好
1,vmware安装
vmware虚拟机用的版本是17,可以直接去官网下载:官网下载地址(https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware Workstation Pro)
官网下载不了的话,也可以直接使用本人版本,其链接如下 https://pan.baidu.com/s/1wFgvD2GJNWnAOhqJSnZZ1w?pwd=mptm ,提取码: mptm ,如果使用不了,可以在最底下的名片加本人微信私要即可
安装步骤就比较简单,可以选择custom自定义安装,然后修改一下文件路径不要存c盘就行,一直点next安装就行,后面尽量选择它推荐的方式一直往下点直到安装完成即可。也可以搜索一下其他博主的安装文章,大家写的都大差不差
vmware许可证如下,参考原文链接:vmware许可证 ,需要根据版本一个个去试,本人目前使用的这个 JU090-6039P-08409-8J0QH-2YR7F 是有效的
java
17:
14A4RR-813DK-M81A9-4U35H-06KND
JU090-6039P-08409-8J0QH-2YR7F
16:
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
FNEW8-ZY7TY-Y1Z7W-QZQCR-NZZ5V
XJKN8-KM9KX-H1Y91-FQPVX-QFXUZ
15:FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6
12:ZC3TK-63GE6-481JY-WWW5T-Z7ATA
10:1Z0G9-67285-FZG78-ZL3Q2-234JG
2,ios镜像下载安装
ios我这边选择是ubuntu的镜像,大家也可以选择centos的镜像,但是在安装东西这块Ubuntu会比centos爽很多,稍微大点的企业的运维用ubuntu系统比较多,而且ubuntu开源,社区比较活跃,官方文档也比较齐全,因此选择ubuntu。
其官网下载地址如下:https://ubuntu.com/download/server ,本人是选择下面这个版本,维护时间比较长,并且开源免费,打开网页直接下载即可
如果下面的网页打不开或者实在不想等,那么本人帮各位下载好了,直接从我的网盘里面获取即可,其链接如下:https://pan.baidu.com/s/1w7ZvSgZx8iCL9ee-Bb6RjQ?pwd=eqii

在新建虚拟机的时候需要用到ios文件,那么就需要选择上面下载的镜像,当作系统盘

后面就是傻瓜式创建新的虚拟机即可,内存cpu大小根据实际情况,网络可以选择默认的NAT的模式,但是如果是固定在家或者在公司学习,网络不会频繁切换,那么优先选择桥接模式,因为NAT模式需要接口转换比较麻烦,桥接模式直接获取虚拟机的ip那么就可以直接在windows上面连接
后面设置服务名称,账号密码等,根据一步一步提示往下走即可,直到成功安装为止。
最后说一下到这步的时候,前面的name和servername可以自定义,那个是设置电脑名称,后面的username和password需要记住,这个是这台机器用户的账号密码

3,FinalShell安装
上面将虚拟机安装好并通过ios创建一个新的虚拟机之后,在虚拟机里面操作可能不太方便,可以直接在windows中的finalshell或者xshell操作,这样就不需要频繁的操作虚拟机,虚拟机复制黏贴等功能也不是特别友好,我这边选择finalshell操作
finalShell官网地址如下:https://www.hostbuf.com/t/988.html ,选择windows版本即可

随后在虚拟机中,获取虚拟机的ip,通过ifconfig命令,不行就ipconfig
java
ifconfig

最后在finalshell连接虚拟机,用户名和密码在创建虚拟机步骤中设置的,这里填入即可

连接成功后会出现一下信息,会将剩余的内存cpu等这些显示

4,docker安装
接下来需要在虚拟机中安装docker,还是通过finalshell里面进行操作,为什么选择ubantu系统,就是图他的安装东西快捷,接下来傻瓜式安装docker即可
卸载旧版本
java
sudo apt-get remove docker docker-engine docker.io containerd runc
更新索引
java
sudo apt-get update
安装必要依赖和ca证书
java
sudo apt-get install -y ca-certificates curl gnupg lsb-release
创建GPG密钥安装目录
java
sudo mkdir -p /etc/apt/keyrings
安装GPG密钥
java
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
设置docker软件源
java
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
再次更新索引
java
sudo apt-get update
安装 Docker Engine
java
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
最后安装成功之后,查看一下images
java
sudo docker images
最后安装一下docker的国内镜像,这样后续pull镜像的时候就快多了,首先需要创建文件
java
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
随后在文件中输入一下内容,最后ctrl+o保存,ctrl+x退出即可
java
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com",
"https://hub-mirror.c.163.com"
]
}
最后需要重启一下docker
java
sudo systemctl daemon-reexec
sudo systemctl restart docker
也可以测试一下,输入一下命令就能找到刚刚配置的镜像源
java
sudo docker info | grep "Registry Mirrors" -A 1
5,mysql安装
这里安装一个mysql8.0版本,首先还是先拉取镜像,这里选择8.0版本
java
sudo docker pull mysql:8.0
随后创建目录,用于挂在容器内部数据,防止数据丢失
java
sudo mkdir -p /mydata/mysql/data
sudo mkdir -p /mydata/mysql/conf
sudo mkdir -p /mydata/mysql/logs
随后启动mysql容器,这里设置密码为123456,密码可以更改
java
sudo docker run -d \
--name mysql \
-p 3306:3306 \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-v /mydata/mysql/logs:/logs \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0
随后查看容器是否启动成功
java
sudo docker ps -a
最后再conf配置文件中加一个 my.cnf 配置类
java
sudo nano /mydata/mysql/conf/my.cnf
配置类的内容如下,主要是设置一些默认的字符集
java
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
[client]
default-character-set=utf8mb4
设置完成之后,再重新启动容器,可以通过容器名称,也可以通过容器id进行重启
java
sudo docker restart mysql
也可以通过进入容器内部进行测试,判断mysql是否能用,其步骤如下
- sudo docker ps:查看正在运行的容器,获取容器id
- sudo docker exec -it 容器id /bin/bash:通过容器id进入容器内部
- mysql -u root -p:执行进入mysql的命令,随后输入密码,上面设置的是123456
- create database mall: 创建一个数据库

成功之后,直接再外面通过navicat进行连接即可,ip还是通过ifconfig获取
6,redis安装
接下来直接通过docker安装redis,首先拉起镜像源,我这里直接使用最新版本
java
sudo docker pull redis:latest
随后启动redis,通过交互式运行,设置名字为redis,数据挂载到 /mydata/redis/data
java
sudo docker run -d --name redis \
-p 6379:6379 \
-v /mydata/redis/data:/data \
redis redis-server --appendonly yes
随后通过命令查看redis是否启动
java
sudo docker ps -a
也可以进入容器内部,看是否可用
java
docker exec -it redis redis-cli
外部连接的工具推荐使用 AnotherRedisManager,可以直接在github下载,作者将这个开源的工具也打包成了一个exe文件,属于是非常轻量级的工具
github地址如下:https://github.com/qishibo/AnotherRedisDesktopManager/releases
其网页内容如下,直接选择windows系统的zip下载即可

7,elasticsearch安装
设置max_map_count最大值
java
sysctl -w vm.max_map_count=262144
安装es版本,选择7.7.1
java
sudo docker pull elasticsearch:7.7.1
启动脚本如下,设置堆内存大小
java
sudo docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.1
进入容器
java
sudo docker exec -it elasticsearch /bin/bash
随后修改elasticsearch.yml文件
java
cd config
vim elasticsearch.yml
修改的内容如下:
java
cluster.name: "docker-cluster"
network.host: 0.0.0.0
#设置跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
#设置端口号
http.port: 9200
随后curl验证是否成功
java
curl 0.0.0.0:9200
8,kibana安装
拉取镜像
java
sudo docker pull kibana:7.7.1
新建文件夹
java
sudo mkdir -p /data/elk7/kibana/config/
vi /data/elk7/kibana/config/kibana.yml
内容如下
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.1.246:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
启动命令如下
java
sudo docker run -d --name=kibana --restart=always -p 5601:5601 -v /data/elk7/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.7.1
9,rocketmq单机版搭建
插件rocketmq目录
java
sudo mkdir -p /mydata/rocketmq/namesrv/logs
sudo mkdir -p /mydata/rocketmq/broker/logs
sudo mkdir -p /mydata/rocketmq/broker/store
sudo mkdir -p /mydata/rocketmq/broker/conf
sudo rm -rf /mydata/rocketmq/broker/logs /mydata/rocketmq/broker/store
sudo mkdir -p /mydata/rocketmq/broker/logs /mydata/rocketmq/broker/store
sudo chown -R 1000:1000 /mydata/rocketmq/broker/logs /mydata/rocketmq/broker/store
sudo chmod -R 775 /mydata/rocketmq/broker/logs /mydata/rocketmq/broker/store
配置
json
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
namesrvAddr=192.168.31.47:9876
brokerIP1=192.168.31.47
listenPort=10911
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
autoCreateTopicEnable=true
storePathRootDir=/home/rocketmq/store
storePathCommitLog=/home/rocketmq/store/commitlog
storePathConsumerQueue=/home/rocketmq/store/consumequeue
storePathIndex=/home/rocketmq/store/index
启动rocketmq
java
sudo docker pull apache/rocketmq:4.9.4
启动rocketmq
java
sudo docker run -d --name rocketmq-namesrv --restart=always -p 9876:9876 -v /mydata/rocketmq/namesrv/logs:/home/rocketmq/logs apache/rocketmq:4.9.4 sh mqnamesrv
看日志
java
sudo docker ps | grep rocketmq-namesrv
启动broker
java
sudo docker run -d --name rocketmq-broker --restart=always --user root -p 10911:10911 -p 10909:10909
-v /mydata/rocketmq/broker/conf/broker.conf:/home/rocketmq/broker.conf -v /mydata/rocketmq/broker/logs:/home/rocketmq/logs -v /mydata/rocketmq/broker/store:/home/rocketmq/store apache/rocketmq:4.9.4 sh mqbroker -c /home/rocketmq/broker.conf
启动日志
java
sudo docker logs -f rocketmq-broker
sudo docker logs --tail=200 rocketmq-broker
排查
java
sudo docker exec -it rocketmq-broker sh
sh /home/rocketmq/rocketmq-4.9.4/bin/mqadmin topicStatus -n 192.168.31.47:9876 -t zhsTopicV1
10,canal消息中间件
进入mysql容器
sql
show variables like 'log_bin';
show variables like 'binlog_format';
show variables like 'binlog_row_image';
show master status;
新建canal账号
sql
CREATE USER IF NOT EXISTS 'canal'@'%' IDENTIFIED BY 'canal123456';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'canal'@'%';
登录mysql
java'
sudo docker exec -it mysql mysql -ucanal -pcanal123456
拉取canal镜像
java
sudo docker pull canal/canal-server:v1.1.7
新建canal日志
java
sudo mkdir -p /mydata/canal/logs
启动docker服务
java
sudo docker run -d \
--name canal-server \
--restart=always \
-p 11111:11111 \
-v /mydata/canal/logs:/home/admin/canal-server/logs \
-e canal.auto.scan=false \
-e canal.destinations=example \
-e canal.instance.master.address=192.168.31.47:3306 \
-e canal.instance.dbUsername=canal \
-e canal.instance.dbPassword=canal123456 \
-e canal.instance.connectionCharset=UTF-8 \
-e canal.instance.tsdb.enable=true \
-e canal.instance.gtidon=false \
-e canal.instance.filter.regex=soulv2\.user \
-e canal.serverMode=rocketMQ \
-e rocketmq.namesrv.addr=192.168.31.47:9876 \
-e canal.mq.topic=xy_user_profile_sync_topic \
canal/canal-server:v1.1.7