Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

Synology status

Rating
54 votes
Favoured:
10
Current Version
2.5
Last Release Date
2016-12-07
Compatible With
  • Nagios 1.x
  • Nagios 2.x
  • Nagios 3.x
  • Nagios 4.x
  • Nagios XI
  • Nagios Fusion
Hits
103288
Files:
FileDescription
check_snmp_synologynagios plugin
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
Synology status
this plugin check the health of your Synology NAS
- System status (Power, Fans)
- Disks status
- RAID (Volume) status
- DSM update status
- Temperatures
- Storage percentage of use
- UPS informations
New version ! 07.12.2016

This script check:
- System status (Power and Fans)
- Disks status
- RAID status
and now also:
- Use SNMPv2 or SNMPv3
- Check for DSM update
- Check a NAS with 52 disks max
- Check temperature
- Check percentage of use of your storages
- Display UPS information


./check_snmp_synology --help

usage: ./check_snmp_synology [OPTION] -u [user] -p [pass] -h [hostname]
options:
-u [snmp username] Username for SNMPv3
-p [snmp password] Password for SNMPv3

-2 [community name] Use SNMPv2 (no need user/password) & define community name (ex: public)

-h [hostname or IP](:port) Hostname or IP. You can also define a different port

-W [warning temp] Warning temperature (for disks & synology) (default 50)
-C [critical temp] Critical temperature (for disks & synology) (default 60)

-w [warning %] Warning storage usage percentage (default 80)
-c [critical %] Critical storage usage percentage (default 95)

-i Ignore DSM updates
-U Show informations about the connected UPS (only information, no control)
-v Verbose - print all informations about your Synology


examples:
./check_snmp_synology -u admin -p 1234 -h nas.intranet
./check_snmp_synology -u admin -p 1234 -h nas.intranet -v
./check_snmp_synology -2 public -h nas.intranet
./check_snmp_synology -2 public -h nas.intranet:10161
Reviews (38)
I am getting an error trying to run this on a NAS with 12 disks.

./check_snmp_synology: line 227: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 288: [: : integer expression expected
./check_snmp_synology: line 324: 36
37
38
39
40
51
52
53
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
/tmp
/run
/dev/shm
/sys/fs/cgroup
/run/cgmanager/fs
/volume2
/volume1
/volume3
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
502328
502328
502328
1
25
1449963710
959068290
959019398
308048
5815
16191
1
0
0
22540
601869912
30464948 * 100 / 36
37
38
39
40
51
52
53
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
/tmp
/run
/dev/shm
/sys/fs/cgroup
/run/cgmanager/fs
/volume2
/volume1
/volume3
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
596382
502328
502328
502328
1
25
1449963710
959068290
959019398
5815
16191
1
0
0
22540
601869912
30464948: syntax error in expression (error token is "37
38
39
40
51
52
53
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
/tmp
/run
/dev/shm
/sys/fs/cgroup
/run/cgmanager/fs
/volume2
/volume1
/volume3
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
502328
502328
502328
1
25
1449963710
959068290
959019398
308048
5815
16191
1
0
0
22540
601869912
30464948 * 100 / 36
37
38
39
40
51
52
53
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
.1.3.6.1.2.1.25.2.1.4
/tmp
/run
/dev/shm
/sys/fs/cgroup
/run/cgmanager/fs
/volume2
/volume1
/volume3
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
4096 Bytes
596382
502328
502328
502328
1
25
1449963710
959068290
959019398
5815
16191
1
0
0
22540
601869912
30464948")
The plugin works very fine - but since we've been updated to DSM 6.2-23739 on our RS3614xs+ we get the following message:
./check_snmp_synology -2 public -h 192.168.x.x

CRITICAL - Problem with SNMP request, check user/password/host

SNMP Community is right and snmpwalk works.
Any idea?
bysteve, June 13, 2018
I'd be interested in your code changes fledorze, removing/ignoring elements may help with the some of the timeout issues.
byfledorze, June 6, 2018
I added more generic options -r and -e to include/exclude elements, in replacement of -i option that allows to ignore DSM updates only. Tell me if you want the code.
byJSYOR, May 18, 2018
Could someone please write a step by step guide to get this installed on a nagios core ubuntu server please thanks.
byMrZylinder, May 16, 2018
Quite a nice plugin to use and works fine. I modified it by adding perfdata for system temperature, volume usage, cpu usage and mem usage aswell additional arguments for cpu und mem usage thresholds.
byCrisis, February 15, 2018
It works perfectly!! Thank you a lot!
byPiotrM89, December 16, 2017
I suggest to change snmpwalk to snmpbulkwalk in script. An execution of the script will be a much faster.
Not sure if this is still any use to anyone but I fixed the missing volume disk space bug by removing a $ symbol from line 317.

Original Line:

storageID[$i]=$(echo "$syno_diskspace" | grep "= "?/${storageName[$i]}$"?" | cut -d "=" -f1 | rev | cut -d "." -f1 | rev)

Replaced with:

storageID[$i]=$(echo "$syno_diskspace" | grep "= "?/${storageName[$i]}"?" | cut -d "=" -f1 | rev | cut -d "." -f1 | rev)

I am not sure if this will break anything else but it seems to be doing what I need it to now.
For anybody else who has a problem with the correct volume usage reporting, open the script and replace the line 317:

storageID[$i]=$(echo "$syno_diskspace" | grep "= "?/${storageName[$i]}$"?" | cut -d "=" -f1 | rev | cut -d "." -f1 | rev)

with this:

storageID[$i]=$(echo "$syno_diskspace" | grep "= "/${storageName[$i]}"" | cut -d "=" -f1 | rev | cut -d "." -f1 | rev)

and you should now get the correct volume usage (in percent) and the correct return state (depending on your -w and -c parameters).
Volume free space is not working. Status is always Normal. We are using this call:
check_snmp_synology -u my_user -p my_pass -h my_host -v -i

Also I tried call like this: check_snmp_synology -u my_user -p my_pass -h my_host -w 85 -c 90 -v -i

verbose output:
Synology model: "RS3617xs+"
DSM Version: "DSM 6.1-15152"
DSM update: Available
System Status: Normal
Temperature: 32 (Normal)
Power Status: Normal
System Fan Status: Normal
CPU Fan Status: Normal
Number of disks: 12
"Disk 1" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:29
"Disk 2" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:27
"Disk 3" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:27
"Disk 4" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:27
"Disk 5" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:30
"Disk 6" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:28
"Disk 7" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:27
"Disk 8" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:28
"Disk 9" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:31
"Disk 10" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:28
"Disk 11" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:28
"Disk 12" (model: "WD4001FFSX-68JNUN0 ") status:Normal temperature:28
Number of RAID volume: 1
"Volume 1" status:Normal

OK - Synology "RS3617xs+ is in good health

NAS storage is on 92%.

Also I check on 4 NAS different models:
Synology model: "RS3617xs+"
Synology model: "RS2414+"
Synology model: "RS2212+"
Synology model: "RS3412xs"

With 2 different DSM:
DSM Version: "DSM 6.1-15152"
DSM Version: "DSM 6.1-15047"

Did some one find solution for this?
We've been using this for a while, but we've just noticed that the volume space doesn't seem to raise warnings (just status:Normal) :
Here's the verbose output.

Synology model: "RS3614xs+"
Synology s/n: "1620M9N181700"
DSM Version: "DSM 6.1-15152"
DSM update: Available
System Status: Normal
Temperature: 42 (Normal)
Power Status: Normal
System Fan Status: Normal
CPU Fan Status: Normal
Number of disks: 12
"Disk 1" (model: "ST6000VN0001-1SF17Z ") status:Initialized temperature:41
"Disk 2" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:42
"Disk 3" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:42
"Disk 4" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:40
"Disk 5" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:42
"Disk 6" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:42
"Disk 7" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:42
"Disk 8" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:41
"Disk 9" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:41
"Disk 10" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:42
"Disk 11" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:42
"Disk 12" (model: "ST6000VN0001-1SF17Z ") status:Normal temperature:40
Number of RAID volume: 2
"Volume 1" status:Normal
"Disk Group 1" status:Normal

WARNING - Synology "RS3614xs+" (s/n: "1620M9N181700", "DSM 6.1-15152"), DSM update available

According to the web interface of the device, volume on is 93% full. Any ideas?
byuberjew666, October 4, 2017
First of all, fantastic plugin. Very extensive.

However I found an issue with it. When polling a device running DSM 6.1, it returns integer expression expected.
Breaking the script down, the syno variable isn't populated.

Basically, snmpget times out. This appears to be due to amount of OIDs I'm querying. There is 12 disks in the system so there is around 50+ oids. I kept rerunning snmpget, removing a oid until it returned data and it was around 42.

Using Ubuntu 16.04, snmpget 5.7.2
byRicos-web, December 7, 2016
1 of 1 people found this review helpful
Problems are fixed fast.
byKRVS, October 13, 2016
1 of 1 people found this review helpful
Hello!

I have some problems with this script, it seems something it's wrong, shows me the advise: "(No output on stdout) stderr: /usr/local/nagios/libexec/check_snmp_synology: line 323: 53"

What's wrong?

Thanks!!!
Owner's reply

Hello,
It's probably cause by the Docker plugin. Can you try to uninstalled it ?

When i use the script with your command and snmpv3 and my DS411 with DSM 6.0.2 there comes the following error:
"CRITICAL - Problem with SNMP request"

try many things, but i think its a bug in your check_snmp_synology.

And yes, i use your newest version.
Owner's reply

Can you contact me by mail please.
We will find a solution ;)

byentnx-01, December 2, 2015
1 of 1 people found this review helpful
Hi,

is there any way to change the Port from 161 to another one?

Regards.
Owner's reply

Yes , you can specify the port like that:
./check_snmp_synology -2 public -h 192.168.100.12:10161

I added a comment in the help

byexensio-rori, October 12, 2015
0 of 1 people found this review helpful
The plugin works great!

I had some requirements which the plugin didn't meet. Therefore, I have added some minor improvements such as separated command line options for DSM Update and enable performance data, etc.

The author didn't respond to my mail. Therefore, I have published my version on GitHub, see: https://github.com/exensio/synology-nagios-plugin
byaurelien.clavier, July 21, 2015
1 of 1 people found this review helpful
Thank you for this plugin ;)

I modify it in order to ignore DSM updates. It works perfectly.

These are the lines for add option -I to ignore DSM updates :
...
case $DSMUpgradeAvailable in
"1") DSMUpgradeAvailable="Available"; healthWarningStatus=1; updateMessage="DSM update available";;
"2") DSMUpgradeAvailable="Unavailable"; healthWarningStatus=0; updateMessage="Update unavailable";;
"3") DSMUpgradeAvailable="Connecting"; healthWarningStatus=0; updateMessage="Update in progress";;
"4") DSMUpgradeAvailable="Disconnected"; healthWarningStatus=1; updateMessage="DSM Update Disconnected";;
"5") DSMUpgradeAvailable="Others"; healthWarningStatus=1; updateMessage="Check DSM Update";;
esac

if [ "$ignoreUpdate" = "yes" ] ; then
healthWarningStatus=0;
healthString="$healthString, Info : $updateMessage";
else
healthString="$healthString, $updateMessage";
fi
...

and on the last lines, I modify the output for Ok status :
...
if [ "$healthCriticalStatus" = "0" ] && [ "$healthWarningStatus" = "0" ] ; then
echo "OK - $healthString Appliance is in good health"
exit 0
fi
...
Owner's reply

I added directy on the script! Thanks

byrct, May 17, 2015
Hello,
Your plugin works rather fine but I have a problem: when I mount an USB drive. The USB drive is mounted in the /volume1/usbdrive and the script fails.

We have a recurring warning from your plugin saying that DSM update is disconnected. I think that's because Synology has its servers down. People can have the Syno out of network so I think it will be nice to be able to disable this warning.

Another request: will it be possible to only select some tests? For example I will be interested in no dsm update tests or different volumes warning/critical levels...

Thank you for the plugin
Page 1 of 2