我用这个配置把云平台搭建起来了

[复制链接]
查看692 | 回复11 | 2024-3-18 10:04:31 | 显示全部楼层 |阅读模式
今天给为云平台准备了一台虚拟机,配置很低的那种


服务器配置(建议Centos、Ubuntu)
爱星物联云平台采用Golang开发,系统本身对于环境要求不高。主要是基础环境的要求。 可以参考第三方工具系统运行所需要的内存、CPU 和硬盘空间。
CPU2核4线程
内存 4G
硬盘 50GB

Snipaste_2024-03-18_06-51-17.png


第三方工具包括如下:

  • 数据库服务器:Clickhouse、MySQL、Redis
  • 设备服务器:VerneMQ
  • 应用服务器:Nginx、Zipkin、Etcd、Nats、XXL-JOB、Zipkin、haproxy


我这边是直接部署的访问,这种方式资源最为节约,就是部署起来麻烦一点,需要一个个的服务区部署,如果觉得麻烦的朋友你们可以使用docker部署,拿到代码目录的docker-compose编排脚本运行即可;这里我就老老实实一步步的安装吧

安装JDK
  1. #下载JDK
  2. wget https://osspublic.aithinker.com/soft/jdk-8u291-linux-x64.tar.gz
  3. #解压
  4. tar -zxvf jdk-8u291-linux-x64.tar.gz
  5. mv jdk-1.8.0_291/ /usr/local/
  6. #配置环境变量
  7. vi /etc/profile
  8. export JAVA_HOME=/usr/local/jdk1.8.0_291/
  9. export PATH=$PATH:$JAVA_HOME/bin
  10. #刷新环境变量:
  11. source /etc/profiles
  12. #查看版本号
  13. java -version
复制代码

安装OpenSSL
  1. # 下载Openssl
  2. wget https://www.openssl.org/source/openssl-3.0.1.tar.gz

  3. # 解压openssl
  4. tar -zxvf openssl-3.0.1.tar.gz

  5. # 进入解压后的文件目录,切记一定要进入该目录才能继续执行后续命令
  6. cd openssl-3.0.1

  7. # 其中--prefix是指定安装目录的,shared zlib库是在安装时寻找zlib库依赖的
  8. # 配置(configure)
  9. ./Configure --prefix=/usr/local/openssl

  10. 如果报错可以执行:
  11. yum -y install perl-IPC-Cmd

  12. # 编译
  13. make

  14. # 安装
  15. make install

  16. # 查看openssl版本
  17. openssl version
复制代码

安装Nginx
  1. # 下载
  2. wget https://nginx.org/download/nginx-1.23.2.tar.gz

  3. # 解压
  4. tar -zxvf nginx-1.23.2.tar.gz

  5. # 配置文件
  6. vi conf/nginx.conf
复制代码

Nats
将代码目录执行文件复制到/opt/nats目录下,执行./nats-server -c ./js.conf命令即可;通用你可以去https://github.com/nats-io下载最新版本的nats-server版本。
  1. nohup ./nats-server -c ./js.conf &
复制代码

VerneMQ
代码仓库提供centos7.9的编译版本,如果需要其它版本可以在官方进行获取;我这边是使用的是平台提供的版本,复制到/opt/vernemq目录,使用以下命令运行
  1. /opt/vernemq/bin/vernemq start
复制代码

haproxy
平台使用haproxy提供高可用性、负载均衡以及基于 TCP 和 HTTP的应用程序代理。
对centos系统的软件进行一些更新或者升级,从而在进行安装的时候可以很快的找到安装包。
  1. sudo yum install epel-release -ysudo yum update -y 
复制代码
安装HAProxy
  1. sudo yum install haproxy -y
复制代码
检查安装
  1. yum info haproxy
复制代码
安装完成为了能够让服务在启动时生效,配置HAProxy服务在重启或者启动时运行。
  1. chkconfig haproxy on
复制代码
最后通过以下命令启动HAProxy服务。
  1. systemctl start haproxy && systemctl status haproxy
复制代码

XXL-JOB
平台使用第三方分布式任务调度服务,生成日、月、年统计数据;
  1. # 复制jar包到服务器,执行以下命令
  2. nohup java -jar xxl-job-admin-2.3.1-8081.jar &
复制代码

Zipkin
  1. Zipkin 服务端部署非常简单,可以通过官网快速上手。
  2. https://zipkin.io/pages/quickstart.html
  3. # 下载 Zipkin 最新 Jar 包
  4. user@user-PC:/data$ curl -sSL https://zipkin.io/quickstart.sh | bash -s
  5. Thank you for trying Zipkin!
  6. This installer is provided as a quick-start helper, so you can try Zipkin out
  7. without a lengthy installation process.

  8. Fetching version number of latest io.zipkin:zipkin-server release...
  9. Latest release of io.zipkin:zipkin-server seems to be 2.23.2

  10. Downloading io.zipkin:zipkin-server:2.23.2:exec to zipkin.jar...
  11. > curl -fL -o 'zipkin.jar' 'https://repo1.maven.org/maven2/io/zipkin/zipkin-server/2.23.2/zipkin-server-2.23.2-exec.jar'
  12.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  13.                                  Dload  Upload   Total   Spent    Left  Speed
  14. 100 59.0M  100 59.0M    0     0  7252k      0  0:00:08  0:00:08 --:--:-- 9600k

  15. Verifying checksum...
  16. > curl -fL -o 'zipkin.jar.md5' 'https://repo1.maven.org/maven2/io/zipkin/zipkin-server/2.23.2/zipkin-server-2.23.2-exec.jar.md5'
  17.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  18.                                  Dload  Upload   Total   Spent    Left  Speed
  19. 100    32  100    32    0     0     51      0 --:--:-- --:--:-- --:--:--    51
  20. > md5sum -c <<< "$(cat zipkin.jar.md5)  zipkin.jar"
  21. zipkin.jar: 成功
  22. Checksum for zipkin.jar passes verification

  23. Verifying GPG signature of zipkin.jar...
  24. > curl -fL -o 'zipkin.jar.asc' 'https://repo1.maven.org/maven2/io/zipkin/zipkin-server/2.23.2/zipkin-server-2.23.2-exec.jar.asc'
  25.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  26.                                  Dload  Upload   Total   Spent    Left  Speed
  27. 100   833  100   833    0     0   1047      0 --:--:-- --:--:-- --:--:--  1046

  28. GPG signing key is not known, skipping signature verification.
  29. Use the following commands to manually verify the signature of zipkin.jar:

  30.     gpg --keyserver keyserver.ubuntu.com --recv FF31B515
  31.     # Optionally trust the key via 'gpg --edit-key FF31B515', then typing 'trust',
  32.     # choosing a trust level, and exiting the interactive GPG session by 'quit'
  33.     gpg --verify zipkin.jar.asc zipkin.jar


  34. You can now run the downloaded executable jar:

  35.     java -jar zipkin.jar

  36. # 启动
  37. user@user-PC:/data$ java -jar zipkin.jar

  38.                   oo
  39.                  oooo
  40.                 oooooo
  41.                oooooooo
  42.               oooooooooo
  43.              oooooooooooo
  44.            ooooooo  ooooooo
  45.           oooooo     ooooooo
  46.          oooooo       ooooooo
  47.         oooooo   o  o   oooooo
  48.        oooooo   oo  oo   oooooo
  49.      ooooooo  oooo  oooo  ooooooo
  50.     oooooo   ooooo  ooooo  ooooooo
  51.    oooooo   oooooo  oooooo  ooooooo
  52.   oooooooo      oo  oo      oooooooo
  53.   ooooooooooooo oo  oo ooooooooooooo
  54.       oooooooooooo  oooooooooooo
  55.           oooooooo  oooooooo
  56.               oooo  oooo

  57.      ________ ____  _  _____ _   _
  58.     |__  /_ _|  _ \| |/ /_ _| \ | |
  59.       / / | || |_) | ' / | ||  \| |
  60.      / /_ | ||  __/| . \ | || |\  |
  61.     |____|___|_|   |_|\_\___|_| \_|

  62. :: version 2.23.2 :: commit 7bf3aab ::

  63. 2021-08-08 10:40:11.408  INFO [/] 3853 --- [oss-http-*:9411] c.l.a.s.Server

  64. 因为 Zipkin 完全是基于 Java 开发的,在安装好 Java 环境后,只需要使用 Curl 命令下载 Zipkin 最新 Jar 包,并利用 Java 命令启动执行即可。

  65. 这里有一点需要注意,默认 Zipkin 监听本机 9411 端口,如果是网络远程访问,请在系统防火墙放行 9411 端口,否则无法通信。
  66. 启动成功后,访问 Zipkin 后台。
  67. http://localhost:9411/zipkin/

复制代码

Etcd
  1. # 复制etcd运行程序复制到服务器,执行以下命令
  2. ./etcd --config-file=./etcd.conf
复制代码

安装MySQL
  1. centos7及以上版本,默认安装了MariaDB,所以需要先卸载mariaDb。

  2. 1.卸载mMiraDB
  3. yum list installed | grep mariadb  #查询已安装mariadb
  4. yum -y remove mariadb*  #移除已安装的mairadb

  5. 2.下载RPM
  6. cd  /usr/local   #进入到/usr/local的目录下
  7. mkdir mysql  #创建一个mysql目录
  8. cd mysql  #进入到mysql目录下
  9. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm  #下载RPM包

  10. 3.安装RPM包,并确认yum源
  11. rpm -ivh mysql57-community-release-el7-11.noarch.rpm

  12. 4.查看mysql版本
  13. yum repolist all | grep mysql

  14. 5.升级mysqlGPG
  15. rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

  16. 6.安装mysql
  17. yum install mysql-community-server

  18. 7.启动mysql
  19. systemctl start mysqld

  20. 8.查看初始密码
  21. cat /var/log/mysqld.log  | grep temporary  #查看临时密码
  22. mysql密码一般都保存在/var/log/mysqld.log的文件中

  23. mysql -u root -p  #输入密码,登录mysql

  24. 9.修改默认密码
  25. mysql5.7开始密码不能太过简单,否则修改不成功,所以需要全局配置
  26. ###########更改密码策略,降低密码的验证标准
  27. mysql> set global validate_password_policy=LOW;  #更改密码策略
  28. mysql> set global validate_password_length=0;  #更改密码长度

  29. #修改密码
  30. mysql> ALTER USER USER() IDENTIFIED BY 'qwer1234';  #qwer1234为密码

  31. flush privileges; #重新加载权限表; 更新权限

  32. 10.配置远程访问
  33. #登录mysql
  34. use mysql;  #选择数据库
  35. update user set host='%' where user='root';  #允许机器远程连接
  36. flush privileges; #重新加载权限表; 更新权限
复制代码

安装Clickhouse
  1. curl -O https://repo.clickhouse.com/tgz/stable/clickhouse-common-static-22.2.3.5.tgz
  2. curl -O https://repo.clickhouse.com/tgz/stable/clickhouse-common-static-dbg-22.2.3.5.tgz
  3. curl -O https://repo.clickhouse.com/tgz/stable/clickhouse-server-22.2.3.5.tgz
  4. curl -O https://repo.clickhouse.com/tgz/stable/clickhouse-client-22.2.3.5.tgz

  5. tar -xzvf clickhouse-common-static-22.2.3.5.tgz
  6. sudo clickhouse-common-static-22.2.3.5/install/doinst.sh

  7. tar -xzvf clickhouse-common-static-dbg-22.2.3.5.tgz
  8. sudo clickhouse-common-static-dbg-22.2.3.5/install/doinst.sh

  9. tar -xzvf clickhouse-server-22.2.3.5.tgz
  10. sudo clickhouse-server-22.2.3.5/install/doinst.sh
  11. #sudo /etc/init.d/clickhouse-server start
  12. sudo clickhouse restar

  13. tar -xzvf clickhouse-client-22.2.3.5.tgz
  14. sudo clickhouse-client-22.2.3.5/install/doinst.sh

  15. 对于生产环境,建议使用最新的stable版本。你可以在GitHub页面,目前最新的是 22.2.3.5
  16. https://github.com/ClickHouse/ClickHouse/tags找到它,它以后缀-stable标志。

  17. 导入初始化脚本
复制代码

安装Redis
  1. 下载源码包:
  2. https://redis.io/download
  3. 上传离线压缩包或者下载到公共目录:
  4. /usr/local/redis/

  5. 安装依赖
  6. yum install gcc

  7. # 解压&安装
  8. cd /usr/local/redis/
  9. wget https://download.redis.io/releases/redis-6.2.6.tar.gz
  10. tar -zxvf redis-6.2.6.tar.gz
  11. #创建软连接
  12. cd redis
  13. make # 编译文件,编译后的文件在当前路径src目录下

  14. make如果失败,则需要通过此命令编译
  15. 使用以下命令编译
  16. make MALLOC=libc

  17. 安装完,可以直接在启动src路径下启动服务./redis-server,可以看到默认端口是6579置文件是redis.conf;直接运行退出会话后服务就关闭了,这不符合要求,改成后台运行;

  18. # 新的配置文件(配置监听不同端口,redis支持单机多开)
  19. cp redis.conf redis_6379.conf
  20. vim redis_6379.conf

  21. port 6379
  22. daemonize yes # 以守护进程的方式运行

  23. # 日志文件
  24. logfile "/var/log/redis/redis_6379.log"
  25. # pid文件
  26. pidfile /var/run/redis_6379.pid
  27. # RDB持久化文件
  28. dbfilename dump_6379.rdb
  29. # AOF快照文件
  30. appendfilename "appendonly_6379.aof"

  31. 远程访问
  32. # redis监听的网卡ip地址(设置 127.0.0.1 仅本机访问;设置为 0.0.0.0 或注释掉,表示监听所有接口;指定多个ip时用空格隔开)这里理解可能会有误区,bind指定的ip并非远端调用者ip,而是本机的网卡对应的ip地址,一个主机可以有多个网卡,使用 ifconfig 查看;
  33. bind 127.0.0.1 # 实际操作中防火墙策略开放端口
  34. # 将protected-mode模式修改为no(yes只允许本地访问)
  35. protected-mode no
  36. # 设置需要密码才能访问,123456为示例,请改为强密码
  37. requirepass 123456
  38. # 线上为了安全和方便,一般做法是防火墙配置端口白名单;

  39. 启动redis
  40. ./redis-server &

复制代码






关于代码仓库的deploy里面有各个第三方服务的配置文件,大家拿到源代码之后可以参考配置文件

部署应用服务
将代码目录的bin目录中的服务复制到服务器的部署目录,我这里是放到/opt/hogan,如果需要自行编译的可以使用代码目录/bin下的build_linux.bat脚本进行编译;编译之后将以下运行文件copy到你的服务器;

  • iot_app_api_service
  • iot_app_oem_service
  • iot_app_user_service
  • iot_basic_service
  • iot_cloud_api_service
  • iot_device_service
  • iot_intelligence_service
  • iot_log_service
  • iot_message_service
  • iot_open_system_service
  • iot_product_service
  • iot_smart_speaker_service
  • iot_statistics_service
  • iot_system_service
  • iot_weather_service
  • iot_mqtt_service
  • iot_mqtt_data_service


bin目录中还有一个conf目录、shell脚本都一并copy到/opt/hogan目录,conf目录的.env设置你的环境名称,与配置文件目录名称对应,最后检查以下配置文件里面的地址参数、数据库密码等参数;

设置shell脚本的权限
  1. cd /opt/hogan
  2. chmod a+x *.sh
复制代码

运行所有服务
  1. ./chkrestart.sh
复制代码

看到所有服务器都已经正常启动了
Snipaste_2024-03-18_07-30-15.png

访问开放平台和云管平台
云管平台:http://{ip}:2888
开放平台:http://{ip}:2887
APP接口:http://{ip}:2886




回复

使用道具 举报

1084504793 | 2024-3-18 11:09:44 | 显示全部楼层
回复

使用道具 举报

1055173307 | 2024-3-18 11:33:58 | 显示全部楼层
回复

使用道具 举报

干簧管 | 2024-3-18 20:49:08 | 显示全部楼层
回复

使用道具 举报

WT_0213 | 2024-3-18 23:54:01 | 显示全部楼层
回复

使用道具 举报

1055173307 | 2024-3-19 09:12:52 | 显示全部楼层
学习打卡
回复

使用道具 举报

wukong50 | 2024-3-20 15:34:13 | 显示全部楼层
回复

使用道具 举报

7788 | 2024-3-20 20:17:36 | 显示全部楼层
回复

使用道具 举报

知行合一 | 2024-3-20 21:10:31 | 显示全部楼层
赞一下
回复

使用道具 举报

物联网 | 2024-3-20 21:26:57 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则