예: 경보
알람 템플릿 및 관련 항목(SNMP 관리자, 경보 이메일 목록)은 인벤토리 항목과 유사한 방식으로 생성 및 관리됩니다. 이 장에서는 NETCONF 및 YANG API를 통해 Paragon Active Assurance에서 이러한 엔티티를 정의하고 정의된 항목 목록을 검색하기 위한 XML 및 NETCONF 코드를 포함합니다.
경보 이메일 목록
경보 이메일 목록 생성
with manager.connect(host=args.host, port=args.port, username=args.username, password=args.password, hostkey_verify=False) as m: # Create email list in account xml = """<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <accounts xmlns="http://ncc.netrounds.com"> <account> <name>{account}</name> <alarm-email-lists> <alarm-email-list> <name>{name}</name> <addresses>{addresses1}</addresses> <addresses>{addresses2}</addresses> </alarm-email-list> </alarm-email-lists> </account> </accounts> </config>""".format(account=args.netrounds_account, name='email list', addresses1='thranduil@example.com', addresses2='nimrodel@example.com') print m.edit_config(target='running', config=xml)
모든 경보 이메일 목록 검색
with manager.connect(host=args.host, port=args.port, username=args.username, password=args.password, hostkey_verify=False) as m: # Get email lists in account xml = """<accounts xmlns="http://ncc.netrounds.com"> <account> <name>{account}</name> <alarm-email-lists></alarm-email-lists> </account> </accounts>""".format(account=args.netrounds_account) # Convert to ElementTree object ele = to_ele(m.get_config(source='running', filter=('subtree', xml)).data_xml) # Convert back to XML string and print print to_xml(ele, encoding='UTF-8', pretty_print=True)
SNMP 관리자
SNMP 관리자 생성
with manager.connect(host=args.host, port=args.port, username=args.username, password=args.password, hostkey_verify=False) as m: # Create SNMP manager in account (version 2c) xml = """<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <accounts xmlns="http://ncc.netrounds.com"> <account> <name>{account}</name> <snmp-managers> <snmp-manager> <name>{name}</name> <ip>{ip}</ip> <version>{version}</version> <community>{community}</community> </snmp-manager> </snmp-managers> </account> </accounts> </config>""".format(account=args.netrounds_account, version='2c', ip='8.8.8.8', name='snmp manager', community='my community string') # Note: The user can also create a version 3 SNMP manager with the following parameters: # <engine-id>{engine_id}</engine-id> # <user-name>{user_name}</user-name> # <security>{security}</security> # <auth-password>{auth_password}</auth-password> # <priv-password>{priv_password}</priv-password> print m.edit_config(target='running', config=xml)
모든 SNMP 관리자 검색
with manager.connect(host=args.host, port=args.port, username=args.username, password=args.password, hostkey_verify=False) as m: # Get SNMP managers in account xml = """<accounts xmlns="http://ncc.netrounds.com"> <account> <name>{account}</name> <snmp-managers></snmp-managers> </account> </accounts>""".format(account=args.netrounds_account) # Convert to ElementTree object ele = to_ele(m.get_config(source='running', filter=('subtree', xml)).data_xml) # Convert back to XML string and print print to_xml(ele, encoding='UTF-8', pretty_print=True)
경보 템플릿
Alarm 템플릿 생성
# Note: This example requires existing an SNMP manager and alarm email list in order to work with manager.connect(host=args.host, port=args.port, username=args.username, password=args.password, hostkey_verify=False) as m: # Create alarm template in account xml = """<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <accounts xmlns="http://ncc.netrounds.com"> <account> <name>{account}</name> <alarm-templates> <alarm-template> <name>{name}</name> <email>{email}</email> <snmp>{snmp}</snmp> <action>{action}</action> <window-size>{window_size}</window-size> <interval>{interval}</interval> <send-only-once>{send_only_once}</send-only-once> <snmp-trap-per-stream>{snmp_trap_per_stream}</snmp-trap-per-stream> <thr-es-critical>{thr_es_critical}</thr-es-critical> <thr-es-critical-clear>{thr_es_critical_clear}</thr-es-critical-clear> <thr-es-major>{thr_es_major}</thr-es-major> <thr-es-major-clear>{thr_es_major_clear}</thr-es-major-clear> <thr-es-minor>{thr_es_minor}</thr-es-minor> <thr-es-minor-clear>{thr_es_minor_clear}</thr-es-minor-clear> <thr-es-warning>{thr_es_warning}</thr-es-warning> <thr-es-warning-clear>{thr_es_warning_clear}</thr-es-warning-clear> </alarm-template> </alarm-templates> </account> </accounts> </config>""".format(account=args.netrounds_account, name='template', email='email list', snmp='snmp manager', action='some action string', window_size=60, interval=300, send_only_once='false', snmp_trap_per_stream='false', thr_es_critical=9, thr_es_critical_clear=8, thr_es_major=7, thr_es_major_clear=6, thr_es_minor=5, thr_es_minor_clear=4, thr_es_warning=3, thr_es_warning_clear=2) # Note: The user can also provide additional parameters: # <no-data-severity>{no_data_severity}</no-data-severity> # <no-data-timeout>{no_data_timeout}</no-data-timeout> print m.edit_config(target='running', config=xml)
모든 경보 템플릿 검색
with manager.connect(host=args.host, port=args.port, username=args.username, password=args.password, hostkey_verify=False) as m: # Get alarm templates in account xml = """<accounts xmlns="http://ncc.netrounds.com"> <account> <name>{account}</name> <alarm-templates></alarm-templates> </account> </accounts>""".format(account=args.netrounds_account) # Convert to ElementTree object ele = to_ele(m.get_config(source='running', filter=('subtree', xml)).data_xml) # Convert back to XML string and print print to_xml(ele, encoding='UTF-8', pretty_print=True)