Mysql 版本:8.0.32
地址:8.140.253.200:3306
redis 版本:6.2.7
地址:8.140.253.200:6379
clickhouse 版本:23.5.3.24
地址:8.140.253.200:8123
nacos 版本:2.2.0
地址:8.140.253.200:8848
mqtt 版本:emqx:5.6.0
地址:8.140.253.200:1883
-
安装docker
1.1、升级所有包
yum update //升级所有包,同时升级软件和系统内核
yum upgrade //升级所有包,不升级软件和系统内核
1.2、安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
1.3、添加aliyun docker软件包源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.4、添加软件包源到本地缓存
yum makecache fast
rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
1.5、安装docker
yum -y install docker-ce
1.6、设置开机启动docker
systemctl enable docker
1.7、重启docker
systemctl stop firewalld
systemctl disable firewalld
systemctl restart docker
1.8、配置镜像加速
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:cr.console.aliyun.com/cn-hangzhou… 也可以直接复制以下命令:
mkdir -p /home/docker-images
cd /etc/docker/
vim daemon.json
{
"registry-mirrors": ["https://q9n10oke.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.m.daocloud.io"],
"insecure-registries": ["8.141.94.237:5000"],
"data-root": "/home/docker-images"
}
systemctl daemon-reload
systemctl restart docker
docker login 8.141.94.237:5000
Username: admin
Password: Harbor12345
1.9、安装docker-compose
直接使用 yum install -y docker-compose 安装即可。
如果加载 docker-compose.yml 文件出现以下错误,说明 yml 中配置的 version 不支持,修改成报错信息中支持的版本即可(以下报错中提示,只支持 version 为 2.2 或者 3.3 的版本)
[root@VM-8-17-centos redis-sentinel]# docker-compose up -d
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/
-
安装mysql
-
拉取镜像
docker pull mysql:8.0.32
-
设置mysql容器的映射路径
mkdir -p /home/mysql/{log,data,conf,mysql-files}
mkdir -p /home/mysql2/{log,data,conf,mysql-files}
-
配置my.cnf
cd /home/mysql/conf/
vim my.cnf
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/mysql.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
#log_bin = /var/log/mysql/mysql-bin.log
#expire_logs_days = 7
#max_binlog_size = 100M4
# 设置东八区时区
default-time_zone = '+8:00'
log_timestamps=SYSTEM
#服务器 id,随意,但要唯一
server-id = 4
#开启二进制日志
log-bin = mysql-bin
#参数用于排除自带的数据库。
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format = ROW
#需要复制的数据库
replicate-do-db=device_mgmt_db
-
启动mysql容器
docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=YiShu789654 -d mysql:8.0.32
docker run -p 3308:3306 --name mysql-2 --restart=always --privileged=true \
-v /home/mysql2/log:/var/log/mysql \
-v /home/mysql2/data:/var/lib/mysql \
-v /home/mysql2/conf:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=YiShu789654 -d mysql:8.0.32
docker run -p 3309:3306 --name mysql-3 --restart=always --privileged=true \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.32
-
创建新用户:
CREATE USER 'ceshi'@'%' IDENTIFIED BY 'SdebBKMxA5GZubV9';
CREATE USER 'yishu'@'%' IDENTIFIED BY '8wr+/3WoFRh0+XaN';
-
授予权限:
GRANT ALL PRIVILEGES ON *.* TO 'ceshi'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'yishu'@'%';
FLUSH PRIVILEGES;
-
创建新用户并授权
CREATE USER 'device_mgmt'@'%' IDENTIFIED BY 'Ol8AIDXKZmWZKZTk';
GRANT SELECT, INSERT, UPDATE, DELETE ON device_mgmt_db.* TO 'device_mgmt'@'%';
CREATE USER 'readonly-yujie'@'%' IDENTIFIED BY 'uwt7/Bj/viTIQOuk';
GRANT SELECT ON device_mgmt_db.* TO 'readonly-yujie'@'%';
GRANT SELECT ON euma_center_db.* TO 'readonly-yujie'@'%';
CREATE USER 'py-data-sync'@'%' IDENTIFIED BY 'ZkZIhkKhwR+7MuDOGIvI';
GRANT SELECT, INSERT, UPDATE, DELETE ON device_mgmt_db.* TO 'py-data-sync'@'%';
GRANT SELECT ON euma_center_db.* TO 'py-data-sync'@'%';
CREATE USER 'heat_ics'@'%' IDENTIFIED BY 'ns1jvprbmZUyiZFA';
GRANT SELECT, INSERT, UPDATE, DELETE ON heat_ics_db.* TO 'heat_ics'@'%';
CREATE USER 'nacos_config'@'%' IDENTIFIED BY 'TiIZW5IieuUgyBTf';
GRANT SELECT, INSERT, UPDATE, DELETE ON nacos_config.* TO 'nacos_config'@'%';
CREATE USER 'weather'@'%' IDENTIFIED BY 'QU+McnNZHJZ82H7v';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON weather.* TO 'weather'@'%';
CREATE USER 'monitor_alerts'@'%' IDENTIFIED BY 'JQPefjqXqkcjbSG+';
GRANT SELECT, INSERT, UPDATE, CREATE, DELETE ON monitor_alerts_db.* TO 'monitor_alerts'@'%';
CREATE USER 'liufangzheng'@'%' IDENTIFIED BY 'pwAd921PsZIiW2Xk';
GRANT SELECT, INSERT, UPDATE, DELETE ON device_mgmt_db.* TO 'liufangzheng'@'%';
CREATE USER 'yangqingtao'@'%' IDENTIFIED BY '+k6H2REKiIGz2HvO';
GRANT SELECT, INSERT, UPDATE, DELETE ON device_mgmt_db.* TO 'yangqingtao'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE ON heat_ics_db.* TO 'yangqingtao'@'%';
CREATE USER 'enterprise_mc'@'%' IDENTIFIED BY 'jREXzAs/wg4YVxOJ';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON enterprise_mc_db.* TO 'enterprise_mc'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON project_mgmt.* TO 'enterprise_mc'@'%';
CREATE USER 'xxl-job'@'%' IDENTIFIED BY 'jH9MpO3SM1g+zY/v';
GRANT SELECT, INSERT, UPDATE, DELETE ON xxl_job.* TO 'xxl-job'@'%';
CREATE USER 'euma-center'@'%' IDENTIFIED BY 'oMcN/xgK39Y809lu+2';
GRANT SELECT, INSERT, UPDATE, DELETE ON euma_center_db.* TO 'euma-center'@'%';
CREATE USER 'monitor_center'@'%' IDENTIFIED BY 'A2JKC1/+IZ2q4535uycu';
GRANT SELECT, INSERT, UPDATE, DELETE ON monitor_center_db.* TO 'monitor_center'@'%';
CREATE USER 'visual_bi'@'%' IDENTIFIED BY 'EvvWjKjP+yx+g2aJZGkP';
GRANT SELECT, INSERT, UPDATE, DELETE ON visual_bi_db.* TO 'visual_bi'@'%';
FLUSH PRIVILEGES;
mysql-2数据库
CREATE USER 'readonly_user'@'%' IDENTIFIED BY 'xnKF9YfvSuG/23Hu';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REFERENCES, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON *.* TO 'readonly_user'@'%' WITH GRANT OPTION;
REVOKE ADMIN ON *.* FROM 'readonly_user'@'%';
FLUSH PRIVILEGES;
-
更改用户密码
ALTER USER 'root'@'%' IDENTIFIED BY '94hEq2/jBozwbKSdt/5c';
ALTER USER 'device_mgmt'@'%' IDENTIFIED BY 'ArM8K/HBKMqdcYecMdrE';
ALTER USER 'heat_ics'@'%' IDENTIFIED BY 'P5CQZ/FzGVDA2vm+3DLN';
ALTER USER 'yishu'@'%' IDENTIFIED BY 'pfxQ+y/0mneza3MOaaje';
ALTER USER 'enterprise_mc'@'%' IDENTIFIED BY 'h6zO/lq/y/BiXjZ9yIHf';
ALTER USER 'monitor_alerts'@'%' IDENTIFIED BY '2ueBV7TDmcKnPzi2uq/+';
ALTER USER 'xxl-job'@'%' IDENTIFIED BY 'jH9MpO3SM1g+zY/v';
-
将用户权限去掉
REVOKE DELETE ON monitor_alerts_db.* FROM 'monitor_alerts'@'%';
FLUSH PRIVILEGES;
-
mysql备份
mysqldump -u username -p --no-data --all-databases > all_db_structure.sql
mysqldump -u root -p device_mgmt_db > device_mgmt_db_backup.sql
-
权限列表
- SELECT : 允许用户从表中检索数据。
- INSERT: 允许用户向表中插入新的数据行。
- UPDATE: 允许用户更新表中的现有数据。
- DELETE: 允许用户从表中删除数据。
- CREATE: 允许用户创建新的数据库和表。
- DROP: 允许用户删除数据库和表。
- RELOAD: 允许用户刷新服务器的权限表。
- SHUTDOWN: 允许用户关闭数据库服务器。
- PROCESS: 允许用户查看其他用户的线程和杀死它们。
- FILE: 允许用户访问文件。
- INDEX: 允许用户创建和删除索引。
- ALTER: 允许用户修改现有数据库结构,如添加或删除列。
- CREATE TEMPORARY TABLES: 允许用户创建临时表。
- LOCK TABLES: 允许用户锁定表以进行事务处理。
- EXECUTE: 允许用户执行存储过程和函数。
- REPLICATION SLAVE: 用于复制设置中的从属服务器。
- REPLICATION CLIENT: 用于复制设置中的客户端。
- CREATE VIEW: 允许用户创建视图。
- SHOW VIEW: 允许用户查看视图的结构。
- CREATE ROUTINE: 允许用户创建存储过程和函数。
- ALTER ROUTINE: 允许用户修改存储过程和函数。
- CREATE USER: 允许用户创建新的数据库用户。
- EVENT: 允许用户创建和删除事件。
- TRIGGER: 允许用户创建和删除触发器。
-
mysql主从复制
-
主服务器(Master)配置:
-
配置my.cnf文件:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
# 设置东八区时区
default-time_zone = '+8:00'
#服务器 id,随意,但要唯一
server-id = 1
#开启二进制日志
log-bin = mysql-bin
#身份验证插件
default_authentication_plugin=mysql_native_password
#参数用于排除自带的数据库。
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format = ROW
-
重启MySQL服务:
docker logs -f mysql
-
创建复制用户:
- 登录到MySQL:(Navicat就可以)
mysql -u root -p
- 创建一个新的用户并授权:
CREATE USER 'zhucong'@'%' IDENTIFIED BY 'CAm/ZccB9646CxDC';
GRANT REPLICATION SLAVE ON *.* TO 'zhucong'@'%';
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'zhucong'@'%';
FLUSH PRIVILEGES;
-
获取主服务器状态:
SHOW MASTER STATUS;
记下
File和Position的值。
-
从服务器(Slave)配置:
-
拉取镜像
docker pull mysql:8.0.32
-
设置mysql容器的映射路径
mkdir -p /home/mysql-1/{log,data,conf,mysql-files}
-
配置my.cnf
cd /home/mysql-1/conf/
vim my.cnf
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
# 设置东八区时区
default-time_zone = '+8:00'
#服务器 id,随意,但要唯一
server-id = 10
#开启二进制日志
log-bin = mysql-bin
#参数用于排除自带的数据库。
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format = ROW
#需要复制的数据库
replicate-do-db=device_mgmt_db
-
启动mysql容器
docker run -p 3307:3306 --name mysql-1 --restart=always --privileged=true \
-v /home/mysql-1/log:/var/log/mysql \
-v /home/mysql-1/data:/var/lib/mysql \
-v /home/mysql-1/conf:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=YiShu789654 -d mysql:8.0.32
-
配置my.cnf文件:
-
在从服务器上编辑MySQL配置文件
my.cnf。
-
在
[mysqld]部分添加以下配置:
-
server-id=2 # 为服务器分配一个唯一的ID,不能与主服务器相同
read_only=1 # 设置从服务器为只读模式
# 在mysqld字段下添加如下内容:
replicate-do-db=xxx 设定需要复制的数据库
replicate-ignore-db=xxx 设定需要忽略的复制数据库
replicate-do-table=xxx 设定需要复制的表
replicate-ignore-table=xxx 设定需要忽略的复制表
replicate-wild-do-table=xxx 同replication-do-table功能一样,但是可以通配符
replicate-wild-ignore-table=xxx 同replication-ignore-table功能一样,但是可以加通配符
-
重启MySQL服务:
docker restart mysql
-
配置从服务器复制:
- 登录到MySQL:
mysql -u root -p- 停止从服务器服务:
STOP SLAVE;- 配置从服务器复
CHANGE MASTER TO MASTER_HOST='8.140.253.200', MASTER_USER='zhucong', MASTER_PASSWORD='CAm/ZccB9646CxDC', MASTER_PORT = 3306, MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS= 133793885 ; CHANGE MASTER TO MASTER_HOST='8.140.253.200', MASTER_USER='zhucong', MASTER_PASSWORD='CAm/ZccB9646CxDC', MASTER_PORT = 3306 ;-
MASTER_USE_GTID=CURRENT_POS选项用于指定从当前GTID位置开始复制。
-
启动从服务器复制:
STOP SLAVE; START SLAVE;- 检查复制状态:
# 主 SHOW MASTER STATUS; # 从 SHOW SLAVE STATUS\G;- 确认
Slave_IO_Running和Slave_SQL_Running的状态为Yes。
-
报错:
error connecting to master 'zhucong@8.140.253.200:3306' - retry-time: 60 retries: 10 message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
# mysql 8.0之后默认的认证方式变为caching_sha2_password
STOP SLAVE;
CHANGE MASTER TO GET_MASTER_PUBLIC_KEY=1;
RESET SLAVE;
CHANGE MASTER TO
MASTER_HOST='8.140.253.200',
MASTER_USER='zhucong',
MASTER_PASSWORD='CAm/ZccB9646CxDC',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000009',
MASTER_LOG_POS= 7641960 ;
start slave;
SHOW SLAVE STATUS\G;
-
创建只读帐号
CREATE USER 'readonly_user'@'%' IDENTIFIED BY 'xnKF9YfvSuG/23Hu';
GRANT SELECT ON device_mgmt_db.* TO 'readonly_user'@'%';
FLUSH PRIVILEGES;
-
docker 安装 Redis6
-
拉取官方 Redis6.2.7 镜像
docker pull redis:6.2.7
-
创建本机redis挂载目录
mkdir -p /home/redis/{data,conf}
在 /home/redis/conf 目录中创建文件 redis.conf,文件从 官网下载
暂时无法在飞书文档外展示此内容
vim /home/redis//conf/redis.conf
# 修改启动默认配置(从上至下依次):
bind 127.0.0.1 #改掉这部分,这是限制redis只能本地访问
bind 0.0.0.0
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no #默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。
dir ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)
maxmemory-policy noeviction
-
创建redis容器
docker run -d --restart=always --name redis6.2 \
-p 6379:6379 \
-v /home/redis/conf/redis.conf:/redis.conf \
-v /home/redis/data:/data \
redis:6.2.7 \
redis-server /redis.conf \
--appendonly yes
--requirepass "123456"
参数解释:
-d 后台运行
-p 端口映射到主机的端口
-v 将主机目录挂载到容器的目录
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
–requirepass :设置密码
-
安装clickhouse
-
docker拉取镜像
docker pull clickhouse/clickhouse-server:23.5.3.24
-
设置ClickHouse容器的映射路径
mkdir -p /home/clickhouse/{/data,/config,/log}
-
添加用户配置密码
启动临时容器
docker run -d --name clickhouse --restart=always \
--ulimit nofile=262144:262144 \
-p 8124:8123 -p 9010:9000 -p 9019:9009 --privileged=true \
-e TZ='Asia/Shanghai' clickhouse/clickhouse-server:23.5.3.24
- 将容器内config.xml拷贝至主机config目录
docker cp clickhouse:/etc/clickhouse-server/config.xml /home/clickhouse/config/config.xml
- 将容器内users.xml拷贝至主机config目录
docker cp clickhouse:/etc/clickhouse-server/users.xml /home/clickhouse/config/users.xml
- default用户配置
# 生成sha256sum密码
# 随机生成密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
7I2bHFLv
a39ddb33bf9e57aaa208b0dd100c14f663125ccca7a356ab69fce7ed8ec97764
# 生成指定密码123456
echo "YiShu369852"; echo -n "YiShu369852" | sha256sum | tr -d '-'
YiShu369852
# 打开users.xml文件 default用户设置密码为123456
vim /home/clickhouse/config/users.xml
# 将文件中<password></password>改为以下内容
<password>tc5QAM/HxRsqcJhl</password>
# 将default用户改为只读
# 将<profile>default</profile>改为以下内容
<profile>readonly</profile>
- 新增root用户
# 生成root用户密码123456
echo "Yishu123456"; echo -n "Yishu123456." | sha256sum | tr -d '-'
Yishu123456
# 打开users.xml文件
vim /data/clickhouse/config/users.xml
# 在</default>下一行添加以下内容
<root>
<password>PwEkQEe927jtf1Eu</password>
<access_management>1</access_management>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</root>
- 删除临时容器:
docker rm -f clickhouse
-
安装ClickHouse
# 提前在有docker环境的centos7系统下执行命令:
# 启动clickhouse-server
docker run -d --name clickhouse --restart=always \
--ulimit nofile=262144:262144 \
-p 8123:8123 -p 9000:9000 -p 9009:9009 --privileged=true \
-v /home/clickhouse/data:/var/lib/clickhouse:rw \
-v /home/clickhouse/log:/var/log/clickhouse-server:rw \
-v /home/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml \
-v /home/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml \
-e TZ='Asia/Shanghai' clickhouse/clickhouse-server:23.5.3.24
-
使用DBeaver连接clickhouse
8123
-
clickhouse-backup工具备份
特点:
(1) 可以轻松创建和恢复所有或特定表的备份
(2) 在文件系统上高效存储多个备份
(3) 通过流压缩上传和下载
(4) 支持增量备份在远程存储上
安装:
tar -xzvf clickhouse-backup-linux-amd64.tar.gz
mv build/linux/amd64/clickhouse-backup /usr/bin/
mkdir /etc/clickhouse-backup
chown -R clickhouse:clickhouse /etc/clickhouse-backup
修改配置文件
## 修改配置文件
sudo vim config.yml
-
创建库用户名密码
CREATE DATABASE IF NOT EXISTS weather;
CREATE USER IF NOT EXISTS weather IDENTIFIED WITH PLAINTEXT_PASSWORD BY '06iB5gjPRhuaHc/u';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON weather.* TO weather;
CREATE USER 'yujie-ck' IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'sKNbxkwVXMgL7+N9';
GRANT SELECT, INSERT ON edata_data_warehouse.t_dwd TO 'yujie-ck';
CREATE USER 'edata_data_rw' IDENTIFIED WITH PLAINTEXT_PASSWORD BY '4VW2kV/JSGaIcA/y';
GRANT SELECT, INSERT, UPDATE ON edata_data_warehouse.t_dwd TO 'edata_data_rw';
CREATE USER 'huyunfei' IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'XXmFx78oJqTu/Tqw';
GRANT SELECT, INSERT ON edata_data_warehouse.* TO 'huyunfei';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON edata_data_warehouse.t_dwd_cold_storage_data TO 'huyunfei';
CREATE USER 'wanglijin' IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'ByFL4oPxtw+2XVigltem';
GRANT SELECT ON edata_data_warehouse.t_dwd_cold_storage_data TO 'wanglijin';
-
更改用户的密码
ALTER USER 'edata_data_rw' IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'pY740ka9bywqV686r/3y';
-
建表
CREATE TABLE IF NOT EXISTS edata_data_warehouse.t_ods_cold_storage_data
(
`time` DateTime COMMENT '采集时间, 秒级时间戳',
`mqtt_topic` Nullable(String) COMMENT '数据来源,对应的 MQTT topic',
`name` String COMMENT '点位名称',
`value` String COMMENT '点位值',
`msg_id` Nullable(String) COMMENT '消息 ID'
)
ENGINE = ReplacingMergeTree(`time`)
PARTITION BY toDate(`time`)
ORDER BY (`time`, `name`)
SETTINGS index_granularity = 8192
COMMENT 'edata_data_warehouse层中的冷库信息表';
-
查看当前用户的权限
SHOW GRANTS FOR 'huyunfei';
-
安装nacos
-
docker拉取nacos镜像
docker pull nacos/nacos-server:v2.2.0
-
创建映射容器的文件目录
mkdir -p /home/nacos/{/conf,/logs}
chmod 777 /home/nacos/logs
chmod 777 /home/nacos/conf
-
创建application.properties文件并放入/home/nacos/conf/中
注意:把配置db数据源、账号、密码修改为自己的
### Default web context path:
server.servlet.contextPath=/nacos
### Include message field
server.error.include-message=ON_PARAM
### Default web server port:
server.port=8848
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:11
db.url.0=jdbc:mysql://8.140.253.200:3306/nacos_config?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
db.user.0=nacos_config
db.password.0=TiIZW5IieuUgyBTf
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000
management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200
### Metrics for influx
management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
#*************** Access Log Related Configurations ***************#
### If turn on the access log:
server.tomcat.accesslog.enabled=true
### The access log pattern:
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
### The directory of access log:
server.tomcat.basedir=file:.
#*************** Access Control Related Configurations ***************#
### If enable spring security, this option is deprecated in 1.2.0:
#spring.security.enabled=false
### The ignore urls of auth, is deprecated in 1.2.0:
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=false
nacos.core.auth.caching.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
nacos.istio.mcp.server.enabled=false
暂时无法在飞书文档外展示此内容
-
初始化数据库nacos_config
在nacos的安装文件夹conf目下,找到nacos-mysql.sql脚本,然后在对应的数据库以下的sql,进行数据库初始化。脚本内容如下,不需要任何修改,直接复制粘贴运行就可以了。
暂时无法在飞书文档外展示此内容
CREATE TABLE `config_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) DEFAULT NULL,
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`c_desc` varchar(256) DEFAULT NULL,
`c_use` varchar(64) DEFAULT NULL,
`effect` varchar(64) DEFAULT NULL,
`type` varchar(64) DEFAULT NULL,
`c_schema` text,
`encrypted_data_key` text NOT NULL COMMENT '秘钥',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
CREATE TABLE `config_info_aggr` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) NOT NULL COMMENT 'group_id',
`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
`content` longtext NOT NULL COMMENT '内容',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';
CREATE TABLE `config_info_beta` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`encrypted_data_key` text NOT NULL COMMENT '秘钥',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
CREATE TABLE `config_info_tag` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
CREATE TABLE `config_tags_relation` (
`id` bigint(20) NOT NULL COMMENT 'id',
`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`nid` bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`nid`),
UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
CREATE TABLE `group_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
CREATE TABLE `his_config_info` (
`id` bigint(20) unsigned NOT NULL,
`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`data_id` varchar(255) NOT NULL,
`group_id` varchar(128) NOT NULL,
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL,
`md5` varchar(32) DEFAULT NULL,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`src_user` text,
`src_ip` varchar(50) DEFAULT NULL,
`op_type` char(10) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`encrypted_data_key` text NOT NULL COMMENT '秘钥',
PRIMARY KEY (`nid`),
KEY `idx_gmt_create` (`gmt_create`),
KEY `idx_gmt_modified` (`gmt_modified`),
KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
CREATE TABLE `tenant_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
CREATE TABLE `tenant_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`kp` varchar(128) NOT NULL COMMENT 'kp',
`tenant_id` varchar(128) default '' COMMENT 'tenant_id',
`tenant_name` varchar(128) default '' COMMENT 'tenant_name',
`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
CREATE TABLE `users` (
`username` varchar(50) NOT NULL PRIMARY KEY,
`password` varchar(500) NOT NULL,
`enabled` boolean NOT NULL
);
CREATE TABLE `roles` (
`username` varchar(50) NOT NULL,
`role` varchar(50) NOT NULL,
UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);
CREATE TABLE `permissions` (
`role` varchar(50) NOT NULL,
`resource` varchar(255) NOT NULL,
`action` varchar(8) NOT NULL,
UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
-
创建容器
docker run --name nacos -p 8848:8848 -p 7848:7848 -p 9848:9848 -p 9849:9849 --privileged=true --restart=always -e MODE=standalone -v /home/nacos/logs:/home/nacos/logs -v /home/nacos/conf/application.properties:/home/nacos/conf/application.properties -d nacos/nacos-server:v2.2.0
访问地址:ip:8848 nacos/nacos #自行修改
-
nacos容器里面操作
release.zip
docker cp release.zip nacos:/home/nacos
docker exec -it nacos sh
yum -y install zip
-
部署emqx集群
-
拉取镜像
docker pull emqx/emqx:5.6.0
-
运行镜像
docker run -itd --network host --name emqx-tianqi \
-p 1883:1883 \
-p 18083:18083 \
-p 8083:8083 \
-p 8883:8883 \
-p 8080:8080 \
-e EMQX_NAME="master1" \
-e EMQX_HOST=8.140.253.200 \
-e EMQX_LISTENER__TCP_EXTERNAL=1883 \
-e EMQX_WAIT_TIME=30 \
-e EMQX_CLUSTER__DISCOVERY="static" \
-e EMQX_JOIN_CLUSTER="master1@8.140.253.200" \
--restart=always \
8.141.94.237:5000/qingxi/emqx:5.6.0
-
emqx集群性能调优
EMQX官网调优参数地址:
sysctl -w fs.file-max=2097152
sysctl -w fs.nr_open=2097152
echo 2097152 > /proc/sys/fs/nr_open
ulimit -n 1048576
sysctl -w net.core.somaxconn=32768
sysctl -w net.ipv4.tcp_max_syn_backlog=16384
sysctl -w net.core.netdev_max_backlog=16384
sysctl -w net.ipv4.ip_local_port_range='1000 65535'
sysctl -w net.core.rmem_default=262144
sysctl -w net.core.wmem_default=262144
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.core.optmem_max=16777216
sysctl -w net.ipv4.tcp_rmem='1024 4096 16777216'
sysctl -w net.ipv4.tcp_wmem='1024 4096 16777216'
sysctl -w net.netfilter.nf_conntrack_max=1000000
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
sysctl -w net.ipv4.tcp_max_tw_buckets=1048576
sysctl -w net.ipv4.tcp_fin_timeout=15
访问:IP:18083 admin/public #自行修改
-
安装MongoDB副本集
-
创建文件
-
创建配置文件保存目录和数据保存目录
mkdir -p /home/mongodb/{/data,/conf,/logs}
cd /home/mongodb/
chmod 777 data/
chmod 777 conf/
chmod 777 logs/
-
配置文件
注意:我们的配置文件目录分别是 /home/mongodb/conf目录下面创建 mongod.conf配置文件
vim /home/mongodb/conf/mongod.conf
docker pull 8.141.94.237:5000/qingxi/mongo:4.4.29
# 数据
storage:
dbPath: /data/db
journal:
enabled: true
# 日志
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# 端口
net:
port: 27017
# bindIp: 127.0.0.1
# 安全
security:
authorization: enabled
特别强调这个问题,容器是不能访问宿主机的。所以配置文件里面配置的路径,一定要写容器对应的路径,千万不能写宿主机上的路径。因为容器是不能访问宿主机的,切记!!!切记!!!
-
创建启动命令
首先不要增加任何认证,先启动不用认证的mongodb,在里面将需要的集合、副本和用户名密码权限等信息创建好,在使用需要认证的命令重新创建容器。因为配置的信息已经映射到宿主机上了,只要不把宿主机上的数据删除,所有配置都是存在的。
- 不用认证的命令
docker run -p 27017:27017 \
--name mongo \
-v /home/mongodb/data:/data/db \
-v /home/mongodb/conf:/data/configdb \
-v /home/mongodb/logs:/var/log/mongodb \
--privileged \
--restart=always \
-d 8.141.94.237:5000/qingxi/mongo:4.4.29 \
--replSet "rs"
docker run --name mongo -d \
-p 27017:27017 \
-v /home/mongodb/data:/data/db \
-v /home/mongodb/conf:/data/configdb \
-v /home/mongodb/logs:/var/log/mongodb \
-e MONGO_INITDB_ROOT_USERNAME="root" \
-e MONGO_INITDB_ROOT_PASSWORD="9PgPyYEucOE6S/uxX4" \
--privileged \
--restart=always \
8.141.94.237:5000/qingxi/mongo:4.4.29 \
--config /data/configdb/mongod.conf
使用 docker ps查询是否全部启动成功。
-
配置副本
- 连接任意一个节点,进行副本集配置
docker exec -it mogno /bin/bash
## 连接三个节点中的任意一个,链接这个就是主节点。
mongo --host 192.168.18.175 --port 27017
或者
docker exec -it mongo mongo admin
- 配置副本
这里在一个
mongodb里面配置就行了,会自动同步到其他mognodb中的。
var config={
_id:"rs",
members:[
{_id:0,host:"8.140.253.200:27017",priority:1}
]};
rs.initiate(config)
var config={
_id:"rs",
members:[
{_id:0,host:"192.168.18.237:27017",priority:1}
]};
rs.initiate(config)
这样副本就配置完成了,但是当前是不需要认证的。在线上环境我们需要用户名和密码认证。
- 查看副本集配置信息
rs.conf()
- 查看副本集状态
rs.status()
-
创建用户名和密码
##进入容器##
docker exec -it mongo mongo admin
db.createUser({ user:'admin',pwd:'cJTg6Fbat/K/F8Dh',roles:[ { role:'root', db: 'admin'}]});
db.createUser({ user:'admin',pwd:'mKQebx0lc/yhfK+0',roles:[ { role:'root', db: 'admin'}]});
db.createUser({
user: "suanfa",
pwd: "vwS3GKC/uHy8Uexp",
roles: [
{ role: "dbAdmin", db: "celery" },
{ role: "readWrite", db: "celery" }
]
})
db.createUser({
user: "zhangyujie",
pwd: "NpIlrC/Cuuh838ys",
roles: [{ role: "readWrite", db: "xq" }]
})
use <database_name>
db.createUser({
user: "<username>",
pwd: "<password>",
roles: [{ role: "readWrite", db: "<database_name>" }]
})
# 创建一个新的只读角色,您可以使用MongoDB内置的read角色,或者创建一个自定义的角色。以下是使用内置read角色的示例:
db.createRole({
role: "read",
db: "xq",
privileges: [
{ resource: { db: "xq", collection: "" }, actions: [ "find", "listCollections" ] }
],
roles: []
})
# 创建一个新的只读用户,并将刚才创建的只读角色分配给这个用户。
db.createUser({
user: "wanglijin",
pwd: "gV+L+aBCWrHGv6P7",
roles: [
{ role: "read", db: "xq" }
]
})
# 列出所有用户
db.getUsers().forEach(user => printjson(user));
-
修改用户的权限
db.grantRolesToUser(
"existingUserName", // 替换为您的用户名
[{ role: "read", db: "xq" }]
)
db.grantRolesToUser(
"wanglijin",
[{ role: "read", db: "xq" }]
)
# 登录admin账户
db.auth("admin", "mKQebx0lc/yhfK+0")
db.auth("suanfa", "vwS3GKC/uHy8Uexp")
# 修改suanfa用户权限
db.updateUser(
"suanfa",
{
roles: [
{ role: "readWrite", db: "admin" },
{ role: "dbAdmin", db: "admin" }
]
}
)
-
撤销用户的权限
db.revokeRolesFromUser("wanglijin", [{ role: "readWrite", db: "xq" }])
db.revokeRolesFromUser("suanfa", [{ role: "readWrite", db: "admin" }])
db.revokeRolesFromUser("suanfa", [{ role: "dbAdmin", db: "admin" }])
-
删除用户
db.dropUser("wangyu")
-
安装nginx
vim /etc/yum.repos.d/nginx.repo
#
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
yum clean all
yum makecache
yum install nginx -y
setenforce 0
systemctl start nginx
-
docker 安装kafka、zookeeper
-
下载镜像
cmak是kafka集群可视化管理页面
docker pull 8.141.94.237:5000/qingxi/zookeeper:3.7.1
docker pull 8.141.94.237:5000/qingxi/kafka:2.8.1
docker pull vimagick/cmak
-
安装zookeeper
docker pull zookeeper:3.7.1
第一步:创建zookeeper数据持久化目录
mkdir -p /home/zookeeper/data/
第二步:赋予目录权限
chmod 755 /home/zookeeper/data/
第三步:启动镜像
docker run -d --name zookeeper \
--restart=always \
-p 2181:2181 -p 2888:2888 -p 3888:3888 \
-e ALLOW_ANONYMOUS_LOGIN=yes -e TZ='Asia/Shanghai' \
-v /home/zookeeper/data:/data \
8.141.94.237:5000/qingxi/zookeeper:3.7.1
docker run -d --name zookeeper-1 \
--restart=always \
-p 2182:2181 \
-e ALLOW_ANONYMOUS_LOGIN=yes -e TZ='Asia/Shanghai' \
-v /home/zookeeper/data:/data \
8.141.94.237:5000/qingxi/zookeeper:3.7.1
查看CMAK容器日志(可省略)
docker logs -f kafka-manager
-
docker 搭建 flink
-
选择合适的 flink 版本
# 拉取镜像
docker pull 8.141.94.237:5000/qingxi/flink:1.19.1
# 创建映射目录
mkdir -p /home/flink
cd /home/flink
mkdir TaskManager JobManager
# 创建 docker 网络,方便 JobManager 和 TaskManager 内部访问
docker network create flink-network
-
建议先简单启动 flink 容器 JobManager、TaskManager 两个容器将配置文件复制出来方便挂载
# 创建 JobManager
docker run \
-itd \
--name=jobmanager \
--publish 18081:8081 \
--network flink-network \
--env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" -e TZ='Asia/Shanghai' \
--restart=always 8.141.94.237:5000/qingxi/flink:1.19.1 jobmanager
# 创建 TaskManager
docker run \
-itd \
--name=taskmanager \
--network flink-network \
--env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" -e TZ='Asia/Shanghai' \
--restart=always 8.141.94.237:5000/qingxi/flink:1.19.1 taskmanager
-
copy 配置文件
# jobmanager 容器
docker cp jobmanager:/opt/flink/conf /home/flink/JobManager/
# taskmanager 容器
docker cp taskmanager:/opt/flink/conf /home/flink/TaskManager/
-
重新创建 JobManager、TaskManager 容器并挂载配置文件
如果需要更改端口号,可以修改 JobManager/conf/flink-conf.yaml
修改 TaskManager/conf/flink-conf.yaml 容器任务槽为 5(有问题,配置挂载后自动变更为1)
-
启动容器挂载配置文件
# 启动 JobManager 容器,挂载 JobManager 配置文件目录
docker run -itd -v /home/flink/JobManager/conf/:/opt/flink/conf/ --name=jobmanager --publish 18081:8081 --env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" --network flink-network --restart=always 8.141.94.237:5000/qingxi/flink:1.19.1 jobmanager
# 启动 TaskManager 容器,挂载 TaskManager 配置文件目录
docker run -itd -v /home/flink/TaskManager/conf/:/opt/flink/conf/ --name=taskmanager --network flink-network --env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" --restart=always 8.141.94.237:5000/qingxi/flink:1.19.1 taskmanager
FLINK_PROPERTIES=“jobmanager.rpc.address: jobmanager” rpc 地址,必须设置,否则 jobmanager 和 taskmanager 的 rpc 地址都是随机生成,会连接不上,当然你也可以在直接修改配置文件 flink-conf.yaml
如下两个容器启动成功,可以看到 web 端口为 8081,taskmanager 启动一个
-
使用浏览器访问fink集群是否成功http://192.168.3.24:18081/
-
docker部署zabbix6.0
docker-compose.yaml
version: '3.3'
services:
zabbix-mysql-server:
image: mysql:8.0.32
container_name: zabbix_mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_DATABASE: zabbix
command:
--character-set-server=utf8mb4
--collation_server=utf8mb4_bin
--default-authentication-plugin=mysql_native_password
volumes:
- "/etc/localtime:/etc/localtime"
- "./mysql:/var/lib/mysql"
security_opt:
- seccomp:unconfined
ports:
- "3333:3306"
networks:
- monitor_net
restart: always
zabbix-server:
image: zabbix/zabbix-server-mysql:6.0-centos-latest
container_name: zabbix_server
environment:
DB_SERVER_HOST: zabbix-mysql-server
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
ports:
- "10051:10051"
depends_on:
- zabbix-mysql-server
links:
- zabbix-mysql-server
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- "./zabbix:/var/lib/zabbix"
networks:
- monitor_net
restart: always
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:6.0-centos-latest
container_name: zabbix_web
volumes:
- /etc/localtime:/etc/localtime
environment:
DB_SERVER_HOST: zabbix-mysql-server
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
PHP_TZ: Asia/Shanghai
ZBX_SERVER_HOST: zabbix-server
ports:
- 39011:8080
depends_on:
- zabbix-mysql-server
- zabbix-server
links:
- zabbix-mysql-server
- zabbix-server
networks:
- monitor_net
restart: always
networks:
monitor_net:
访问zabbix地址:8.140.253.200:39011 Admin/zabbix