I'm using Zabbix Agent 2 7.0 LTS to monitor the SMART attributes of a server that uses SATA, SAS (using an HBA, not a RAID card), and NVME disks:
The SMART plugin on SAS drive reports only a few attribute (temperature, power on time, serial), for example:
As you can see the model_name, firmware_version are not parsed correctly.
Using smartctl you can extract much more information for example: scsi_grown_defect_list, scsi_vendor, scsi_product.
This is the output of smartctl on a SAS drive:
I imagine that without touching the source code of the Zabbix agent binary, it’s not possible to extract or map any additional information.
Code:
/dev/sda -d sat # /dev/sda [SAT], ATA device /dev/sdb -d sat # /dev/sdb [SAT], ATA device /dev/sdc -d scsi # /dev/sdc, SCSI device /dev/sdd -d scsi # /dev/sdd, SCSI device /dev/sde -d scsi # /dev/sde, SCSI device /dev/sdf -d scsi # /dev/sdf, SCSI device /dev/sdg -d scsi # /dev/sdg, SCSI device /dev/sdh -d scsi # /dev/sdh, SCSI device /dev/sdi -d scsi # /dev/sdi, SCSI device /dev/sdj -d scsi # /dev/sdj, SCSI device /dev/nvme0 -d nvme # /dev/nvme0, NVMe device /dev/nvme1 -d nvme # /dev/nvme1, NVMe device
Code:
{
"critical_warning": 0,
"disk_type": "hdd",
"error": "",
"exit_status": 0,
"firmware_version": "",
"media_errors": 0,
"model_name": "",
"percentage_used": 0,
"power_on_time": 35592,
"self_test_in_progress": null,
"self_test_passed": null,
"serial_number": "ZCXXXXXXX",
"temperature": 33
}
Using smartctl you can extract much more information for example: scsi_grown_defect_list, scsi_vendor, scsi_product.
This is the output of smartctl on a SAS drive:
Code:
"device": {
"name": "/dev/sdd",
"info_name": "/dev/sdd",
"type": "scsi",
"protocol": "SCSI"
},
"scsi_vendor": "SEAGATE",
"scsi_product": "ST4000NM0125",
"scsi_model_name": "SEAGATE ST4000NM0125",
"scsi_revision": "E004",
"scsi_version": "SPC-4",
"user_capacity": {
"blocks": 7814037168,
"bytes": 4000787030016
},
"logical_block_size": 512,
"physical_block_size": 4096,
"scsi_lb_provisioning": {
"name": "fully provisioned",
"value": 0,
"management_enabled": {
"name": "LBPME",
"value": 0
},
"read_zeros": {
"name": "LBPRZ",
"value": 0
}
},
"rotation_rate": 7200,
"form_factor": {
"scsi_value": 2,
"name": "3.5 inches"
},
"logical_unit_id": "0x5000c500af5e42df",
"serial_number": "ZCXXXXXXX",
"device_type": {
"scsi_terminology": "Peripheral Device Type [PDT]",
"scsi_value": 0,
"name": "disk"
},
"scsi_transport_protocol": {
"name": "SAS (SPL-4)",
"value": 6
},
"smart_support": {
"available": true,
"enabled": true
},
"temperature_warning": {
"enabled": true
},
"smart_status": {
"passed": true
},
"temperature": {
"current": 33,
"drive_trip": 60
},
"power_on_time": {
"hours": 35635,
"minutes": 30
},
"scsi_start_stop_cycle_counter": {
"year_of_manufacture": "2020",
"week_of_manufacture": "05",
"specified_cycle_count_over_device_lifetime": 10000,
"accumulated_start_stop_cycles": 111,
"specified_load_unload_count_over_device_lifetime" : 300000,
"accumulated_load_unload_cycles": 3229
},
"scsi_grown_defect_list": 0,
"scsi_error_counter_log": {
"read": {
"errors_corrected_by_eccfast": 475614648,
"errors_corrected_by_eccdelayed": 0,
"errors_corrected_by_rereads_rewrites": 0,
"total_errors_corrected": 475614648,
"correction_algorithm_invocations": 0,
"gigabytes_processed": "18666.797",
"total_uncorrected_errors": 0
},
"write": {
"errors_corrected_by_eccfast": 0,
"errors_corrected_by_eccdelayed": 0,
"errors_corrected_by_rereads_rewrites": 0,
"total_errors_corrected": 0,
"correction_algorithm_invocations": 0,
"gigabytes_processed": "26268.534",
"total_uncorrected_errors": 0
},
"verify": {
"errors_corrected_by_eccfast": 21839402,
"errors_corrected_by_eccdelayed": 0,
"errors_corrected_by_rereads_rewrites": 0,
"total_errors_corrected": 21839402,
"correction_algorithm_invocations": 0,
"gigabytes_processed": "34.829",
"total_uncorrected_errors": 0
}
}
}
Comment