Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

상관 이벤트를 사용하여 이벤트 정책 트리거

둘 이상의 상관 이벤트가 발생할 때 실행되도록 이벤트 정책을 구성합니다.

상관 관계가 있는 이벤트 이해

단일 이벤트에서 트리거되도록 이벤트 정책을 구성하는 것 외에도 두 개 이상의 이벤트를 상호 연결하는 이벤트 정책을 구성할 수도 있습니다. 이벤트가 지정된 대로 발생하면 이벤트 정책이 구성된 작업을 실행합니다. 예를 들어, UI_COMMIT_PROGRESS 이벤트 후 5분 이내에 UI_CONFIGURATION_ERROR 이벤트가 생성될 때 특정 운영 모드 명령을 실행할 수 있습니다. 또 다른 예로, DCD_INTERFACE_DOWN 이벤트가 60초 간격 내에 두 번 생성되는 경우 특정 파일을 업로드할 수 있습니다.

이벤트 정책에서 이벤트를 상호 연관시키려면 계층 수준에서 다음 문을 포함합니다.[edit event-options]

문에서 events 여러 트리거 이벤트를 나열할 수 있습니다. 이벤트 정책에서 이벤트를 정의하는 방법에 대한 자세한 내용은 이벤트 정책 및 이벤트 알림 개요를 참조하십시오. 이러한 이벤트를 다른 이벤트와 상호 연관시키려면 및/또는 문을 구성 within 합니다.attributes-match

명령 within 문은 트리거 이벤트 이전에 지정된 시간 간격 내에 발생해야 하는(또는 발생하지 않아야 하는) 상관 이벤트를 정의합니다. attributes-match 이 문을 통해 시스템은 이벤트의 속성을 고려할 수 있습니다. attributes-match 이 문은 이벤트의 속성을 다른 이벤트의 속성 또는 정규식과 상호 연관시킬 수 있습니다. 이벤트 정책은 지정된 조건이 충족되는 경우에만 문에 then 구성된 작업을 실행합니다. 다음 섹션에서는 문을 사용하는 방법에 대해 설명합니다.

시간 간격별 이벤트 상관관계

트리거 이벤트가 다른 이벤트 이후 지정된 시간 간격 내에 발생하는 경우에만 실행되도록 이벤트 정책을 구성할 수 있습니다. 이벤트를 상호 연관시키려면 문을 구성합니다. within seconds events 명령문에 within seconds events 정의된 상관 이벤트 중 하나라도 첫 번째 events 명령문에 정의된 트리거 이벤트 이전에 구성된 시간(초) 내에 발생하면 정책이 실행됩니다. 초 수는 60에서 604,800까지입니다. 이 명령문은 not 트리거 이벤트 이전에 구성된 시간 간격 내에 상관 이벤트가 발생하지 않는 경우에만 정책이 실행되도록 합니다.

예를 들어, 트리거 이벤트 중 event3event4하나가 발생하면 디바이스 event5event1 event2는 다음 정책을 실행합니다.

여러 이벤트 후 지정된 시간 간격 내에 트리거 이벤트가 발생할 때만 실행되도록 이벤트 정책을 구성하려면 별도의 within 문을 구성해야 합니다. 각 within 문은 서로 다른 시간 간격을 사용해야 합니다. 여러 within 문을 구성할 때, 모든 문에는 정책이 트리거될 해당 시간 프레임 내에서 발생하는 일치하는 이벤트가 하나 있어야 합니다. 따라서 시스템은 논리적 AND를 사용하여 문을 평가합니다.

예를 들어, 트리거 이벤트 , event4event5또는 event6중 하나가 이후 60초 event1 이내에 발생하고 또는 event3이후 50초 event2 이내에 발생하는 경우 디바이스는 다음 정책을 실행합니다.

이벤트 정책을 구성하여 시간 간격별로 이벤트를 상호 연관시키려면 다음을 수행합니다.

  1. 하나 이상의 트리거 이벤트를 구성합니다.

  2. 트리거 이벤트 이전과 지정된 시간 간격 내에서 발생해야 하거나 발생하지 않아야 하는 상관 이벤트를 구성합니다.

    • 트리거 이벤트 전에 지정된 시간 간격 내에 상관 이벤트가 발생해야 하도록 지정하려면 키워드를 not 생략합니다.

    • 트리거 이벤트 전에 지정된 시간 간격 내에 상관 이벤트가 발생하지 않도록 지정하려면 키워드를 포함합니다.not

    • 트리거 이벤트 전에 지정된 시간 간격 내에 여러 상관 이벤트가 발생해야 하도록 지정하려면 각각 다른 시간 간격을 정의하는 여러 within 문을 포함합니다.

  3. 조건이 충족될 경우 이벤트 정책이 실행하는 작업을 구성합니다.

또한 이 within 문은 트리거 이벤트가 주어진 시간 간격 내에서 특정 횟수만큼 발생할 때 이벤트 정책 실행을 지원합니다. 자세한 내용은 이벤트 수에 따라 이벤트 정책 트리거 단원을 참조하십시오.

이벤트 속성에 기반한 이벤트 상관관계

많은 이벤트에는 이벤트 정책에서 참조할 수 있는 하나 이상의 속성이 있습니다. 예를 들어, 이벤트에 대한 다음 시스템 로그 메시지를 고려하십시오.UI_COMMIT

일반 UI_COMMIT 이벤트 메시지는 입니다. User 'username' requested 'command' operation (comment: message)

여기에는 , command, 및 message의 세 가지 속성이 username있습니다.

attributes-match 이 문을 사용하면 비교 matchesstarts-with 를 사용하여 equals이벤트 속성을 원하는 값과 비교함으로써 보다 정확한 이벤트 정책 일치를 구성할 수 있습니다. 명령문은 다음과 같이 이벤트를 상관 관계시킵니다.

  • event1.attribute-name equals event2.attribute-name—attibute와 event2 속성의 값이 동일한 경우에만 event1 정책을 실행합니다.

  • event.attribute-name matches regular-expression- 속성 값이 주어진 정규식과 일치하는 경우에만 event 정책을 실행합니다. 자세한 내용은 정규식을 사용하여 정책을 트리거하는 이벤트 집합 구체화를 참조하십시오.

  • event1.attribute-name starts-with event2.attribute-name- 속성 값이 속성 값 event2 으로 시작하는 경우에만 event1 정책을 실행합니다.

문에서 attributes-match 참조되는 이벤트는 트리거 이벤트 또는 이벤트 정책의 문에 포함된 상관 이벤트여야 합니다.within 문이 attributes-match 다음과 같은 경우 하나 이상의 within 문을 정의해야 합니다.

  • 또는 starts-with 비교 포함 equals

  • 트리거 이벤트가 아닌 이벤트에 대한 절을 포함하는 비교를 포함 matches 합니다.

문에는 attributes-match 여러 equals개의 비교 matches문이 starts-with 포함될 수 있습니다. 시스템은 논리 AND 연산자를 사용하여 여러 비교 문을 평가합니다. 따라서 이벤트 정책을 실행하려면 모든 조건이 attributes-match true로 평가되어야 합니다.

예를 들어, 여러 개의 실시간 성능 모니터링(RPM) 프로브를 구성하고 이러한 프로브 중 하나가 소유자 이름을 Connectivity 사용하고 라는 테스트를 Management가지고 있다고 가정해 보겠습니다. 이벤트 정책에서 프로브의 ping_test_failed 이벤트를 참조하는 경우 이벤트를 생성한 RPM 프로브 테스트를 구별할 수 있습니다. 다음 이벤트 정책은 이벤트 test-ownertest-name 속성과 ping_test_failed 일치하므로 이벤트 정책은 올바른 프로브에 대해서만 트리거됩니다. 이벤트 정책은 두 일치 조건이 모두 true인 경우에만 실행됩니다. 예제에 대한 자세한 설명은 예: 시간 간격 및 이벤트 속성을 기반으로 이벤트 상관관계를 참조하십시오.

마찬가지로 다음 이벤트 정책은 속성이 있는 비표준 SYSTEM 이벤트에서 트리거됩니다. messages 문에서 attributes-match 이벤트 정책을 호출하려면 모든 matches 문이 true여야 합니다.

문 내에서 attributes-match 이벤트 정책 변수를 사용하여 트리거 이벤트 속성과 상관 이벤트 속성을 구분할 수 있습니다. 트리거 이벤트는 계층 수준에서 구성하는 이벤트입니다. [edit event-options policy policy-name events] 이중 달러 기호($$) 표기법은 정책을 트리거하는 이벤트를 나타내며 {$$.attribute-name} 트리거 이벤트의 속성 값으로 해결됩니다. 상관 이벤트의 경우, 이벤트 이름($event) 표기법이 있는 단일 달러 기호는 이벤트 이름과 일치하는 가장 최근 이벤트를 나타내며 {$event.attribute-name} 해당 이벤트와 연관된 속성의 값으로 해석됩니다.

예를 들어, 다음 이벤트 정책은 5분 이내에 4개 이상의 커밋이 수행되고 하나 이상의 상관 이벤트의 사용자 이름이 트리거 이벤트의 사용자 이름과 동일한 경우 문 아래의 then 작업을 실행합니다.

특정 이벤트에 대해 참조할 수 있는 속성을 찾는 방법에는 여러 가지가 있습니다. 예를 들면 다음과 같습니다.

  • 시스템 로그 탐색기 도구를 사용합니다.

  • CLI에서 help syslog event 운영 모드 명령을 사용합니다.

  • 속성을 구성할 때 구성 모드에서 상황에 맞는 도움말을 사용합니다.

시스템 로그 탐색기 애플리케이션을 사용하면 지정된 운영 체제 및 릴리스에 대한 표준 시스템 로그 메시지를 검색할 수 있습니다. 메시지 세부 정보에는 해당 이벤트에 대해 참조할 수 있는 속성이 포함됩니다. 또한 속성 필드에는 해당 이벤트에 대한 모든 속성이 나열됩니다.

CLI help syslog event 에서 운영 모드 명령은 주어진 이벤트에 대해 참조할 수 있는 속성 목록도 표시합니다. 명령 출력에는 꺾쇠 괄호(<>)에 이벤트 속성이 표시됩니다. 다음 출력은 이벤트에 ACCT_ACCOUNTING_SMALL_FILE_SIZE , file-size, 및 record-sizefilename세 가지 속성이 있음을 보여줍니다.

참고:

파이프(|) 기호를 사용하여 검색 출력을 필터링할 수 있습니다. 파이프 기호 사용에 대한 자세한 내용은 CLI 사용자 가이드를 참조하십시오.

다음 예와 같이 계층 수준에서 [edit event-options policy policy-name] 구성 모드 명령을 실행 set attributes-match event? 하여 이벤트 속성을 볼 수도 있습니다.

참고:

set 명령에서 이벤트 이름과 물음표(?) 사이에는 공백이 없습니다.

이벤트 정책에서 트리거 및 상관 관계 이벤트를 나타내는 방법

이벤트 스크립트 인수 및 명령문과 execute-commands 같은 지원되는 이벤트 정책 문에서 이벤트 정책 변수를 사용하여 트리거 이벤트상관 이벤트를 구분할 수 있습니다. 계층 수준에서 다음 문에서 트리거 이벤트 및 상관 이벤트를 구성합니다.[edit event-options policy policy-name]

  • 트리거링 이벤트 - 문에 events 구성됩니다
  • 상관 이벤트 - 문에 within seconds events 구성됩니다

다음 형식의 이벤트 정책 변수를 사용하여 트리거 및 상관 관계 이벤트를 나타낼 수 있습니다.

  • {$$.attribute-name}- 이중 달러 기호($$) 표기법은 정책을 트리거하는 이벤트를 나타냅니다. 속성 이름과 결합되면 변수는 트리거 이벤트와 연관된 속성의 값으로 해결됩니다. 예를 들어, {$$.interface-name} 트리거 이벤트와 연관된 인터페이스 이름으로 해결됩니다.

  • {$event.attribute-name}—이벤트 이름($event) 표기법이 있는 단일 달러 기호는 와 일치 event하는 가장 최근의 이벤트를 나타냅니다. 속성 이름과 결합되면 변수는 해당 이벤트와 연관된 속성의 값으로 확인됩니다. 예를 들어, 정책이 명령을 실행 show interfaces {$COSD_CHAS_SCHED_MAP_INVALID.interface-name} 하면 변수는 {$COSD_CHAS_SCHED_MAP_INVALID.interface-name} 이벤트 프로세스에 의해 캐시된 가장 최근 COSD_CHAS_SCHED_MAP_INVALID 이벤트와 관련된 인터페이스 이름으로 해결됩니다.

  • {$*.attribute-name}—별표($*) 표기법이 있는 달러 기호는 상관 이벤트와 일치하는 가장 최근 이벤트를 나타냅니다. 변수는 정책 구성에 지정된 상관 이벤트와 일치하는 가장 최근 이벤트와 연관된 속성 값으로 해결됩니다.

이벤트 정책에서 이벤트 정책 변수를 사용하여 특정 이벤트를 참조할 수 있습니다. 다음 이벤트 정책을 고려하십시오.

명령에서 show interfaces {$$.interface-name} event e1, e2or e3 의 속성 값이 interface-name 변수를 {$$.interface-name} 대체합니다.

명령에서 show interfaces {$e4.interface-name} 가장 최근 e4 이벤트의 속성 값이 interface-name 변수를 {$e4.interface-name} 대체합니다.

명령에서 show interfaces {$*.interface-name} 가장 최근e4의 , e5, 또는 e6 이벤트의 속성 값이 interface-name 변수를 {$*.interface-name} 대체합니다. , , 또는 e3 중 하나e1가 , e5, 또는 e6, 이후 60초 e4이내에 발생하는 경우, 해당 상관 이벤트에 대한 속성의 interface-name 값(e4 , e5또는 e6)이 변수를 {$*.interface-name} 대체합니다. e2 상관 이벤트에 속성이 없 interface-name 으면 소프트웨어가 명령을 실행하지 않습니다.show interfaces {$*.interface-name}

와 의 60초 이내에 모두 발생하면 e1 변수는 {$*.interface-name} 에 대한 e4속성 값을 interface-name 사용합니다.e4 e5 이 정책 e4 은 이벤트 프로세스(eventd)가 문에 within 구성된 대로 순차적으로 상관 이벤트를 검색하기 때문에 사용합니다. 이 경우 순서는 e4 > e5 >e6입니다.

예: 시간 간격을 기반으로 이벤트 상관관계 지정

다음 이벤트 정책은 일련의 명령을 실행하고 결과 출력 파일을 아카이브 사이트에 업로드합니다. 시스템은 트리거 이벤트 중 event3event4하나인 , 또는 event5또는 중 하나가 상관 이벤트 event1 또는 event2중 하나가 발생한 후 60초 이내에 발생하면 이벤트 정책을 실행합니다. 정책의 의사 코드는 다음과 같습니다.

이벤트 정책 대상은 두 개의 아카이브 사이트를 정의합니다. 디바이스는 목록의 첫 번째 아카이브 사이트로 전송을 시도하고 전송이 실패할 경우에만 다음 사이트로 이동합니다. 이벤트 정책 구성은 다음과 같습니다.

예: 이벤트 속성에 기반한 이벤트 상관 관계

다음 이벤트 정책에서 이벤트 속성 값이 일치하는 경우 두 이벤트의 상관 관계가 있습니다. 두 이벤트의 특성을 일치시키면 두 이벤트가 관련되어 있는지 확인할 수 있습니다. 이 경우, 인터페이스 주소가 일치해야 하며 물리적 인터페이스(ifd) 이름이 일치해야 합니다.

이 오류는 RPD_KRT_IFDCHANGE 라우팅 프로토콜 프로세스(rpd)가 커널에 인터페이스 상태 변경 요청을 전송하고 요청이 실패할 때 발생합니다. 이 오류는 RPD_RDISC_NOMULTI 인터페이스가 라우터 검색을 위해 구성되었지만 인터페이스가 필요에 따라 IP 멀티캐스트 작업을 지원하지 않을 때 발생합니다.

예: 시간 간격 및 이벤트 속성을 기반으로 이벤트 상관 관계

다음 예에서 조직은 관리 네트워크에 대한 연결이 끊어지는 모든 실패한 구성을 기록하려고 합니다. 조직은 매분 관리 네트워크의 도달 가능성을 검증하는 실시간 성능 모니터링(RPM) 테스트 설정을 사용합니다. 운영자는 항상 CLI 명령을 사용하여 변경 사항을 커밋합니다 commit confirmed . commit confirmed 이 명령을 사용하면 구성 변경이 연결에 영향을 미치는 경우 구성을 자동으로 롤백할 수 있습니다.

이벤트 정책은 이벤트 스크립트 save-rollback.slax를 실행하여 자동 롤백에 의해 재정의된 실패한 구성을 특정 위치로 복사합니다. 이벤트 스크립트는 저장 및 나중에 검사를 위해 /config/juniper.conf.1.gz rollback 파일을 /var/tmp 디렉터리에 복사합니다.

이벤트 정책 트리거 이벤트는 UI_COMMIT_NOT_CONFIRMED 이벤트입니다. 이 이벤트는 디바이스가 확인된 커밋을 자동으로 롤백할 때 발생합니다. 시스템이 커밋 확인 롤백을 트리거하면 UI_COMMIT_NOT_CONFIRMED 이벤트가 두 번 발생합니다. 첫 번째 이벤트 메시지는 롤백이 진행 중임을 나타내고, 두 번째 이벤트 메시지는 롤백이 완료되었음을 나타냅니다. 따라서 이벤트 정책은 시스템이 이벤트 정책을 두 번 트리거하지 않도록 두 UI_COMMIT_NOT_CONFIRMED 이벤트를 상호 연관시켜야 합니다. 이 예에서 두 번째 UI_COMMIT_NOT_CONFIRMED 이벤트는 첫 번째 이벤트 이후 50초 이내에 발생해야 합니다.

구성으로 인해 관리 네트워크에 대한 연결이 끊어졌는지 확인하기 위해 이벤트 정책은 UI_COMMIT_NOT_CONFIRMED 이벤트를 RPM 프로브의 PING_TEST_FAILED 이벤트와 상호 연관시킵니다. 관리 네트워크에 대한 RPM 테스트가 실패하면 PING_TEST_FAILED 이벤트가 발생합니다. 이 예에서 UI_COMMIT_NOT_CONFIRMED 이벤트는 PING_TEST_FAILED 이벤트의 60초 이내에 발생해야 합니다. 이벤트를 생성한 RPM 프로브 테스트를 지정하기 위해 이벤트 정책은 문을 attributes-match 포함하며 이벤트의 속성이 test-owner 일치하고 이벤트의 속성이 test-name 일치 Connectivity Management할 때만 트리거됩니다.

이벤트 정책은 PING_TEST_FAILED 이벤트와 첫 번째 UI_COMMIT_NOT_CONFIRMED 이벤트에 대해 별도의 within 문을 구성합니다. 여러 within 문을 사용하여 이벤트 정책이 트리거되기 위해서는 두 조건이 모두 발생해야 합니다. 각 within 문에는 다른 시간 간격이 필요합니다. 마찬가지로 정책이 트리거되려면 두 조건이 모두 attributes-match true여야 합니다.

이벤트 정책 구성은 다음과 같습니다.

이벤트 스크립트는 save-rollback.slax 다음과 같습니다.

Junos OS를 실행하는 디바이스가 이벤트 정책을 트리거하면 디바이스는 타임스탬프를 포함하는 새 파일 이름으로 롤백 구성 파일을 /var/tmp 디렉터리에 저장합니다.