From 342cb066d0c2f589f82ec6ef4116d3b5c5f1ead2 Mon Sep 17 00:00:00 2001 From: chrislusf Date: Sun, 13 Jul 2025 20:30:23 -0700 Subject: [PATCH] Update Admin-UI.md --- Admin-UI.md | 295 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 286 insertions(+), 9 deletions(-) diff --git a/Admin-UI.md b/Admin-UI.md index f113925..c29ca28 100644 --- a/Admin-UI.md +++ b/Admin-UI.md @@ -12,7 +12,6 @@ The admin interface provides a comprehensive web UI for managing SeaweedFS clust - **File browser and management** - **System metrics and performance monitoring** - **Configuration management** -- **Maintenance operations** The admin interface automatically discovers filers from the master servers and runs a gRPC server for worker connections on HTTP port + 10000. @@ -71,7 +70,7 @@ weed admin \ ## Data Directory -The data directory (`-dataDir`) is used to persist admin configuration and maintenance data: +The data directory (`-dataDir`) is used to persist admin configuration data: - **If specified**: Configuration and data are persisted to disk - **If not specified**: All configuration is kept in memory only @@ -114,7 +113,7 @@ ca = "/etc/ssl/ca.crt" # optional, for mutual TLS The admin server also runs a gRPC server for worker connections: - **Port**: HTTP port + 10000 (e.g., if admin runs on 23646, gRPC runs on 33646) -- **Purpose**: Handles maintenance worker connections and task distribution +- **Purpose**: Handles worker connections and task distribution - **TLS**: Uses `[grpc.admin]` configuration from `security.toml` - **Fallback**: Workers fall back to insecure connections if TLS is unavailable @@ -143,10 +142,41 @@ weed scaffold -config=security ### Web Interface -- **Modern UI**: Bootstrap-based responsive design -- **Real-time updates**: Live cluster status and metrics -- **File management**: Browse and manage files through web interface -- **Maintenance operations**: Execute maintenance tasks from the UI +The admin interface provides a comprehensive web-based management console with the following sections: + +#### Dashboard +- **Cluster Overview**: Real-time cluster status and health metrics +- **System Statistics**: Total volumes, files, size, and volume size limits +- **Node Status**: Master, filer, volume server, and message broker status +- **Data Centers**: Geographic distribution of storage nodes + +#### Object Store Management +- **S3 Buckets**: View, create, delete, and manage S3-compatible buckets +- **Bucket Details**: Quota management and configuration +- **User Management**: Create and manage S3 API users with permissions +- **Access Keys**: Generate and manage access/secret key pairs +- **Policies**: Manage bucket policies and user permissions + +#### File Browser +- **Directory Navigation**: Browse filesystem hierarchy through web interface +- **File Operations**: Upload, download, delete, and manage files +- **File Properties**: View file metadata, permissions, and storage details +- **Bulk Operations**: Multi-select for batch operations + +#### Cluster Management +- **Master Servers**: View master node status, leadership, and connectivity +- **Filer Servers**: Monitor filer instances and metadata operations +- **Volume Servers**: Track storage nodes, capacity, and health status +- **Volume Management**: View volume distribution, replication, and status +- **Collections**: Monitor data collections and their volume allocation + +#### Message Queue Management +- **Brokers**: View message queue broker status and configuration +- **Topics**: Manage topics, partitions, and message retention +- **Subscribers**: Monitor subscriber connections and consumer lag +- **Topic Details**: View message statistics and partition distribution + + ### API Endpoints @@ -192,13 +222,260 @@ weed admin -v=4 -masters="localhost:9333" ## Related Commands -- [`weed worker`](Weed-Worker.md): Start maintenance workers that connect to admin + - [`weed master`](https://github.com/seaweedfs/seaweedfs/wiki/Master-Server): Start master servers - [`weed filer`](https://github.com/seaweedfs/seaweedfs/wiki/Filer-Server): Start filer servers - [`weed scaffold`](https://github.com/seaweedfs/seaweedfs/wiki/Scaffold): Generate configuration files +## Admin UI Pages Reference + +### Accessing the Admin Interface + +Once the admin server is running, access the web interface at: +``` +http://localhost:23646 +``` + +Or with custom port: +``` +http://localhost:PORT +``` + +### Dashboard (/) + +The main dashboard provides a comprehensive overview of your SeaweedFS cluster: + +**Key Metrics**: +- Total volumes, files, and storage size +- Volume size limit configuration +- Cluster health status + +**Cluster Topology**: +- Master server status and leader election +- Filer server instances and connections +- Volume server distribution and capacity +- Message broker status (if enabled) +- Data center geographic distribution + +**Real-time Updates**: The dashboard automatically refreshes to show current cluster status. + +### Object Store Management + +#### S3 Buckets (/object-store/buckets) + +Manage S3-compatible storage buckets: + +**Features**: +- View all buckets with creation dates and sizes +- Create new buckets with Object Lock support +- Delete buckets (with confirmation) +- Set bucket quotas and limits +- Export bucket list to CSV + +**Bucket Operations**: +- **Create Bucket**: Specify name and optional Object Lock enablement +- **Delete Bucket**: Remove empty buckets with confirmation dialog +- **Quota Management**: Set storage limits per bucket +- **Bucket Details**: View detailed statistics and configuration + +#### User Management (/object-store/users) + +Manage S3 API users and their permissions: + +**User Operations**: +- Create new users with email and permissions +- Edit existing user permissions and details +- Delete users with confirmation +- Generate and manage access keys +- View user activity and permissions + +**Permission Types**: +- **Admin**: Full access to all buckets and operations +- **Read**: Read access to specified buckets +- **Write**: Write access to specified buckets +- **List**: List bucket contents +- **Tagging**: Manage object tags +- **Object Lock Permissions**: + - **BypassGovernanceRetention**: Override governance retention + - **GetObjectRetention**: Read object retention settings + - **PutObjectRetention**: Modify object retention + - **GetObjectLegalHold**: Read legal hold status + - **PutObjectLegalHold**: Set legal hold + - **GetBucketObjectLockConfiguration**: Read bucket Object Lock config + - **PutBucketObjectLockConfiguration**: Modify bucket Object Lock config + +**Access Key Management**: +- Generate new access/secret key pairs +- View existing access keys (secret keys are masked) +- Delete unused access keys +- Copy keys to clipboard + +#### Policies (/object-store/policies) + +Manage bucket policies and access control: + +**Policy Operations**: +- Create JSON-based bucket policies +- Edit existing policies with syntax validation +- Delete policies +- Validate policy syntax before saving +- View policy effects and permissions + +### File Browser (/files) + +Web-based file system interface: + +**Navigation**: +- Browse directory hierarchy +- Navigate with breadcrumb navigation +- Search files and folders +- Sort by name, size, or modification date + +**File Operations**: +- **Upload**: Single or multiple file upload with progress tracking +- **Download**: Direct file download or streaming +- **Delete**: Remove files and folders with confirmation +- **Create Folders**: New directory creation +- **Rename**: File and folder renaming +- **Copy/Move**: File management operations + +**Advanced Features**: +- Drag-and-drop file upload +- Bulk selection for batch operations +- File property viewing (size, permissions, metadata) +- Preview for supported file types +- Export file listings to CSV + +### Cluster Management + +#### Master Servers (/cluster/masters) + +Monitor master server cluster: + +**Information Displayed**: +- Master server addresses and ports +- Leader election status +- Connection health and response times +- Configuration synchronization status +- Cluster membership changes + +#### Filer Servers (/cluster/filers) + +Track filer instances: + +**Monitoring**: +- Filer server addresses and health +- Metadata store backend status +- Connected clients and operations +- Performance metrics and response times + +#### Volume Servers (/cluster/volume-servers) + +Manage storage nodes: + +**Server Information**: +- Server addresses and capacity +- Free space and utilization +- Active volume counts +- Data center and rack assignment +- Health status and connectivity + +#### Volume Management (/cluster/volumes) + +Detailed volume tracking: + +**Volume Details**: +- Volume ID and size information +- Replication status and factor +- Read/write statistics +- Storage location and server mapping +- Collection assignment + +**Operations**: +- View volume distribution across servers +- Monitor replication health +- Track volume growth and utilization + +#### Collections (/cluster/collections) + +Monitor data collections: + +**Collection Information**: +- Collection names and volume counts +- Replication configuration +- Storage distribution +- Growth patterns and capacity planning + +### Message Queue Management + +#### Brokers (/mq/brokers) + +Monitor message queue brokers: + +**Broker Status**: +- Broker addresses and health +- Topic assignment and leadership +- Connection counts and throughput +- Configuration and settings + +#### Topics (/mq/topics) + +Manage message queue topics: + +**Topic Operations**: +- Create new topics with partition configuration +- View topic statistics and message counts +- Manage topic retention policies +- Monitor consumer lag and throughput + +#### Topic Details (/mq/topics/{namespace}/{topic}) + +Detailed topic information: + +**Statistics**: +- Message production and consumption rates +- Partition distribution and leadership +- Subscriber connections and lag +- Storage utilization per partition + + + +**Configuration Options**: +- Task scheduling parameters +- Worker connection settings +- Retry policies and timeouts +- Resource allocation limits + +## Navigation and UI Features + +### Responsive Design +- Mobile-friendly interface +- Collapsible sidebar navigation +- Responsive tables and charts +- Touch-friendly controls + +### Real-time Updates +- Live cluster status monitoring +- Automatic page refresh for dynamic content +- WebSocket connections for real-time data +- Progress indicators for long-running operations + +### Security Features +- Session-based authentication +- CSRF protection +- Secure cookie handling +- TLS/HTTPS support + +### Accessibility +- Keyboard navigation support +- Screen reader compatibility +- High contrast mode support +- Semantic HTML structure + ## See Also - [SeaweedFS Architecture](https://github.com/seaweedfs/seaweedfs/wiki/SeaweedFS-Architecture) - [Security Configuration](https://github.com/seaweedfs/seaweedfs/wiki/Security-Configuration) -- [Maintenance Operations](https://github.com/seaweedfs/seaweedfs/wiki/Maintenance) \ No newline at end of file + +- [S3 Object Lock and Retention](S3-Object-Lock-and-Retention.md) +- [S3 API FAQ](S3-API-FAQ.md) \ No newline at end of file