Specifically, Drive 2, which comes in with $id=1, get overwritten by Drive 12 which comes in with $id=11
Output capture form running the script. You can see that for Disk 2, it actually captures the id.11 entry because its only grabbing the first digit, not both, but then it fails because later regexs capture the 11 properly and now the id doesnt match and so the final output fails, is my guess.
synology_disk,nas_name=Omoikane,disk_name=Drive1 disk_model="SSD840EVO250GB",disk_type="SSD",disk_temp=30,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive2 disk_model=SYNOLOGY-DISK-MIB::diskModel.11=STRING:"HUH728080ALE600",disk_type=SYNOLOGY-DISK-MIB::diskType.11 = STRING: "SATA",disk_temp=SYNOLOGY-DISK-MIB::diskTemperature.11 = INTEGER: 39,disk_status=SYNOLOGY-DISK-MIB::diskStatus.11 = INTEGER: 1
synology_disk,nas_name=Omoikane,disk_name=Drive3 disk_model="HUH721212ALE600",disk_type="SATA",disk_temp=39,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive4 disk_model="HDN726040ALE614",disk_type="SATA",disk_temp=40,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive5 disk_model="SSD840EVO250GB",disk_type="SSD",disk_temp=35,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive6 disk_model="HDN726040ALE614",disk_type="SATA",disk_temp=39,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive7 disk_model="HUH721212ALE600",disk_type="SATA",disk_temp=39,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive8 disk_model="HUH728080ALE600",disk_type="SATA",disk_temp=39,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive9 disk_model="HDN724040ALE640",disk_type="SATA",disk_temp=35,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive10 disk_model="HUH728080ALE604",disk_type="SATA",disk_temp=36,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive11 disk_model="HUH728080ALE600",disk_type="SATA",disk_temp=38,disk_status=1
synology_disk,nas_name=Omoikane,disk_name=Drive12 disk_model="HUH728080ALE600",disk_type="SATA",disk_temp=39,disk_status=1
Omoikane:/volume1/scripts$ snmpwalk -v 2c -c public localhost SYNOLOGY-DISK-MIB::diskID
SYNOLOGY-DISK-MIB::diskID.0 = STRING: "Drive 1"
SYNOLOGY-DISK-MIB::diskID.1 = STRING: "Drive 2"
SYNOLOGY-DISK-MIB::diskID.2 = STRING: "Drive 3"
SYNOLOGY-DISK-MIB::diskID.3 = STRING: "Drive 4"
SYNOLOGY-DISK-MIB::diskID.4 = STRING: "Drive 5"
SYNOLOGY-DISK-MIB::diskID.5 = STRING: "Drive 6"
SYNOLOGY-DISK-MIB::diskID.6 = STRING: "Drive 7"
SYNOLOGY-DISK-MIB::diskID.7 = STRING: "Drive 8"
SYNOLOGY-DISK-MIB::diskID.8 = STRING: "Drive 9"
SYNOLOGY-DISK-MIB::diskID.9 = STRING: "Drive 10"
SYNOLOGY-DISK-MIB::diskID.10 = STRING: "Drive 11"
SYNOLOGY-DISK-MIB::diskID.11 = STRING: "Drive 12"
Omoikane:/volume1/scripts$ snmpwalk -v 2c -c public localhost SYNOLOGY-DISK-MIB::diskModel
SYNOLOGY-DISK-MIB::diskModel.0 = STRING: "SSD 840 EVO 250GB "
SYNOLOGY-DISK-MIB::diskModel.1 = STRING: "HDN724040ALE640 "
SYNOLOGY-DISK-MIB::diskModel.2 = STRING: "HUH721212ALE600 "
SYNOLOGY-DISK-MIB::diskModel.3 = STRING: "HDN726040ALE614 "
SYNOLOGY-DISK-MIB::diskModel.4 = STRING: "SSD 840 EVO 250GB "
SYNOLOGY-DISK-MIB::diskModel.5 = STRING: "HDN726040ALE614 "
SYNOLOGY-DISK-MIB::diskModel.6 = STRING: "HUH721212ALE600 "
SYNOLOGY-DISK-MIB::diskModel.7 = STRING: "HUH728080ALE600 "
SYNOLOGY-DISK-MIB::diskModel.8 = STRING: "HDN724040ALE640 "
SYNOLOGY-DISK-MIB::diskModel.9 = STRING: "HUH728080ALE604 "
SYNOLOGY-DISK-MIB::diskModel.10 = STRING: "HUH728080ALE600 "
SYNOLOGY-DISK-MIB::diskModel.11 = STRING: "HUH728080ALE600 "
Omoikane:/volume1/scripts$ snmpwalk -v 2c -c public localhost SYNOLOGY-DISK-MIB::diskType
SYNOLOGY-DISK-MIB::diskType.0 = STRING: "SSD"
SYNOLOGY-DISK-MIB::diskType.1 = STRING: "SATA"
SYNOLOGY-DISK-MIB::diskType.2 = STRING: "SATA"
SYNOLOGY-DISK-MIB::diskType.3 = STRING: "SATA"
SYNOLOGY-DISK-MIB::diskType.4 = STRING: "SSD"
SYNOLOGY-DISK-MIB::diskType.5 = STRING: "SATA"
SYNOLOGY-DISK-MIB::diskType.6 = STRING: "SATA"
SYNOLOGY-DISK-MIB::diskType.7 = STRING: "SATA"
SYNOLOGY-DISK-MIB::diskType.8 = STRING: "SATA"
SYNOLOGY-DISK-MIB::diskType.9 = STRING: "SATA"
SYNOLOGY-DISK-MIB::diskType.10 = STRING: "SATA"
SYNOLOGY-DISK-MIB::diskType.11 = STRING: "SATA"
Omoikane:/volume1/scripts$ snmpwalk -v 2c -c public localhost SYNOLOGY-DISK-MIB::diskTemperature
SYNOLOGY-DISK-MIB::diskTemperature.0 = INTEGER: 29
SYNOLOGY-DISK-MIB::diskTemperature.1 = INTEGER: 36
SYNOLOGY-DISK-MIB::diskTemperature.2 = INTEGER: 39
SYNOLOGY-DISK-MIB::diskTemperature.3 = INTEGER: 40
SYNOLOGY-DISK-MIB::diskTemperature.4 = INTEGER: 35
SYNOLOGY-DISK-MIB::diskTemperature.5 = INTEGER: 39
SYNOLOGY-DISK-MIB::diskTemperature.6 = INTEGER: 39
SYNOLOGY-DISK-MIB::diskTemperature.7 = INTEGER: 39
SYNOLOGY-DISK-MIB::diskTemperature.8 = INTEGER: 35
SYNOLOGY-DISK-MIB::diskTemperature.9 = INTEGER: 36
SYNOLOGY-DISK-MIB::diskTemperature.10 = INTEGER: 38
SYNOLOGY-DISK-MIB::diskTemperature.11 = INTEGER: 39
Omoikane:/volume1/scripts$ snmpwalk -v 2c -c public localhost SYNOLOGY-DISK-MIB::diskStatus
SYNOLOGY-DISK-MIB::diskStatus.0 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.1 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.2 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.3 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.4 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.5 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.6 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.7 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.8 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.9 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.10 = INTEGER: 1
SYNOLOGY-DISK-MIB::diskStatus.11 = INTEGER: 1
I suspect these lines are not capturing the regexs properly, specifically the $id*, will play around with it
247 if [[ $line == SYNOLOGY-DISK-MIB::diskModel.$id* ]]; then
248 disk_model=${line/"SYNOLOGY-DISK-MIB::diskModel."$id" = STRING: "/}; disk_model=${disk_model// /}
249 fi
250
251 if [[ $line == SYNOLOGY-DISK-MIB::diskType.$id* ]]; then
252 disk_type=${line/"SYNOLOGY-DISK-MIB::diskType."$id" = STRING: "/}
253 fi
254
255 if [[ $line == SYNOLOGY-DISK-MIB::diskStatus.$id* ]]; then
256 disk_status=${line/"SYNOLOGY-DISK-MIB::diskStatus."$id" = INTEGER: "/}
257 fi
258
259 if [[ $line == SYNOLOGY-DISK-MIB::diskTemperature.$id* ]]; then
260 disk_temp=${line/"SYNOLOGY-DISK-MIB::diskTemperature."$id" = INTEGER: "/}
261 fi