SNMP 执行脚本超时

SNMP 执行脚本超时

我有一个奇怪的问题,我想用 Nagios 监控我的 Synology DiskStation NAS。我在其上安装了 SNMP,并在 snmpd.conf 中创建了一个自定义 exec

exec synology_disk_usage  /opt/bin/bash /usr/bin/diskusage.sh

/usr/bin/diskusage.sh 是一个简单的脚本,它运行一个 snmpget 并将其乘以 4 来提供准确的磁盘使用情况:

#!/opt/bin/bash
value=$(snmpget -v 1 -c public localhost HOST-RESOURCES-MIB::hrStorageSize.33 -O Qve)
echo "$value * 4" | bc

当我直接运行脚本时:

bash-3.2# /usr/bin/diskusage.sh 
956787604

当我进行 snmpwalk 时:

bash-3.2# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.8.1  
iso.3.6.1.4.1.2021.8.1.1.1 = INTEGER: 1 
iso.3.6.1.4.1.2021.8.1.2.1 = STRING: "synology_disk_usage" 
iso.3.6.1.4.1.2021.8.1.3.1 = STRING: "/opt/bin/bash" 
Timeout: No Response from localhost

问题肯定出在脚本中的 snmpget 上,当我将其更改为 value=123 时,snmpwalk 中的输出是正确的。尝试将 snmpget 的超时时间设得更长(甚至 20 秒),但仍然出现此问题。

任何帮助都将不胜感激!问候

我的 snmpd.conf

rocommunity  public                                                        
rwcommunity  public                                                        

proc  smbd 30 1                                                            
proc  nmbd 1 1                                                             
proc  sshd 30 1                                                            
proc  syslogd 1 1                                                           
proc  klogd 1 1                                                             
proc  USB_Detect 2 2                                                        

disk  / 5%                                                                  
disk  /share/hdd/data 5%                                                    
disk  /share/hdd/conf 5%                                                    

load  10 8 5                                                                    
file  /var/log/messages 131072                                                  
file  /var/log/samba/log.nmbd 131072                                            
file  /var/log/samba/log.smbd 131072                                            

syslocation  "UNKNOWN LOCATION"                                                 

syscontact  "UNKNOWN CONTACT"                                                   

exec synology_disk_usage  /opt/bin/bash /usr/bin/diskusage.sh

相关内容