v-zhuravlev / zbx-smartctl

Templates and scripts for monitoring disks health with Zabbix and smartmontools
https://share.zabbix.com/storage-devices/smartmontools/smart-monitoring-with-smartmontools-lld
GNU General Public License v3.0
245 stars 127 forks source link

Discovery rules Value should be a JSON object #61

Closed roderik-k closed 6 years ago

roderik-k commented 6 years ago

The discovery script ps1 for Win has a small mistake, its "comma" on line 20 in this case is not valid Json format, I dont know to correct the ps1 script to reduce "," json

thanks

zabbix_get:

{ "data":[

{
    "{#DISKSN}":"xxxxxxxxxx",
    "{#DISKMODEL}":"SanDisk SD8SBAT-256G-1006",
    "{#DISKNAME}":"/dev/sda",
    "{#DISKCMD}":"/dev/sda -data",
    "{#SMART_ENABLED}":"1",
    "{#DISKTYPE}":"1"
},

{
    "{#DISKSN}":"yyyyyyyyyyy",
    "{#DISKMODEL}":"hp PLDS DVDRW  DU8AESH",
    "{#DISKNAME}":"/dev/csmi0,1",
    "{#DISKCMD}":"/dev/csmi0,1 -data",
    "{#SMART_ENABLED}":"0",
    "{#DISKTYPE}":"2"
},

]

v-zhuravlev commented 6 years ago

thanks, will try to fix it ASAP

roderik-k commented 6 years ago

thx for your support, πŸ‘

SimplyKot commented 6 years ago

The same error: `{ "data":[

    {
            "{#DISKSN}":"Y21WK8JC",
            "{#DISKMODEL}":"Maxtor 6Y080M0",
            "{#DISKNAME}":"/dev/sda",
            "{#DISKCMD}":"/dev/sda -data",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"0"
    },

    {
            "{#DISKSN}":"",
            "{#DISKMODEL}":"",
            "{#DISKNAME}":"/dev/sdb",
            "{#DISKCMD}":"/dev/sdb -dscsi",
            "{#SMART_ENABLED}":"0",
            "{#DISKTYPE}":"2"
    },

    {
            "{#DISKSN}":"9QM7W1LD",
            "{#DISKMODEL}":"ST3500320AS",
            "{#DISKNAME}":"/dev/csmi0,1",
            "{#DISKCMD}":"/dev/csmi0,1 -data",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"0"
    },

    {
            "{#DISKSN}":"Z2AMFRRB",
            "{#DISKMODEL}":"ST500DM002-1BD142",
            "{#DISKNAME}":"/dev/csmi0,2",
            "{#DISKCMD}":"/dev/csmi0,2 -data",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"0"
    },

    {
            "{#DISKSN}":"Z3T83S3M",
            "{#DISKMODEL}":"ST500DM002-1BD142",
            "{#DISKNAME}":"/dev/csmi0,3",
            "{#DISKCMD}":"/dev/csmi0,3 -data",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"0"
    },

] }` It's old desktop (controller ICH9R) with intel matrix storage driver

mykolq commented 6 years ago

the same and

C:\Windows\system32>powershell -NoProfile -ExecutionPolicy Bypass -File "C:\zabbix_agent\scripts\smartctl-disks-discovery.ps1"
{
 "data"[

Method invocation failed because [System.Object[]] does not contain a method named 'trim'.
At C:\zabbix_agent\scripts\smartctl-disks-discovery.ps1:45 char:5
+     $disk_sn=$sn.trim()
+     ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

        {
                "{#DISKSN}":"JPW9K0N217HKWE",
                "{#DISKMODEL}":"Hitachi HUA722010CLA630",
                "{#DISKNAME}":"/dev/csmi2,0",
                "{#DISKCMD}":"/dev/csmi2,0 -data",
                "{#SMART_ENABLED}":"1",
                "{#DISKTYPE}":"0"
        },

        {
                "{#DISKSN}":"JPW9J0N216W50C",
                "{#DISKMODEL}":"Hitachi HUA722010CLA630",
                "{#DISKNAME}":"/dev/csmi2,1",
                "{#DISKCMD}":"/dev/csmi2,1 -data",
                "{#SMART_ENABLED}":"1",
                "{#DISKTYPE}":"0"
        },

 ]
}
v-zhuravlev commented 6 years ago

mykolq what powershell and Windowns versions do you have?

mykolq commented 6 years ago

5.1.14393.2248

v-zhuravlev commented 6 years ago

Cannot reproduce. Please provide output of smartctl --scan-open

mykolq commented 6 years ago

sure.

C:\zabbix_agent\smartmontools\bin>smartctl --scan-open
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/csmi2,0 -d ata # /dev/csmi2,0, ATA device
/dev/csmi2,1 -d ata # /dev/csmi2,1, ATA device
v-zhuravlev commented 6 years ago

Ok, found the problem please try the latest commit

mykolq commented 6 years ago

thanks a lot =) it works fine

roderik-k commented 6 years ago

thanks it works very nice, valid json format

roderik-k commented 6 years ago

I have this one host (dell) where something not working correctly: C:\Program Files\smartmontools\bin>smartctl.exe --scan-open /dev/sda -d ata # /dev/sda, ATA device /dev/csmi0,0 -d ata # /dev/csmi0,0, ATA device

valid json - powershell cmd on dell host local: PS C:\zabbix_agent> .\smartctl-disks-discovery.ps1 { "data":[

    {
            "{#DISKSN}":"171616DFD067",
            "{#DISKMODEL}":"Micron 1100 SATA 256GB",
            "{#DISKNAME}":"/dev/sda",
            "{#DISKCMD}":"/dev/sda -data",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"2"
    }

] }

but in zabbix system is not valid json ("comma" error): [root@monitoring ~]# zabbix_get -s 192.168.1.221 -p 10050 -k uHDD.discovery { "data":[

{
    "{#DISKSN}":"171616DFD067",
    "{#DISKMODEL}":"Micron 1100 SATA 256GB",
    "{#DISKNAME}":"/dev/sda",
    "{#DISKCMD}":"/dev/sda -data",
    "{#SMART_ENABLED}":"1",
    "{#DISKTYPE}":"1"
},

] }

v-zhuravlev commented 6 years ago

Sorry! Was trying to fix that in a rush. Now it should work in your case as well.

SimplyKot commented 6 years ago

Still not working... `НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

Имя "ConvertTo-Json" Π½Π΅ распознано ΠΊΠ°ΠΊ имя ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ„Π°ΠΉΠ»Π° скрипта ΠΈΠ»ΠΈ выполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ написания ΠΈΠΌΠ΅Π½ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ, послС Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:104 Π·Π½Π°ΠΊ:46

v-zhuravlev commented 6 years ago

What windows and powershell version do you have?

9 июля 2018 г., в 12:41, SimplyKot notifications@github.com написал(а):

Still not working... `НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

$disks += [ordered] <<<< @{ CategoryInfo : InvalidOperation: (ordered:String) [], RuntimeException FullyQualifiedErrorId : TypeNotFound НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

$disks += [ordered] <<<< @{ CategoryInfo : InvalidOperation: (ordered:String) [], RuntimeException FullyQualifiedErrorId : TypeNotFound НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

$disks += [ordered] <<<< @{ CategoryInfo : InvalidOperation: (ordered:String) [], RuntimeException FullyQualifiedErrorId : TypeNotFound НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

$disks += [ordered] <<<< @{ CategoryInfo : InvalidOperation: (ordered:String) [], RuntimeException FullyQualifiedErrorId : TypeNotFound НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

$disks += [ordered] <<<< @{ CategoryInfo : InvalidOperation: (ordered:String) [], RuntimeException FullyQualifiedErrorId : TypeNotFound НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΈΠΏ [ordered]: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборка, содСрТащая этот Ρ‚ΠΈΠΏ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:93 Π·Π½Π°ΠΊ:24

$disks += [ordered] <<<< @{ CategoryInfo : InvalidOperation: (ordered:String) [], RuntimeException FullyQualifiedErrorId : TypeNotFound Имя "ConvertTo-Json" Π½Π΅ распознано ΠΊΠ°ΠΊ имя ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ„Π°ΠΉΠ»Π° скрипта ΠΈΠ»ΠΈ выполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ написания ΠΈΠΌΠ΅Π½ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ, послС Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ. C:\zabbix\conf\scripts\smartctl-disks-discovery.ps1:104 Π·Π½Π°ΠΊ:46

$json_disks = @{data= $disks}| ConvertTo-Json <<<< -Depth 2 CategoryInfo : ObjectNotFound: (ConvertTo-Json:String) [], CommandNotFoundException FullyQualifiedErrorId : CommandNotFoundException` β€” You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

v-zhuravlev commented 6 years ago

Ok, no fancy PS modules dependencies now, just fixed comma thing :)

SimplyKot commented 6 years ago

Now working great! Thank you!

v-zhuravlev commented 6 years ago

Finally ! πŸ˜†

zetheroo commented 5 years ago

I am experiencing this issue on a Debian Stretch (PVE) system running zabbix_agent 4.0.7

root@proxsat:/etc/zabbix/scripts# ./smartctl-disks-discovery.pl 
{
    "data":[

        {
            "{#DISKMODEL}":"WDC WD1003FZEX-00K3CA0",
            "{#DISKSN}":"WD-WCC6Y0NYF3E7",
            "{#DISKNAME}":"/dev/sda",
            "{#DISKCMD}":"/dev/sda -d sat",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"0"
        },
        {
            "{#DISKMODEL}":"WDC WD1003FZEX-00K3CA0",
            "{#DISKSN}":"WD-WCC6Y4KD46L2",
            "{#DISKNAME}":"/dev/sdb",
            "{#DISKCMD}":"/dev/sdb -d sat",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"0"
        },
        {
            "{#DISKMODEL}":"Samsung SSD 860 PRO 1TB",
            "{#DISKSN}":"S42NNF0K501976K",
            "{#DISKNAME}":"/dev/sdc",
            "{#DISKCMD}":"/dev/sdc -d sat",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"1"
        },
        {
            "{#DISKMODEL}":"Samsung SSD 860 PRO 1TB",
            "{#DISKSN}":"S42NNF0K501910F",
            "{#DISKNAME}":"/dev/sdd",
            "{#DISKCMD}":"/dev/sdd -d sat",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"1"
        }
    ]
}

Also on a FreeNAS system with zabbix_agent 3.2. So far it's only working on the Zabbix Server (Ubuntu 18.04) itself.

Update: On another system (Ubuntu 18.04) with zabbix_agent 4.0.7 it works without a hitch.

[root@hive /etc/zabbix/scripts]# ./smartctl-disks-discovery.pl
{
    "data":[

        {
            "{#DISKMODEL}":"WDC WD30EZRX-00AZ6B0",
            "{#DISKSN}":"WD-WCC070364464",
            "{#DISKNAME}":"/dev/sda",
            "{#DISKCMD}":"/dev/sda -d sat",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"0"
        },
        {
            "{#DISKMODEL}":"WDC WD30EZRX-00DC0B0",
            "{#DISKSN}":"WD-WCC1T0896736",
            "{#DISKNAME}":"/dev/sdb",
            "{#DISKCMD}":"/dev/sdb -d sat",
            "{#SMART_ENABLED}":"1",
            "{#DISKTYPE}":"0"
        }
    ]
}

So far the only systems it works on are Ubuntu systems.

TiratoreA commented 5 years ago

image

I have the same error in Linux

TiratoreA commented 5 years ago

smartctl --scan-open

/dev/sda -d scsi # /dev/sda, SCSI device /dev/sdb -d sat # /dev/sdb [SAT], ATA device /dev/bus/0 -d megaraid,0 # /dev/bus/0 [megaraid_disk_00], SCSI device /dev/bus/0 -d megaraid,1 # /dev/bus/0 [megaraid_disk_01], SCSI device /dev/bus/0 -d megaraid,2 # /dev/bus/0 [megaraid_disk_02], SCSI device /dev/bus/0 -d megaraid,3 # /dev/bus/0 [megaraid_disk_03], SCSI device /dev/bus/0 -d megaraid,4 # /dev/bus/0 [megaraid_disk_04], SCSI device /dev/bus/0 -d megaraid,5 # /dev/bus/0 [megaraid_disk_05], SCSI device /dev/bus/0 -d megaraid,6 # /dev/bus/0 [megaraid_disk_06], SCSI device /dev/bus/0 -d megaraid,7 # /dev/bus/0 [megaraid_disk_07], SCSI device