diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-26 08:15:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-26 08:15:20 +0000 |
commit | 87d772a7d708fec12f48cd8adc0dedff6e1025da (patch) | |
tree | 1fee344c64cc3f43074a01981e21126c8482a522 /src/go/plugin/go.d/modules/smartctl/metadata.yaml | |
parent | Adding upstream version 1.46.3. (diff) | |
download | netdata-87d772a7d708fec12f48cd8adc0dedff6e1025da.tar.xz netdata-87d772a7d708fec12f48cd8adc0dedff6e1025da.zip |
Adding upstream version 1.47.0.upstream/1.47.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/go/plugin/go.d/modules/smartctl/metadata.yaml')
-rw-r--r-- | src/go/plugin/go.d/modules/smartctl/metadata.yaml | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/src/go/plugin/go.d/modules/smartctl/metadata.yaml b/src/go/plugin/go.d/modules/smartctl/metadata.yaml new file mode 100644 index 000000000..e748e82ae --- /dev/null +++ b/src/go/plugin/go.d/modules/smartctl/metadata.yaml @@ -0,0 +1,240 @@ +plugin_name: go.d.plugin +modules: + - meta: + id: collector-go.d.plugin-smartctl + plugin_name: go.d.plugin + module_name: smartctl + monitored_instance: + name: S.M.A.R.T. + link: "https://linux.die.net/man/8/smartd" + icon_filename: "smart.png" + categories: + - data-collection.hardware-devices-and-sensors + keywords: + - smart + - S.M.A.R.T. + - SCSI devices + - ATA devices + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors the health status of storage devices by analyzing S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) counters. + It relies on the [`smartctl`](https://linux.die.net/man/8/smartctl) CLI tool but avoids directly executing the binary. + Instead, it utilizes `ndsudo`, a Netdata helper specifically designed to run privileged commands securely within the Netdata environment. + This approach eliminates the need to use `sudo`, improving security and potentially simplifying permission management. + + Executed commands: + - `smartctl --json --scan` + - `smartctl --json --all {deviceName} --device {deviceType} --nocheck {powerMode}` + method_description: "" + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Install smartmontools (v7.0+) + description: | + Install `smartmontools` version 7.0 or later using your distribution's package manager. Version 7.0 introduced the `--json` output mode, which is required for this collector to function properly. + - title: For Netdata running in a Docker container + description: | + 1. **Install smartmontools**. + + Ensure `smartctl` is available in the container by setting the environment variable `NETDATA_EXTRA_DEB_PACKAGES=smartmontools` when starting the container. + + 2. **Provide access to storage devices**. + + Netdata requires the `SYS_RAWIO` capability and access to the storage devices to run the `smartctl` collector inside a Docker container. Here's how you can achieve this: + + - `docker run` + + ```bash + docker run --cap-add SYS_RAWIO --device /dev/sda:/dev/sda ... + ``` + + - `docker-compose.yml` + + ```yaml + services: + netdata: + cap_add: + - SYS_PTRACE + - SYS_ADMIN + - SYS_RAWIO # smartctl + devices: + - "/dev/sda:/dev/sda" + ``` + + > **Multiple Devices**: These examples only show mapping of one device (/dev/sda). You'll need to add additional `--device` options (in docker run) or entries in the `devices` list (in docker-compose.yml) for each storage device you want Netdata's smartctl collector to monitor. + + > **NVMe Devices**: Do not map NVMe devices using this method. Netdata uses a [dedicated collector](https://github.com/netdata/netdata/tree/master/src/go/plugin/go.d/modules/nvme#readme) to monitor NVMe devices. + configuration: + file: + name: go.d/smartctl.conf + options: + description: | + The following options can be defined globally: update_every. + folding: + title: Config options + enabled: true + list: + - name: update_every + description: interval for updating Netdata charts, measured in seconds. Collector might use cached data if less than **Devices poll interval**. + default_value: 10 + required: false + - name: timeout + description: smartctl binary execution timeout. + default_value: 5 + required: false + - name: scan_every + description: interval for discovering new devices using `smartctl --scan`, measured in seconds. Set to 0 to scan devices only once on startup. + default_value: 900 + required: false + - name: poll_devices_every + description: interval for gathering data for every device, measured in seconds. Data is cached for this interval. + default_value: 300 + required: false + - name: device_selector + description: "Specifies a pattern to match the 'info name' of devices as reported by `smartctl --scan --json`." + default_value: "*" + required: false + - name: extra_devices + description: "Allows manual specification of devices not automatically detected by `smartctl --scan`. Each device entry must include both a name and a type. See \"Configuration Examples\" for details." + default_value: "[]" + required: false + - name: no_check_power_mode + description: "Skip data collection when the device is in a low-power mode. Prevents unnecessary disk spin-up." + default_value: standby + required: false + detailed_description: | + The valid arguments to this option are: + + | Mode | Description | + |---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | never | Check the device always. | + | sleep | Check the device unless it is in SLEEP mode. | + | standby | Check the device unless it is in SLEEP or STANDBY mode. In these modes most disks are not spinning, so if you want to prevent a disk from spinning up, this is probably what you want. | + | idle | Check the device unless it is in SLEEP, STANDBY or IDLE mode. In the IDLE state, most disks are still spinning, so this is probably not what you want. | + examples: + folding: + title: Config + enabled: true + list: + - name: Custom devices poll interval + description: Allows you to override the default devices poll interval (data collection). + config: | + jobs: + - name: smartctl + devices_poll_interval: 60 # Collect S.M.A.R.T statistics every 60 seconds + - name: Extra devices + description: | + This example demonstrates using `extra_devices` to manually add a storage device (`/dev/sdc`) not automatically detected by `smartctl --scan`. + config: | + jobs: + - name: smartctl + extra_devices: + - name: /dev/sdc + type: jmb39x-q,3 + troubleshooting: + problems: + list: [] + alerts: [] + metrics: + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: controller + description: These metrics refer to the Storage Device. + labels: + - name: device_name + description: Device name + - name: device_type + description: Device type + - name: model_name + description: Model name + - name: serial_number + description: Serial number + metrics: + - name: smartctl.device_smart_status + description: Device smart status + unit: status + chart_type: line + dimensions: + - name: passed + - name: failed + - name: smartctl.device_ata_smart_error_log_count + description: Device ATA smart error log count + unit: logs + chart_type: line + dimensions: + - name: error_log + - name: smartctl.device_power_on_time + description: Device power on time + unit: seconds + chart_type: line + dimensions: + - name: power_on_time + - name: smartctl.device_temperature + description: Device temperature + unit: Celsius + chart_type: line + dimensions: + - name: temperature + - name: smartctl.device_power_cycles_count + description: Device power cycles + unit: cycles + chart_type: line + dimensions: + - name: power + - name: smartctl.device_read_errors_rate + description: Device read errors + unit: errors/s + chart_type: line + dimensions: + - name: corrected + - name: uncorrected + - name: smartctl.device_write_errors_rate + description: Device write errors + unit: errors/s + chart_type: line + dimensions: + - name: corrected + - name: uncorrected + - name: smartctl.device_verify_errors_rate + description: Device verify errors + unit: errors/s + chart_type: line + dimensions: + - name: corrected + - name: uncorrected + - name: smartctl.device_smart_attr_{attribute_name} + description: Device smart attribute {attribute_name} + unit: '{attribute_unit}' + chart_type: line + dimensions: + - name: '{attribute_name}' + - name: smartctl.device_smart_attr_{attribute_name}_normalized + description: Device smart attribute {attribute_name} normalized + unit: value + chart_type: line + dimensions: + - name: '{attribute_name}' |