O script nagios corresponde a 3 das suas 4 condições de retorno, e é por isso que ele retorna OK.
De documentação do check_snmp :
-r, --ereg=REGEX
Return OK state (for that OID) if extended regular expression REGEX matches
Seu script retorna o seguinte (editado por mim para breve):
"CRITICAL: [...] p2=DEGRADED p0,p1,p3=OK]"
O check_snmp
vê p0, p1, p3 OK e devolve OK
, ignorando p2
Eu tentaria sem o -r "OK"
e confirme se você obtém os resultados esperados. Se o resultado de retorno incorreto persistir, eu experimentaria com --invert-search
:
--invert-search
Invert search result (CRITICAL if found)