mc support diag
The mc support diag
command generates a health report for a AIStor deployment.
For deployments registered with the AIStor subscription network (SUBNET), the command generates and uploads the health report for analysis.
Optionally, automate generating and uploading the report every 24 hours by enabling callhome
.
The resulting health report is intended for use by AIStor Engineering via SUBNET and may contain internal or private data points. Exercise caution before sending a health report to a third party or posting the health report in a public forum.
AIStor recommends that you run the health diagnostics when first provisioning the cluster and again at any failure scenario.
Use the mc support diag
command to trigger the diagnostic test.
For clusters registered with SUBNET, the command uploads the results as part of SUBNET Health reports.
For airgapped or firewalled environments, or other environments that prevent direct network access from the deployment, you can save the report locally with the --airgap
flag.
After saving, you can then upload the results of the test to SUBNET manually.
The report includes information such as:
- System settings, services, and configurations that might impact performance
- TLS certificate status, validity, expiration, and algorithm type information
- CPU core count and information
- Drive count, status, size, and available space
- Information about data-containing partitions
- Cluster size server count
- File system type
- Memory size and type
- OS symmetry and Linux kernel version
- Internode latency
- Tiering configurations
- NTP synchronization
- Available resources
- AIStor Server version
The resulting report is stored locally as a markdown-formatted file named diag-report-*.md
, where *
is a string that identifies the particular report.
Syntax
Parameters
ALIAS
Required
The alias of the AIStor deployment.
--airgap
Optional
Use in environments without network access to SUBNET (for example, airgapped, firewalled, or similar configuration). Generates the diagnostic report and saves it to the location where you ran the command.
You must manually upload the report to SUBNET.
For instructions, see the airgap example.
If the deployment is airgapped, but the local device where you are using the AIStor Client has network access, you do not need to use the --airgap
flag.
--anonymize
Valid values are strict
or standard
.
If not specified, log uploads use the standard
mode that does not anonymize host names.
To anonymize all data, including host names, pass this parameter with the strict
mode.
mc support diag minio --anonymize
--check
Specify one or more diagnostic checks to run as a comma-separated list. For example:
mc support diag minio --check=sys.drive,sys.mem
The client stores the report locally and does not upload the report to SUBNET.
The following table lists valid values.
Check | Name | Description |
---|---|---|
minio.buckets.max |
Buckets Maximum | Recommended maximum number of buckets |
minio.cluster.min |
Cluster Size Minimum | Recommended minimum cluster size |
minio.license.expiry |
License | License is valid |
minio.net.latency |
Internode Network Latency | Internode Latency below 25ms |
minio.net.tls.algo |
TLS Certs Algo | TLS certificates use an optimal algorithm |
minio.net.tls.status |
TLS Status | TLS is enabled |
minio.net.tls.valid |
TLS Certs Validity | TLS certificates are valid |
minio.process.args |
CLI Args | AIStor CLI arguments are identical across the cluster |
minio.process.rlimit |
Process Resource Limit | AIStor has sufficiently large resource Limit |
minio.process.user |
Process User | AIStor running as non-root process |
minio.version.consistency |
AIStor Consistency | AIStor version is identical across the cluster |
sys.cpu.consistency |
CPU Consistency | CPU make, model and count are identical across the cluster |
sys.cpu.cores.min |
CPU Cores | Recommended minimum number of CPU cores |
sys.cpu.extensions |
CPU Vector Extensions | Performance features available on all CPUs |
sys.cpu.governor |
CPU Governor | CPU governor set to performance |
sys.drive.consistency |
Drive Consistency | Drives are identical across the cluster |
sys.drive.status |
Drive Status | Drives are online |
sys.drive.usage |
Drive Usage | Drive usage below 75% |
sys.fs.consistency |
File System Consistency | File system is identical on all Drives |
sys.fs.inodes.free |
Inodes Free | Sufficient free inodes |
sys.fs.inodes.usage |
Inodes Usage | Inodes usage in sync with drive usage |
sys.fs.supported |
File System Supported | Recommended file system |
sys.fs.xfs.errors |
XFS Errors | No continuous retries on XFS errors |
sys.mem.consistency |
Memory Consistency | Memory is identical across the Cluster |
sys.mem.iommu |
IOMMU Configuration | Input-Output Memory Management Unit configured correctly |
sys.mem.swap |
Swap Memory | Swap memory is not used |
sys.mem.thp |
Transparent Huge Pages Configuration | Transparent Huge Pages configured correctly |
sys.net.eth.buffer |
Ethernet Ring Buffer | Ethernet RX/TX ring buffer is optimal |
sys.os.config |
OS Services | No known performance-impacting OS services or configs |
sys.os.consistency |
OS Consistency | Operating systems are identical across the cluster |
sys.os.kernel.min |
Kernel Version | Recommended minimum kernel version |
sys.os.kernel.unstable |
Kernel Unstable | No unstable Kernel versions found |
sys.os.ntp |
NTP | System clocks are synchronized |
--custom-header
Alias -i
Add an additional custom HTTP header to the request in key:value
format.
--dtrace
Add an OpenTelemetry trace to the header.
Alternatively, set the MC_DTRACE
environment variable.
--input
Alias -i
Run diagnostics on the specified file.
The file must be of the format *.json.gz
.
For example:
mc support diag myobjstore --input=myobjstore-health.json.gz
The report does not automatically upload to SUBNET.
--limit-download
Optional
Limit client-side download rates to no more than a specified rate in KiB/s, MiB/s, or GiB/s. This affects only the download to the local device running the AIStor client. Valid units include:
B
for bytesK
for kilobytesM
for megabytesG
for gigabytesT
for terabytesKi
for kibibytesMi
for mibibytesGi
for gibibytesTi
for tebibytes
For example, to limit download rates to no more than 1 GiB/s, use the following:
--limit-download 1G
If not specified, AIStor uses an unlimited download rate.
--limit-upload
Optional
Limit client-side upload rates to no more than the specified rate in KiB/s, MiB/s, or GiB/s. This affects only the upload from the local device running the AIStor client. Valid units include:
B
for bytesK
for kilobytesM
for megabytesG
for gigabytesT
for terabytesKi
for kibibytesMi
for mibibytesGi
for gibibytesTi
for tebibytes
For example, to limit upload rates to no more than 1 GiB/s, use the following:
--limit-upload 1G
If not specified, AIStor uses an unlimited upload rate.
Global Flags
This command supports any of the global flags.
Examples
Generate health data for an Object Store to upload manually
Generate a diagnostic report for an AIStor Object Store at alias minio2
and save it for manual upload to SUBNET:
mc support diag minio2 --airgap
- Run the command to generate and save the
.gzip
file of the health diagnostics - Login to https://subnet.min.io and select the Deployments section
- Select the deployment for the report
- Select Upload
- Drag and drop the file or browse to the
.gzip
file location to upload it
Upload data to SUBNET with strict anonymization
Generate health data for an AIStor Object Store at alias myminio
and anonymize all sensitive data, including host names.
mc support diag myminio --anonymize strict
Generate health data for drives and memory
Perform a diagnostic check on drives and memory for an AIStor Object Store at alias myminio
.
mc support diag myminio --check=sys.drive,sys.mem
This command generates a report that includes all data types that begin with sys.drive.*
and sys.mem.*
.
Check the CPU governance and file system support
Perform a diagnostic check on the CPU governance performance and whether the file system is supported only for an object store at alias myminio
.
mc support diag myminio --check=sys.cpu.governor,sys.fs.supported
Perform a diagnostic check on a file
Perform all available checks on the file at myminio-health.json.gz
.
The file should be in the current local working directory.
mc support diag myminio --input=myminio-health.json.gz
Behavior
Sample Output
● CPU Info ... ✔
● Disk Info ... ✔
● Net Info ... ✔
● Os Info ... ✔
● Mem Info ... ✔
● Process Info ... ✔
● Server Config ... ✔
● System Errors ... ✔
● System Services ... ✔
● System Config ... ✔
● Admin Info ... ✔
*********************************************************************************
WARNING!!
** THIS FILE MAY CONTAIN SENSITIVE INFORMATION ABOUT YOUR ENVIRONMENT **
** PLEASE INSPECT CONTENTS BEFORE SHARING IT ON ANY PUBLIC FORUM **
*********************************************************************************
mc: AIStor diagnostics report saved to myminio-health_20231111053323.json.gz
The gzipped output contains the requested health information.