mirror of
https://github.com/minio/mc.git
synced 2025-11-12 01:02:26 +03:00
694 lines
18 KiB
Markdown
694 lines
18 KiB
Markdown
# MinIO Admin Complete Guide [](https://slack.min.io)
|
|
|
|
MinIO Client (mc) provides `admin` sub-command to perform administrative tasks on your MinIO deployments.
|
|
|
|
```
|
|
service restart and stop all MinIO servers
|
|
update update all MinIO servers
|
|
info display MinIO server information
|
|
user manage users
|
|
group manage groups
|
|
policy manage policies defined in the MinIO server
|
|
config manage configuration file
|
|
heal heal disks, buckets and objects on MinIO server
|
|
profile generate profile data for debugging purposes
|
|
top provide top like statistics for MinIO
|
|
trace show http trace for minio server
|
|
console show console logs for MinIO server
|
|
```
|
|
|
|
## 1. Download MinIO Client
|
|
### Docker Stable
|
|
```
|
|
docker pull minio/mc
|
|
docker run minio/mc admin info server play
|
|
```
|
|
|
|
### Docker Edge
|
|
```
|
|
docker pull minio/mc:edge
|
|
docker run minio/mc:edge admin info server play
|
|
```
|
|
|
|
### Homebrew (macOS)
|
|
Install mc packages using [Homebrew](http://brew.sh/)
|
|
|
|
```
|
|
brew install minio/stable/mc
|
|
mc --help
|
|
```
|
|
|
|
### Binary Download (GNU/Linux)
|
|
| Platform | Architecture | URL |
|
|
| ---------- | -------- |------|
|
|
|GNU/Linux|64-bit Intel|https://dl.min.io/client/mc/release/linux-amd64/mc |
|
|
||64-bit PPC|https://dl.min.io/client/mc/release/linux-ppc64le/mc |
|
|
|
|
```
|
|
chmod +x mc
|
|
./mc --help
|
|
```
|
|
|
|
### Binary Download (Microsoft Windows)
|
|
| Platform | Architecture | URL |
|
|
| ---------- | -------- |------|
|
|
|Microsoft Windows|64-bit Intel|https://dl.min.io/client/mc/release/windows-amd64/mc.exe |
|
|
|
|
```
|
|
mc.exe --help
|
|
```
|
|
|
|
### Install from Source
|
|
Source installation is intended only for developers and advanced users. `mc update` command does not support update notifications for source based installations. Please download official releases from https://min.io/download/#minio-client.
|
|
|
|
If you do not have a working Golang environment, please follow [How to install Golang](https://golang.org/doc/install).
|
|
|
|
```
|
|
go get -d github.com/minio/mc
|
|
cd ${GOPATH}/src/github.com/minio/mc
|
|
make
|
|
```
|
|
|
|
## 2. Run MinIO Client
|
|
|
|
### GNU/Linux
|
|
|
|
```
|
|
chmod +x mc
|
|
./mc --help
|
|
```
|
|
|
|
### macOS
|
|
|
|
```
|
|
chmod 755 mc
|
|
./mc --help
|
|
```
|
|
|
|
### Microsoft Windows
|
|
|
|
```
|
|
mc.exe --help
|
|
```
|
|
|
|
## 3. Add a MinIO Storage Service
|
|
MinIO server displays URL, access and secret keys.
|
|
|
|
#### Usage
|
|
|
|
```
|
|
mc config host add <ALIAS> <YOUR-MINIO-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY>
|
|
```
|
|
|
|
Alias is simply a short name to your MinIO service. MinIO end-point, access and secret keys are supplied by your MinIO service. Admin API uses "S3v4" signature and cannot be changed.
|
|
|
|
```
|
|
mc config host add minio http://192.168.1.51:9000 BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
|
|
```
|
|
|
|
## 4. Test Your Setup
|
|
|
|
*Example:*
|
|
|
|
Get MinIO server information for the configured alias `minio`
|
|
|
|
```
|
|
mc admin info server minio
|
|
|
|
● 192.168.1.51:9000
|
|
Uptime : online since 1 day ago
|
|
Version : 2018-05-28T04:31:38Z
|
|
Region :
|
|
SQS ARNs : <none>
|
|
Stats : Incoming 82GiB, Outgoing 28GiB
|
|
Storage : Used 7.4GiB
|
|
|
|
CPU min avg max
|
|
current 0.12% 0.14% 0.17%
|
|
historic 0.03% 1.27% 412.18%
|
|
|
|
MEM usage
|
|
current 602 MiB
|
|
historic 448 MiB
|
|
```
|
|
|
|
## 5. Everyday Use
|
|
You may add shell aliases for info, healing.
|
|
|
|
```
|
|
alias minfo='mc admin info'
|
|
alias mheal='mc admin heal'
|
|
```
|
|
|
|
## 6. Global Options
|
|
|
|
### Option [--debug]
|
|
Debug option enables debug output to console.
|
|
|
|
*Example: Display verbose debug output for `info` command.*
|
|
|
|
```
|
|
mc admin --debug info server minio
|
|
mc: <DEBUG> GET /minio/admin/v1/info HTTP/1.1
|
|
Host: 192.168.1.51:9000
|
|
User-Agent: MinIO (linux; amd64) madmin-go/0.0.1 mc/2018-05-23T23:43:34Z
|
|
Authorization: AWS4-HMAC-SHA256 Credential=**REDACTED**/20180530/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
|
|
X-Amz-Content-Sha256: UNSIGNED-PAYLOAD
|
|
X-Amz-Date: 20180530T001808Z
|
|
Accept-Encoding: gzip
|
|
|
|
mc: <DEBUG> HTTP/1.1 200 OK
|
|
Transfer-Encoding: chunked
|
|
Accept-Ranges: bytes
|
|
Content-Security-Policy: block-all-mixed-content
|
|
Content-Type: application/json
|
|
Date: Wed, 30 May 2018 00:18:08 GMT
|
|
Server: MinIO/DEVELOPMENT.2018-05-28T04-31-38Z (linux; amd64)
|
|
Vary: Origin
|
|
X-Amz-Request-Id: 1533440573A63034
|
|
X-Xss-Protection: "1; mode=block"
|
|
|
|
mc: <DEBUG> Response Time: 140.70112ms
|
|
|
|
● 192.168.1.51:9000
|
|
Uptime : online since 1 day ago
|
|
Version : 2018-05-28T04:31:38Z
|
|
Region :
|
|
SQS ARNs : <none>
|
|
Stats : Incoming 82GiB, Outgoing 28GiB
|
|
Storage : Used 7.4GiB
|
|
|
|
CPU min avg max
|
|
current 0.12% 0.14% 0.17%
|
|
historic 0.03% 1.27% 412.18%
|
|
|
|
MEM usage
|
|
current 602 MiB
|
|
historic 448 MiB
|
|
```
|
|
|
|
### Option [--json]
|
|
JSON option enables parseable output in [JSON lines](http://jsonlines.org/) format.
|
|
|
|
*Example: MinIO server information.*
|
|
|
|
```
|
|
mc admin --json info server minio
|
|
{
|
|
"status": "success",
|
|
"service": "on",
|
|
"address": "192.168.1.51:9000",
|
|
"error": "",
|
|
"storage": {
|
|
"used": 7979370172,
|
|
"backend": {
|
|
"backendType": "FS"
|
|
}
|
|
},
|
|
"network": {
|
|
"transferred": 90473434722,
|
|
"received": 30662519192
|
|
},
|
|
"server": {
|
|
"uptime": 157467244813288,
|
|
"version": "2018-05-28T04:31:38Z",
|
|
"commitID": "7d8c5ffb13334f4aec20a35bd2575bd7c740fb7a",
|
|
"region": "",
|
|
"sqsARN": []
|
|
}
|
|
"cpu": {
|
|
"addr": "play.minio.io:9000",
|
|
"load": [
|
|
{
|
|
"avg": 0.11,
|
|
"max": 0.13,
|
|
"min": 0.09
|
|
}
|
|
],
|
|
"historicLoad": [
|
|
{
|
|
"avg": 1.270331023187104,
|
|
"max": 412.18000000000006,
|
|
"min": 0.03
|
|
}
|
|
]
|
|
},
|
|
"mem": {
|
|
"addr": "play.minio.io:9000",
|
|
"usage": [
|
|
{
|
|
"mem": 631800056
|
|
}
|
|
],
|
|
"historicUsage": [
|
|
{
|
|
"mem": 469437357
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
### Option [--no-color]
|
|
This option disables the color theme. It is useful for dumb terminals.
|
|
|
|
### Option [--quiet]
|
|
Quiet option suppress chatty console output.
|
|
|
|
### Option [--config-dir]
|
|
Use this option to set a custom config path.
|
|
|
|
### Option [ --insecure]
|
|
Skip SSL certificate verification.
|
|
|
|
## 7. Commands
|
|
|
|
| |
|
|
|:-----------------------------------------------------------------------|
|
|
| [**service** - restart and stop all MinIO servers](#service) |
|
|
| [**update** - updates all MinIO servers](#update) |
|
|
| [**info** - display MinIO server information](#info) |
|
|
| [**user** - manage users](#user) |
|
|
| [**group** - manage groups](#group) |
|
|
| [**policy** - manage canned policies](#policy) |
|
|
| [**config** - manage server configuration file](#config) |
|
|
| [**heal** - heal disks, buckets and objects on MinIO server](#heal) |
|
|
| [**profile** - generate profile data for debugging purposes](#profile) |
|
|
| [**top** - provide top like statistics for MinIO](#top) |
|
|
| [**trace** - show http trace for MinIO server](#trace) |
|
|
| [**console** - show console logs for MinIO server](#console) |
|
|
|
|
|
|
<a name="update"></a>
|
|
### Command `update` - updates all MinIO servers
|
|
`update` command provides a way to update all MinIO servers in a cluster.
|
|
|
|
> NOTE:
|
|
> - An alias pointing to a distributed setup this command will automatically update all MinIO servers in the cluster.
|
|
> - `update` is an disruptive operations for your MinIO service, any on-going API operations will be forcibly canceled. So, it should be used only when you are planning MinIO upgrades for your deployment.
|
|
|
|
*Example: Update all MinIO servers.*
|
|
```
|
|
mc admin update play
|
|
Server `play` updated successfully from RELEASE.2019-08-14T20-49-49Z to RELEASE.2019-08-21T19-59-10Z
|
|
```
|
|
|
|
<a name="service"></a>
|
|
### Command `service` - restart and stop all MinIO servers
|
|
`service` command provides a way to restart and stop all MinIO servers.
|
|
|
|
> NOTE:
|
|
> - An alias pointing to a distributed setup this command will automatically execute the same actions across all servers.
|
|
> - `restart` and `stop` sub-commands are disruptive operations for your MinIO service, any on-going API operations will be forcibly canceled. So, it should be used only under administrative circumstances. Please use it with caution.
|
|
|
|
```
|
|
NAME:
|
|
mc admin service - restart and stop all MinIO servers
|
|
|
|
FLAGS:
|
|
--help, -h show help
|
|
|
|
COMMANDS:
|
|
restart restart all MinIO servers
|
|
stop stop all MinIO servers
|
|
```
|
|
|
|
*Example: Restart all MinIO servers.*
|
|
```
|
|
mc admin service restart play
|
|
Restarted `play` successfully.
|
|
```
|
|
|
|
<a name="info"></a>
|
|
### Command `info` - Display MinIO server information
|
|
`info` command displays server information of one or many MinIO servers (under distributed cluster)
|
|
|
|
```
|
|
NAME:
|
|
mc admin info - get MinIO server information
|
|
|
|
FLAGS:
|
|
--help, -h show help
|
|
```
|
|
|
|
*Example: Display MinIO server information.*
|
|
|
|
```
|
|
mc admin info play
|
|
● play.min.io
|
|
Uptime : online since 1 day ago
|
|
Version : 2018-05-28T04:31:38Z
|
|
Region :
|
|
SQS ARNs : <none>
|
|
Stats : Incoming 82GiB, Outgoing 28GiB
|
|
Storage : Used 8.2GiB
|
|
```
|
|
|
|
<a name="policy"></a>
|
|
### Command `policy` - Manage canned policies
|
|
`policy` command to add, remove, list policies on MinIO server.
|
|
|
|
```
|
|
NAME:
|
|
mc admin policy - manage policies
|
|
|
|
FLAGS:
|
|
--help, -h show help
|
|
|
|
COMMANDS:
|
|
add add new policy
|
|
remove remove policy
|
|
list list all policies
|
|
info show info on a policy
|
|
set set IAM policy on a user or group
|
|
```
|
|
|
|
*Example: Add a new policy 'newpolicy' on MinIO, with policy from /tmp/newpolicy.json.*
|
|
|
|
```
|
|
mc admin policy add myminio/ newpolicy /tmp/newpolicy.json
|
|
```
|
|
|
|
*Example: Remove policy 'newpolicy' on MinIO.*
|
|
|
|
```
|
|
mc admin policy remove myminio/ newpolicy
|
|
```
|
|
|
|
*Example: List all policies on MinIO.*
|
|
|
|
```
|
|
mc admin policy list --json myminio/
|
|
{"status":"success","policy":"newpolicy"}
|
|
```
|
|
|
|
*Example: Show info on a policy*
|
|
|
|
```
|
|
mc admin policy info myminio/ writeonly
|
|
```
|
|
|
|
*Example: Set the policy on a user or group*
|
|
|
|
```
|
|
mc admin policy set myminio writeonly user=someuser
|
|
mc admin policy set myminio writeonly group=somegroup
|
|
```
|
|
|
|
<a name="user"></a>
|
|
### Command `user` - Manage users
|
|
`user` command to add, remove, enable, disable, list users on MinIO server.
|
|
|
|
```
|
|
NAME:
|
|
mc admin user - manage users
|
|
|
|
FLAGS:
|
|
--help, -h show help
|
|
|
|
COMMANDS:
|
|
add add new user
|
|
disable disable user
|
|
enable enable user
|
|
remove remove user
|
|
list list all users
|
|
info display info of a user
|
|
```
|
|
|
|
*Example: Add a new user 'newuser' on MinIO.*
|
|
|
|
```
|
|
mc admin user add myminio/ newuser newuser123
|
|
```
|
|
|
|
*Example: Disable a user 'newuser' on MinIO.*
|
|
|
|
```
|
|
mc admin user disable myminio/ newuser
|
|
```
|
|
|
|
*Example: Enable a user 'newuser' on MinIO.*
|
|
|
|
```
|
|
mc admin user enable myminio/ newuser
|
|
```
|
|
|
|
*Example: Remove user 'newuser' on MinIO.*
|
|
|
|
```
|
|
mc admin user remove myminio/ newuser
|
|
```
|
|
|
|
*Example: List all users on MinIO.*
|
|
|
|
```
|
|
mc admin user list --json myminio/
|
|
{"status":"success","accessKey":"newuser","userStatus":"enabled"}
|
|
```
|
|
|
|
*Example: Display info of a user*
|
|
|
|
```
|
|
mc admin user info myminio someuser
|
|
```
|
|
|
|
<a name="group"></a>
|
|
### Command `group` - Manage groups
|
|
`group` command to add, remove, info, list, enable, disable groups on MinIO server.
|
|
|
|
```
|
|
NAME:
|
|
mc admin group - manage groups
|
|
|
|
USAGE:
|
|
mc admin group COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
|
|
|
|
COMMANDS:
|
|
add add users to a new or existing group
|
|
remove remove group or members from a group
|
|
info display group info
|
|
list display list of groups
|
|
enable Enable a group
|
|
disable Disable a group
|
|
```
|
|
|
|
*Example: Add a pair of users to a group 'somegroup' on MinIO.*
|
|
|
|
Group is created if it does not exist.
|
|
|
|
```
|
|
mc admin group add myminio somegroup someuser1 someuser2
|
|
```
|
|
|
|
*Example: Remove a pair of users from a group 'somegroup' on MinIO.*
|
|
|
|
```
|
|
mc admin group remove myminio somegroup someuser1 someuser2
|
|
```
|
|
|
|
*Example: Remove a group 'somegroup' on MinIO.*
|
|
|
|
Only works if the given group is empty.
|
|
|
|
```
|
|
mc admin group remove myminio somegroup
|
|
```
|
|
|
|
*Example: Get info on a group 'somegroup' on MinIO.*
|
|
|
|
```
|
|
mc admin group info myminio somegroup
|
|
```
|
|
|
|
*Example: List all groups on MinIO.*
|
|
|
|
```
|
|
mc admin group list myminio
|
|
```
|
|
|
|
*Example: Enable a group 'somegroup' on MinIO.*
|
|
|
|
```
|
|
mc admin group enable myminio somegroup
|
|
```
|
|
|
|
*Example: Disable a group 'somegroup' on MinIO.*
|
|
|
|
```
|
|
mc admin group disable myminio somegroup
|
|
```
|
|
|
|
<a name="config"></a>
|
|
### Command `config` - Manage server configuration
|
|
`config` command to manage MinIO server configuration.
|
|
|
|
```
|
|
NAME:
|
|
mc admin config - manage configuration file
|
|
|
|
USAGE:
|
|
mc admin config COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
|
|
|
|
COMMANDS:
|
|
get get config of a MinIO server/cluster.
|
|
set set new config file to a MinIO server/cluster.
|
|
|
|
FLAGS:
|
|
--help, -h Show help.
|
|
```
|
|
|
|
*Example: Get server configuration of a MinIO server/cluster.*
|
|
|
|
```
|
|
mc admin config get myminio > /tmp/my-serverconfig
|
|
```
|
|
|
|
*Example: Set server configuration of a MinIO server/cluster.*
|
|
|
|
```
|
|
mc admin config set myminio < /tmp/my-serverconfig
|
|
```
|
|
|
|
<a name="heal"></a>
|
|
### Command `heal` - Heal disks, buckets and objects on MinIO server
|
|
`heal` command heals disks, missing buckets, objects on MinIO server. NOTE: This command is only applicable for MinIO erasure coded setup (standalone and distributed).
|
|
|
|
```
|
|
NAME:
|
|
mc admin heal - heal disks, buckets and objects on MinIO server
|
|
|
|
FLAGS:
|
|
--scan value select the healing scan mode (normal/deep) (default: "normal")
|
|
--recursive, -r heal recursively
|
|
--dry-run, -n only inspect data, but do not mutate
|
|
--force-start, -f force start a new heal sequence
|
|
--force-stop, -s force stop a running heal sequence
|
|
--remove remove dangling objects in heal sequence
|
|
--help, -h show help
|
|
```
|
|
|
|
*Example: Heal MinIO cluster after replacing a fresh disk, recursively heal all buckets and objects, where 'myminio' is the MinIO server alias.*
|
|
|
|
```
|
|
mc admin heal -r myminio
|
|
```
|
|
|
|
*Example: Heal MinIO cluster on a specific bucket recursively, where 'myminio' is the MinIO server alias.*
|
|
|
|
```
|
|
mc admin heal -r myminio/mybucket
|
|
```
|
|
|
|
*Example: Heal MinIO cluster on a specific object prefix recursively, where 'myminio' is the MinIO server alias.*
|
|
|
|
```
|
|
mc admin heal -r myminio/mybucket/myobjectprefix
|
|
```
|
|
|
|
<a name="profile"></a>
|
|
### Command `profile` - generate profile data for debugging purposes
|
|
|
|
```
|
|
NAME:
|
|
mc admin profile - generate profile data for debugging purposes
|
|
|
|
COMMANDS:
|
|
start start recording profile data
|
|
stop stop and download profile data
|
|
```
|
|
|
|
Start CPU profiling
|
|
```
|
|
mc admin profile start --type cpu myminio/
|
|
```
|
|
|
|
<a name="top"></a>
|
|
### Command `top` - provide top like statistics for MinIO
|
|
NOTE: This command is only applicable for a distributed MinIO setup. It is not supported on single node and gateway deployments.
|
|
|
|
```
|
|
NAME:
|
|
mc admin top - provide top like statistics for MinIO
|
|
|
|
COMMANDS:
|
|
locks Get a list of the 10 oldest locks on a MinIO cluster.
|
|
```
|
|
|
|
*Example: Get a list of the 10 oldest locks on a distributed MinIO cluster, where 'myminio' is the MinIO cluster alias.*
|
|
|
|
```
|
|
mc admin top locks myminio
|
|
```
|
|
|
|
<a name="trace"></a>
|
|
### Command `trace` - Show http trace for MinIO server
|
|
`trace` command displays server http trace of one or all MinIO servers (under distributed cluster)
|
|
|
|
```sh
|
|
NAME:
|
|
mc admin trace - show http trace for MinIO server
|
|
|
|
FLAGS:
|
|
--verbose, -v print verbose trace
|
|
--all, -a trace all traffic (including internode traffic between MinIO servers)
|
|
--errors, -e trace failed requests only
|
|
--help, -h show help
|
|
```
|
|
|
|
*Example: Display MinIO server http trace.*
|
|
|
|
```sh
|
|
mc admin trace myminio
|
|
172.16.238.1 [REQUEST (objectAPIHandlers).ListBucketsHandler-fm] [154828542.525557] [2019-01-23 23:17:05 +0000]
|
|
172.16.238.1 GET /
|
|
172.16.238.1 Host: 172.16.238.3:9000
|
|
172.16.238.1 X-Amz-Date: 20190123T231705Z
|
|
172.16.238.1 Authorization: AWS4-HMAC-SHA256 Credential=minio/20190123/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=8385097f264efaf1b71a9b56514b8166bb0a03af8552f83e2658f877776c46b3
|
|
172.16.238.1 User-Agent: MinIO (linux; amd64) minio-go/v6.0.8 mc/2019-01-23T23:15:38Z
|
|
172.16.238.1 X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
|
172.16.238.1
|
|
172.16.238.1 <BODY>
|
|
172.16.238.1 [RESPONSE] [154828542.525557] [2019-01-23 23:17:05 +0000]
|
|
172.16.238.1 200 OK
|
|
172.16.238.1 X-Amz-Request-Id: 157C9D641F42E547
|
|
172.16.238.1 X-Minio-Deployment-Id: 5f20fd91-6880-455f-a26d-07804b6821ca
|
|
172.16.238.1 X-Xss-Protection: 1; mode=block
|
|
172.16.238.1 Accept-Ranges: bytes
|
|
172.16.238.1 Content-Security-Policy: block-all-mixed-content
|
|
172.16.238.1 Content-Type: application/xml
|
|
172.16.238.1 Server: MinIO/RELEASE.2019-09-05T23-24-38Z
|
|
172.16.238.1 Vary: Origin
|
|
...
|
|
```
|
|
|
|
<a name="console"></a>
|
|
### Command `console` - show console logs for MinIO server
|
|
`console` command displays server logs of one or all MinIO servers (under distributed cluster)
|
|
|
|
```sh
|
|
NAME:
|
|
mc admin console - show console logs for MinIO server
|
|
|
|
FLAGS:
|
|
--limit value, -l value show last n log entries (default: 10)
|
|
--help, -h show help
|
|
```
|
|
|
|
*Example: Display MinIO server http trace.*
|
|
|
|
```sh
|
|
mc admin console myminio
|
|
|
|
API: SYSTEM(bucket=images)
|
|
Time: 22:48:06 PDT 09/05/2019
|
|
DeploymentID: 6faeded5-5cf3-4133-8a37-07c5d500207c
|
|
RequestID: <none>
|
|
RemoteHost: <none>
|
|
UserAgent: <none>
|
|
Error: ARN 'arn:minio:sqs:us-east-1:1:webhook' not found
|
|
4: cmd/notification.go:1189:cmd.readNotificationConfig()
|
|
3: cmd/notification.go:780:cmd.(*NotificationSys).refresh()
|
|
2: cmd/notification.go:815:cmd.(*NotificationSys).Init()
|
|
1: cmd/server-main.go:375:cmd.serverMain()
|
|
```
|