summaryrefslogtreecommitdiffstats
path: root/src/go/plugin/go.d/modules/smartctl/metadata.yaml
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-26 08:15:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-26 08:15:20 +0000
commit87d772a7d708fec12f48cd8adc0dedff6e1025da (patch)
tree1fee344c64cc3f43074a01981e21126c8482a522 /src/go/plugin/go.d/modules/smartctl/metadata.yaml
parentAdding upstream version 1.46.3. (diff)
downloadnetdata-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.yaml240
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}'