mc support diag

The mc support diag command generates a health report for a MinIO AIStor deployment.

The command generates and uploads the health report to SUBNET for analysis.

Automated with Call Home

The report is automatically generated and uploaded every 24 hours with Call Home, which can be disabled or enabled at any time.

The resulting health report is intended for use by MinIO Engineering through 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.

MinIO 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
  • Replication configuration
  • 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

Generate health data for a MinIO AIStor at alias myaistor and upload to SUBNET.

mc support diag myaistor

The command has the following syntax:

mc [GLOBALFLAGS] support diag                        \
                         ALIAS                       \
                         [--airgap]                  \
                         [--anonymize string]        \
                         [--check=<value>]           \
                         [--custom-header, -H value] \
                         [--dtrace]                  \
                         [--input, -i =<value>]      \
                         [--limit-download value]    \
                         [--limit-upload value]

Parameters

ALIAS

Required

The alias of the MinIO 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 manual upload 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 myaistor --anonymize strict

--check

Specify one or more diagnostic checks to run as a comma-separated list. For example:

mc support diag myaistor --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.

CheckNameDescription
minio.buckets.maxBuckets MaximumRecommended maximum number of buckets
minio.cluster.minCluster Size MinimumRecommended minimum cluster size
minio.license.expiryLicenseLicense is valid
minio.net.latencyInternode Network LatencyInternode Latency below 25ms
minio.net.tls.algoTLS Certs AlgoTLS certificates use an optimal algorithm
minio.net.tls.statusTLS StatusTLS is enabled
minio.net.tls.validTLS Certs ValidityTLS certificates are valid
minio.process.argsCLI ArgsMinIO AIStor CLI arguments are identical across the cluster
minio.process.rlimitProcess Resource LimitMinIO AIStor has sufficiently large resource Limit
minio.process.userProcess UserMinIO AIStor running as non-root process
minio.version.consistencyMinIO AIStor ConsistencyMinIO AIStor version is identical across the cluster
sys.cpu.consistencyCPU ConsistencyCPU make, model and count are identical across the cluster
sys.cpu.cores.minCPU CoresRecommended minimum number of CPU cores
sys.cpu.extensionsCPU Vector ExtensionsPerformance features available on all CPUs
sys.cpu.governorCPU GovernorCPU governor set to performance
sys.drive.consistencyDrive ConsistencyDrives are identical across the cluster
sys.drive.statusDrive StatusDrives are online
sys.drive.usageDrive UsageDrive usage below 75%
sys.fs.consistencyFile System ConsistencyFile system is identical on all Drives
sys.fs.inodes.freeInodes FreeSufficient free inodes
sys.fs.inodes.usageInodes UsageInodes usage in sync with drive usage
sys.fs.supportedFile System SupportedRecommended file system
sys.fs.xfs.errorsXFS ErrorsNo continuous retries on XFS errors
sys.mem.consistencyMemory ConsistencyMemory is identical across the Cluster
sys.mem.iommuIOMMU ConfigurationInput-Output Memory Management Unit configured correctly
sys.mem.swapSwap MemorySwap memory is not used
sys.mem.thpTransparent Huge Pages ConfigurationTransparent Huge Pages configured correctly
sys.net.eth.bufferEthernet Ring BufferEthernet RX/TX ring buffer is optimal
sys.os.configOS ServicesNo known performance-impacting OS services or configs
sys.os.consistencyOS ConsistencyOperating systems are identical across the cluster
sys.os.kernel.minKernel VersionRecommended minimum kernel version
sys.os.kernel.unstableKernel UnstableNo unstable Kernel versions found
sys.os.ntpNTPSystem clocks are synchronized

--custom-header

Alias -H

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 myaistor --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 bytes
  • K for kilobytes
  • M for megabytes
  • G for gigabytes
  • T for terabytes
  • Ki for kibibytes
  • Mi for mibibytes
  • Gi for gibibytes
  • Ti for tebibytes

For example, to limit download rates to no more than 1 GiB/s, use the following:

--limit-download 1G

If not specified, MinIO 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 bytes
  • K for kilobytes
  • M for megabytes
  • G for gigabytes
  • T for terabytes
  • Ki for kibibytes
  • Mi for mibibytes
  • Gi for gibibytes
  • Ti for tebibytes

For example, to limit upload rates to no more than 1 GiB/s, use the following:

--limit-upload 1G

If not specified, MinIO 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 a MinIO AIStor at alias myaistor and save it for manual upload to SUBNET:

mc support diag myaistor --airgap
  1. Run the command to generate and save the .gzip file of the health diagnostics
  2. Login to SUBNET and select the Deployments section
  3. Select the deployment for the report
  4. Select Upload
  5. 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 a MinIO AIStor at alias myaistor and anonymize all sensitive data, including host names.

mc support diag myaistor --anonymize strict

Generate health data for drives and memory

Perform a diagnostic check on drives and memory for a MinIO AIStor at alias myaistor.

mc support diag myaistor --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 myaistor.

mc support diag myaistor --check=sys.cpu.governor,sys.fs.supported

Perform a diagnostic check on a file

Perform all available checks on the file at myaistor-health.json.gz. The file should be in the current local working directory.

mc support diag myaistor --input=myaistor-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: MinIO AIStor diagnostics report saved to myaistor-health_20231111053323.json.gz

The gzipped output contains the requested health information.

On this page