Uploaded image for project: 'ZABBIX BUGS AND ISSUES'
  1. ZABBIX BUGS AND ISSUES
  2. ZBX-19103

Error in SMART disk discovery.

XMLWordPrintable

    • Team A
    • Sprint 74 (Mar 2021)
    • 1

      Moved from: ZBXNEXT-6339

      Thanks for the answer. I took your advice and understood how it works.

      But I ran into some problem (possibly a bug). Agent 2 version - 5.2.5, OS - Windows 10

      If I use the smartctl disk listing command on the local machine, I get this result:

      c:\zabbix_agent2\userfiles\smartmontools32\bin>smartctl.exe --scan
      /dev/sda -d ata # /dev/sda, ATA device
      /dev/sdb -d ata # /dev/sdb, ATA device
      /dev/csmi0,0 -d ata # /dev/csmi0,0, ATA device
      /dev/csmi0,1 -d ata # /dev/csmi0,1, ATA device
      /dev/csmi0,3 -d ata # /dev/csmi0,3, ATA device

      If you make a request with a module command via zabbix_get, the result is different:

      root@ZABBIX-SKUD:~# zabbix_get -s 10.100.40.108 -p 10150 -k smart.disk.discovery
      [{
       "{#NAME}": "sda",
       "{#DISKTYPE}": "HDD",
       "{#MODEL}": "ST1000DM003-1ER162",
       "{#SN}": "Z4Y1S7B6"
       },{
       "{#NAME}": "sdb",
       "{#DISKTYPE}": "HDD",
       "{#MODEL}": "ST4000DM000-1F2168",
       "{#SN}": "Z300D821"
      }]

      But he may be like that:

      root@ZABBIX-SKUD:~# zabbix_get -s 10.100.40.108 -p 10150 -k smart.disk.discovery
      [{
       "{#NAME}": "csmi0,1",
       "{#DISKTYPE}": "HDD",
       "{#MODEL}": "ST4000DM000-1F2168",
       "{#SN}": "Z300D821"
       },{
       "{#NAME}": "csmi0,0",
       "{#DISKTYPE}": "HDD",
       "{#MODEL}": "ST1000DM003-1ER162",
       "{#SN}": "Z4Y1S7B6"
      }]

      As you can see, the names of the disks change, it happens that they are mixed with each other. As a result, the following errors appear in the data items:

      In the above example, there are only two hard drives, the third item is CD-ROM Drive. The smartctl utility does not always display smart information for both types of drive names.

      In the example described, there are only two hard drives, the third item is CD-ROM Drive. The smartctl utility does not always display smart information for both types of drive names. I faced this problem before the release of the module for zabbix2, when I tried to do disk polling using smartmontools myself. In smartmontool, you can specify the media type when listing drives, for example:

       

      c:\zabbix_agent2\userfiles\smartmontools32\bin>smartctl.exe -j --scan -d
      {
       "json_format_version":[1,0],
       "smartctl":{"version":[7,2],
       "svn_revision":"5155",
       "platform_info":"i686-w64-mingw32-w10-1809(64)",
       "build_info":"(sf-7.2-1)",
       "argv":["smartctl","-j","--scan","-d"],
       "messages":[{
       "string":"=======> ARGUMENT REQUIRED FOR OPTION: d","severity":"error"},{"string":"=======> VALID ARGUMENTS ARE: ata, scsi[+TYPE], nvme[,NSID], sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbprolific, usbsunplus, sntjmicron[,NSID], sntrealtek, intelliprop,N[+TYPE], jmb39x[-q],N[,sLBA][,force][+TYPE], jms56x,N[,sLBA][,force][+TYPE], aacraid,H,L,ID, areca,N[/E], auto, test <=======","severity":"error"}],"exit_status":1}
      }
      c:\zabbix_agent2\userfiles\smartmontools32\bin>smartctl.exe -j --scan -d ata
      {
       "json_format_version":[1,0],
       "smartctl":{
       "version":[7,2],
       "svn_revision":"5155",
       "platform_info":"i686-w64-mingw32-w10-1809(64)",
       "build_info":"(sf-7.2-1)",
       "argv":["smartctl","-j","--scan","-d","ata"],"exit_status":0
       },
       "devices":[
       {"name":"/dev/sda","info_name":"/dev/sda","type":"ata","protocol":"ATA"},
       {"name":"/dev/sdb","info_name":"/dev/sdb","type":"ata","protocol":"ATA"}]
      }
      c:\zabbix_agent2\userfiles\smartmontools32\bin>smartctl.exe -j --scan -d csmi
      {
       "json_format_version":[1,0],
       "smartctl":{
       "version":[7,2],
       "svn_revision":"5155",
       "platform_info":"i686-w64-mingw32-w10-1809(64)",
       "build_info":"(sf-7.2-1)",
       "argv":["smartctl","-j","--scan","-d","csmi"],"exit_status":0},
       "devices":[
       {"name":"/dev/csmi0,0","info_name":"/dev/csmi0,0","type":"ata","protocol":"ATA"},
       {"name":"/dev/csmi0,1","info_name":"/dev/csmi0,1","type":"ata","protocol":"ATA"},
       {"name":"/dev/csmi0,3","info_name":"/dev/csmi0,3","type":"ata","protocol":"ATA"}]
      }
      

       

      But on computers that display multiple drive name formats, you need to manually check for the correct one. Until now, I have not been able to understand by what sign or parameter they can be determined automatically.

            esneiders Eriks Sneiders
            alarionovs Aleksandrs Larionovs (Inactive)
            Team A
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: