From 0cd10a9352a8422a01c76ad1bb969c93b15e6907 Mon Sep 17 00:00:00 2001 From: houseme Date: Fri, 11 Apr 2025 21:44:23 +0800 Subject: [PATCH] upgrade protobuf download link and improve code for readme.md --- .docker/Dockerfile.devenv | 8 +++--- .docker/Dockerfile.rockylinux9.3 | 8 +++--- .docker/Dockerfile.ubuntu22.04 | 8 +++--- README.md | 46 ++++++++++++++++++++++--------- deploy/build/rustfs-zh.service | 9 +++--- deploy/build/rustfs.service | 5 ++-- deploy/config/.example.env | 2 +- deploy/config/obs-zh.example.toml | 2 +- deploy/config/obs.example.toml | 2 +- scripts/run.ps1 | 2 +- scripts/run.sh | 4 +-- 11 files changed, 59 insertions(+), 37 deletions(-) diff --git a/.docker/Dockerfile.devenv b/.docker/Dockerfile.devenv index de2fcb49..1e3916af 100644 --- a/.docker/Dockerfile.devenv +++ b/.docker/Dockerfile.devenv @@ -7,12 +7,12 @@ RUN sed -i s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g /etc/apt/ RUN apt-get clean && apt-get update && apt-get install wget git curl unzip gcc pkg-config libssl-dev lld libdbus-1-dev libwayland-dev libwebkit2gtk-4.1-dev libxdo-dev -y # install protoc -RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-linux-x86_64.zip \ - && unzip protoc-27.0-linux-x86_64.zip -d protoc3 \ - && mv protoc3/bin/* /usr/local/bin/ && chmod +x /usr/local/bin/protoc && mv protoc3/include/* /usr/local/include/ && rm -rf protoc-27.0-linux-x86_64.zip protoc3 +RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v30.2/protoc-30.2-linux-x86_64.zip \ + && unzip protoc-30.2-linux-x86_64.zip -d protoc3 \ + && mv protoc3/bin/* /usr/local/bin/ && chmod +x /usr/local/bin/protoc && mv protoc3/include/* /usr/local/include/ && rm -rf protoc-30.2-linux-x86_64.zip protoc3 # install flatc -RUN wget https://github.com/google/flatbuffers/releases/download/v24.3.25/Linux.flatc.binary.g++-13.zip \ +RUN wget https://github.com/google/flatbuffers/releases/download/v25.2.10/Linux.flatc.binary.g++-13.zip \ && unzip Linux.flatc.binary.g++-13.zip \ && mv flatc /usr/local/bin/ && chmod +x /usr/local/bin/flatc && rm -rf Linux.flatc.binary.g++-13.zip diff --git a/.docker/Dockerfile.rockylinux9.3 b/.docker/Dockerfile.rockylinux9.3 index 340b8419..eb3a25d7 100644 --- a/.docker/Dockerfile.rockylinux9.3 +++ b/.docker/Dockerfile.rockylinux9.3 @@ -13,13 +13,13 @@ RUN dnf makecache RUN yum install wget git unzip gcc openssl-devel pkgconf-pkg-config -y # install protoc -RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-linux-x86_64.zip \ - && unzip protoc-27.0-linux-x86_64.zip -d protoc3 \ +RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v30.2/protoc-30.2-linux-x86_64.zip \ + && unzip protoc-30.2-linux-x86_64.zip -d protoc3 \ && mv protoc3/bin/* /usr/local/bin/ && chmod +x /usr/local/bin/protoc \ - && rm -rf protoc-27.0-linux-x86_64.zip protoc3 + && rm -rf protoc-30.2-linux-x86_64.zip protoc3 # install flatc -RUN wget https://github.com/google/flatbuffers/releases/download/v24.3.25/Linux.flatc.binary.g++-13.zip \ +RUN wget https://github.com/google/flatbuffers/releases/download/v25.2.10/Linux.flatc.binary.g++-13.zip \ && unzip Linux.flatc.binary.g++-13.zip \ && mv flatc /usr/local/bin/ && chmod +x /usr/local/bin/flatc \ && rm -rf Linux.flatc.binary.g++-13.zip diff --git a/.docker/Dockerfile.ubuntu22.04 b/.docker/Dockerfile.ubuntu22.04 index b955de8e..e8f71520 100644 --- a/.docker/Dockerfile.ubuntu22.04 +++ b/.docker/Dockerfile.ubuntu22.04 @@ -7,12 +7,12 @@ RUN sed -i s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g /etc/apt/ RUN apt-get clean && apt-get update && apt-get install wget git curl unzip gcc pkg-config libssl-dev lld libdbus-1-dev libwayland-dev libwebkit2gtk-4.1-dev libxdo-dev -y # install protoc -RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-linux-x86_64.zip \ - && unzip protoc-27.0-linux-x86_64.zip -d protoc3 \ - && mv protoc3/bin/* /usr/local/bin/ && chmod +x /usr/local/bin/protoc && mv protoc3/include/* /usr/local/include/ && rm -rf protoc-27.0-linux-x86_64.zip protoc3 +RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v30.2/protoc-30.2-linux-x86_64.zip \ + && unzip protoc-30.2-linux-x86_64.zip -d protoc3 \ + && mv protoc3/bin/* /usr/local/bin/ && chmod +x /usr/local/bin/protoc && mv protoc3/include/* /usr/local/include/ && rm -rf protoc-30.2-linux-x86_64.zip protoc3 # install flatc -RUN wget https://github.com/google/flatbuffers/releases/download/v24.3.25/Linux.flatc.binary.g++-13.zip \ +RUN wget https://github.com/google/flatbuffers/releases/download/v25.2.10/Linux.flatc.binary.g++-13.zip \ && unzip Linux.flatc.binary.g++-13.zip \ && mv flatc /usr/local/bin/ && chmod +x /usr/local/bin/flatc && rm -rf Linux.flatc.binary.g++-13.zip diff --git a/README.md b/README.md index 9882ae92..a93f9105 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ # How to compile RustFS -| Must package | Version | -|--------------|---------| -| Rust | 1.8.5 | -| protoc | 27.0 | -| flatc | 24.0+ | +| Must package | Version | download link | +|--------------|---------|----------------------------------------------------------------------------------------------------------------------------------| +| Rust | 1.8.5 | https://www.rust-lang.org/tools/install | +| protoc | 30.2 | [protoc-30.2-linux-x86_64.zip](https://github.com/protocolbuffers/protobuf/releases/download/v30.2/protoc-30.2-linux-x86_64.zip) | +| flatc | 24.0+ | [Linux.flatc.binary.g++-13.zip](https://github.com/google/flatbuffers/releases/download/v25.2.10/Linux.flatc.binary.g++-13.zip) | Download Links: -https://github.com/google/flatbuffers/releases/download/v24.3.25/Linux.flatc.binary.g++-13.zip +https://github.com/google/flatbuffers/releases/download/v25.2.10/Linux.flatc.binary.g++-13.zip -https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-linux-x86_64.zip +https://github.com/protocolbuffers/protobuf/releases/download/v30.2/protoc-30.2-linux-x86_64.zip Or use Docker: @@ -24,8 +24,7 @@ Or use Docker: # How to add Console web -1. -wget [http://dl.rustfs.com/console/console.latest.tar.gz](https://dl.rustfs.com/artifacts/console/rustfs-console-latest.zip) +1. `wget https://dl.rustfs.com/artifacts/console/rustfs-console-latest.zip` 2. mkdir in this repos folder `./rustfs/static` @@ -36,12 +35,31 @@ wget [http://dl.rustfs.com/console/console.latest.tar.gz](https://dl.rustfs.com/ Add Env infomation: ``` -export RUST_LOG="rustfs=debug,ecstore=debug,s3s=debug,iam=debug" export RUSTFS_VOLUMES="./target/volume/test" export RUSTFS_ADDRESS="0.0.0.0:9000" export RUSTFS_CONSOLE_ENABLE=true export RUSTFS_CONSOLE_ADDRESS="0.0.0.0:9001" -export RUSTFS_OBS_CONFIG="config/obs.toml" +# 具体路径修改为配置文件真实路径,obs.example.toml 仅供参考 其中`RUSTFS_OBS_CONFIG` 和下面变量二选一 +export RUSTFS_OBS_CONFIG="./deploy/config/obs.example.toml" + +# 如下变量需要必须参数都有值才可以,以及会覆盖配置文件`obs.example.toml`中的值 +export RUSTFS__OBSERVABILITY__ENDPOINT=http://localhost:4317 +export RUSTFS__OBSERVABILITY__USE_STDOUT=true +export RUSTFS__OBSERVABILITY__SAMPLE_RATIO=2.0 +export RUSTFS__OBSERVABILITY__METER_INTERVAL=30 +export RUSTFS__OBSERVABILITY__SERVICE_NAME=rustfs +export RUSTFS__OBSERVABILITY__SERVICE_VERSION=0.1.0 +export RUSTFS__OBSERVABILITY__ENVIRONMENT=develop +export RUSTFS__OBSERVABILITY__LOGGER_LEVEL=info +export RUSTFS__SINKS__FILE__ENABLED=true +export RUSTFS__SINKS__FILE__PATH="./deploy/logs/rustfs.log" +export RUSTFS__SINKS__WEBHOOK__ENABLED=false +export RUSTFS__SINKS__WEBHOOK__ENDPOINT="" +export RUSTFS__SINKS__WEBHOOK__AUTH_TOKEN="" +export RUSTFS__SINKS__KAFKA__ENABLED=false +export RUSTFS__SINKS__KAFKA__BOOTSTRAP_SERVERS="" +export RUSTFS__SINKS__KAFKA__TOPIC="" +export RUSTFS__LOGGER__QUEUE_CAPACITY=10 ``` You need replace your real data folder: @@ -72,7 +90,7 @@ docker-compose -f docker-compose.yml up -d ## Create a new Observability configuration file -#### 1. Enter the `config` directory, +#### 1. Enter the `deploy/config` directory, #### 2. Copy `obs.toml.example` to `obs.toml` @@ -84,7 +102,7 @@ docker-compose -f docker-compose.yml up -d ##### 3.3. Modify the `service_version` value to the version of the service -##### 3.4. Modify the `deployment_environment` value to the environment of the service +##### 3.4. Modify the `environment` value to the environment of the service ##### 3.5. Modify the `meter_interval` value to export interval @@ -92,4 +110,6 @@ docker-compose -f docker-compose.yml up -d ##### 3.7. Modify the `use_stdout` value to export to stdout +##### 3.8. Modify the `logger_level` value to the logger level + diff --git a/deploy/build/rustfs-zh.service b/deploy/build/rustfs-zh.service index d5a540dd..a1cd0df0 100644 --- a/deploy/build/rustfs-zh.service +++ b/deploy/build/rustfs-zh.service @@ -29,10 +29,10 @@ WorkingDirectory=/opt/rustfs # 设置服务的工作目录为 /opt/rustfs,影响相对路径的解析。 # 定义环境变量配置,用于传递给服务程序。 -Environment=RUSTFS_ACCESS_KEY=minioadmin -# 设置访问密钥为 minioadmin,用于 RustFS 的认证。 -Environment=RUSTFS_SECRET_KEY=minioadmin -# 设置秘密密钥为 minioadmin,与访问密钥配套使用。 +Environment=RUSTFS_ACCESS_KEY=rustfsadmin +# 设置访问密钥为 rustfsadmin,用于 RustFS 的认证。 +Environment=RUSTFS_SECRET_KEY=rustfsadmin +# 设置秘密密钥为 rustfsadmin,与访问密钥配套使用。 ExecStart=/usr/local/bin/rustfs \ --address 0.0.0.0:9000 \ --volumes /data/rustfs/vol1,/data/rustfs/vol2 \ @@ -47,6 +47,7 @@ ExecStart=/usr/local/bin/rustfs \ # --console-address 0.0.0.0:9002:控制台监听所有接口的 9002 端口。 # 定义环境变量配置,用于传递给服务程序,推荐使用且简洁 +# rustfs 示例文件 详见: `../config/rustfs-zh.env` EnvironmentFile=-/etc/default/rustfs ExecStart=/usr/local/bin/rustfs $RUSTFS_VOLUMES $RUSTFS_OPTS diff --git a/deploy/build/rustfs.service b/deploy/build/rustfs.service index db5b4b95..df6e4067 100644 --- a/deploy/build/rustfs.service +++ b/deploy/build/rustfs.service @@ -17,8 +17,8 @@ Group=rustfs WorkingDirectory=/opt/rustfs # environment variable configuration and main program (Option 1: Directly specify arguments) -Environment=RUSTFS_ACCESS_KEY=minioadmin -Environment=RUSTFS_SECRET_KEY=minioadmin +Environment=RUSTFS_ACCESS_KEY=rustfsadmin +Environment=RUSTFS_SECRET_KEY=rustfsadmin ExecStart=/usr/local/bin/rustfs \ --address 0.0.0.0:9000 \ --volumes /data/rustfs/vol1,/data/rustfs/vol2 \ @@ -27,6 +27,7 @@ ExecStart=/usr/local/bin/rustfs \ --console-address 0.0.0.0:9002 # environment variable configuration (Option 2: Use environment variables) +# rustfs example file see: `../config/rustfs.env` EnvironmentFile=-/etc/default/rustfs ExecStart=/usr/local/bin/rustfs $RUSTFS_VOLUMES $RUSTFS_OPTS diff --git a/deploy/config/.example.env b/deploy/config/.example.env index 9db2f211..a1ea67b4 100644 --- a/deploy/config/.example.env +++ b/deploy/config/.example.env @@ -20,7 +20,7 @@ SINKS__WEBHOOK__BATCH_SIZE=100 SINKS__WEBHOOK__BATCH_TIMEOUT_MS=1000 SINKS__FILE__ENABLED=true -SINKS__FILE__PATH=./deploy/logs/app.log +SINKS__FILE__PATH=./deploy/logs/rustfs.log SINKS__FILE__BATCH_SIZE=10 SINKS__FILE__BATCH_TIMEOUT_MS=1000 diff --git a/deploy/config/obs-zh.example.toml b/deploy/config/obs-zh.example.toml index c3cbe8f6..2bf4260f 100644 --- a/deploy/config/obs-zh.example.toml +++ b/deploy/config/obs-zh.example.toml @@ -25,7 +25,7 @@ batch_timeout_ms = 1000 # 批处理超时时间,单位为毫秒 [sinks.file] # 文件接收器配置 enabled = true # 是否启用文件接收器 -path = "/Users/qun/Documents/rust/rustfs/s3-rustfs/logs/app.log" # 日志文件路径 +path = "./deploy/logs/rustfs.log" # 日志文件路径 batch_size = 10 # 批处理大小 batch_timeout_ms = 1000 # 批处理超时时间,单位为毫秒 diff --git a/deploy/config/obs.example.toml b/deploy/config/obs.example.toml index e74c01c6..a3c3d096 100644 --- a/deploy/config/obs.example.toml +++ b/deploy/config/obs.example.toml @@ -25,7 +25,7 @@ batch_timeout_ms = 1000 # Default is 100ms if not specified [sinks.file] enabled = true -path = "./deploy/logs/app.log" +path = "./deploy/logs/rustfs.log" batch_size = 100 batch_timeout_ms = 1000 # Default is 8192 bytes if not specified diff --git a/scripts/run.ps1 b/scripts/run.ps1 index a6ab92fb..845ed020 100644 --- a/scripts/run.ps1 +++ b/scripts/run.ps1 @@ -40,7 +40,7 @@ $env:RUSTFS_CONSOLE_ENABLE = "true" $env:RUSTFS_CONSOLE_ADDRESS = "127.0.0.1:9002" # $env:RUSTFS_SERVER_DOMAINS = "localhost:9000" # Change to the actual configuration file path, obs.example.toml is for reference only -$env:RUSTFS_OBS_CONFIG = ".\config\obs.example.toml" +$env:RUSTFS_OBS_CONFIG = ".\deploy\config\obs.example.toml" # Check command line arguments if ($args.Count -gt 0) { diff --git a/scripts/run.sh b/scripts/run.sh index 538c8652..b2cb5c80 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -37,7 +37,7 @@ export RUSTFS_CONSOLE_ADDRESS="0.0.0.0:9002" export RUSTFS_OBS_CONFIG="./deploy/config/obs.example.toml" # 如下变量需要必须参数都有值才可以,以及会覆盖配置文件中的值 -export RUSTFS__OBSERVABILITY__ENDPOINT=http://localhost:43178 +export RUSTFS__OBSERVABILITY__ENDPOINT=http://localhost:4317 export RUSTFS__OBSERVABILITY__USE_STDOUT=true export RUSTFS__OBSERVABILITY__SAMPLE_RATIO=2.0 export RUSTFS__OBSERVABILITY__METER_INTERVAL=30 @@ -46,7 +46,7 @@ export RUSTFS__OBSERVABILITY__SERVICE_VERSION=0.1.0 export RUSTFS__OBSERVABILITY__ENVIRONMENT=develop export RUSTFS__OBSERVABILITY__LOGGER_LEVEL=info export RUSTFS__SINKS__FILE__ENABLED=true -export RUSTFS__SINKS__FILE__PATH="./deploy/logs/app.log" +export RUSTFS__SINKS__FILE__PATH="./deploy/logs/rustfs.log" export RUSTFS__SINKS__WEBHOOK__ENABLED=false export RUSTFS__SINKS__WEBHOOK__ENDPOINT="" export RUSTFS__SINKS__WEBHOOK__AUTH_TOKEN=""