мне вполне хватило этого:
from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## Link Down (Zyxel)
##
class Link_Down_Zyxel__Rule(ClassificationRule):
name="Link Down (Zyxel)"
event_class=LinkDown
preference=1000
patterns=[
(r"^source$",r"^SNMP Trap$"),
(r"^1\.3\.6\.1\.6\.3\.1\.1\.4\.1\.0$",r"^1\.3\.6\.1\.6\.3\.1\.1\.5\.3$"),
(r"^profile$",r"^Zyxel\.ZyNOS$"),
(r"^SNMPv2-MIB::snmpTrapOID\.0$",r"^IF-MIB::linkDown$"),
(r"^RFC1213-MIB::ifIndex\.\d+$",r"(?P<interface>.*)"),
]
и этого:
from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## Link Up (Zyxel)
##
class Link_Up_Zyxel__Rule(ClassificationRule):
name="Link Up (Zyxel)"
event_class=LinkUp
preference=1000
patterns=[
(r"^SNMPv2-MIB::snmpTrapOID\.0$",r"^IF-MIB::linkUp$"),
(r"^profile$",r"^Zyxel\.ZyNOS$"),
(r"^1\.3\.6\.1\.6\.3\.1\.1\.4\.1\.0$",r"^1\.3\.6\.1\.6\.3\.1\.1\.5\.4$"),
(r"^source$",r"^SNMP Trap$"),
(r"^RFC1213-MIB::ifIndex\.\d+$",r"(?P<interface>.*)"),
]
все работает и кореллятор отрабатывает.
но повторюсь, что я доливал еще штук 7 всяких MIB'ов.