29.8. 클러스터 경고 에이전트 작성
노드 경고, 펜싱 경고 및 리소스 경고의 세 가지 유형의 Pacemaker 클러스터 경고가 있습니다. 경고 에이전트에 전달되는 환경 변수는 경고 유형에 따라 다를 수 있습니다.
- 경고 에이전트에 전달된 환경 변수
| 환경 변수 | 설명 |
|---|---|
|
| 경고 유형(노드, 펜싱 또는 리소스) |
|
| 경고를 전송하는 Pacemaker 버전 |
|
| 구성된 수신자 |
|
| 로컬 노드에서 경고가 발행될 때마다 시퀀스 수가 증가하여 Pacemaker에서 경고를 발행한 순서를 참조하는 데 사용할 수 있습니다. 나중에 시간이 지남에 따라 발생한 이벤트에 대한 경고는 이전 이벤트에 대한 경고보다 시퀀스 번호가 높습니다. 이 수에는 클러스터 전체 의미가 없습니다. |
|
|
|
|
| 영향을 받는 노드의 이름 |
|
|
이벤트에 대한 세부 정보입니다. 노드 경고의 경우 노드의 현재 상태(기억 또는 손실)입니다. 펜싱 경고의 경우, 이는 원본, 대상, 펜싱 작업 오류 코드를 포함하여 요청된 펜싱 작업에 대한 요약입니다(있는 경우). 리소스 경고의 경우 이 문자열은>-< |
|
| 상태가 변경된 노드 ID(노드 경고만 제공) |
|
| 요청된 펜싱 또는 리소스 작업(원시 및 리소스 경고만 제공) |
|
| 펜싱 또는 리소스 작업의 숫자 반환 코드(선선 및 리소스 경고만 사용하여 제공) |
|
| 영향을 받는 리소스의 이름(리소스 경고만 해당) |
|
| 리소스 작업 간격(리소스 경고만 해당) |
|
| 작업의 예상 수치 반환 코드(리소스 경고만 해당) |
|
| Pacemaker에서 작업 결과를 나타내는 데 사용하는 숫자 코드(리소스 경고만 해당) |
경고 에이전트를 작성할 때 다음과 같은 우려 사항을 고려해야 합니다.
- 경고 에이전트는 수신자 없이 호출할 수 있으므로 에이전트가 이 상황을 처리할 수 있어야 합니다. 이 경우 종료되는 경우에도 에이전트가 이 상황을 처리할 수 있어야 합니다. 사용자는 단계적으로 구성을 수정하고 나중에 수신자를 추가할 수 있습니다.
- 경고에 대해 둘 이상의 수신자가 구성된 경우 수신자당 한 번 경고 에이전트가 호출됩니다. 에이전트를 동시에 실행할 수 없는 경우 단일 수신자만 사용하여 구성해야 합니다. 그러나 에이전트는 수신자를 목록으로 해석할 수 있습니다.
- 클러스터 이벤트가 발생하면 별도의 프로세스와 동시에 모든 경고가 실행됩니다. 구성되는 경고 및 수신자 수와 경고 에이전트 내에서 수행되는 작업에 따라 상당한 로드 버스트가 발생할 수 있습니다. 예를 들어 리소스 집약적인 작업을 직접 실행하는 대신 다른 인스턴스로 대기열에 배치하여 이 에이전트를 작성할 수 있습니다.
-
경고 에이전트는 최소한의 권한 세트가 있는
hacluster사용자로 실행됩니다. 에이전트에 추가 권한이 필요한 경우 에이전트가 적절한 권한을 사용하여 다른 사용자로 필요한 명령을 실행할 수 있도록sudo를 구성하는 것이 좋습니다. -
ScanSetting_alert_
timestamp (사용자 구성 타임스탬프및 모든 경고 옵션과 같은 사용자 구성 매개 변수의 유효성을 검사하고 삭제합니다. 이는 구성 오류로부터 보호하는 데 필요합니다. 또한 일부 사용자가 클러스터 노드에 대한형식), Cryostat_alert_recipienthacluster-level 액세스 권한 없이 CIB를 수정할 수 있는 경우 이는 잠재적인 보안 문제이며 코드 삽입 가능성을 방지해야 합니다. -
on-fail매개변수가fence로 설정된 작업이 포함된 클러스터에 포함된 경우 이 매개변수가 하나의 추가 알림을 추가하는 각 리소스에 대해 여러 개의 차단 알림이 발생합니다.pacemaker-fenced및pacemaker-controld모두 알림을 보냅니다. Pacemaker는 전송되는 알림 수에 관계없이 이 경우 하나의 실제 펜스 작업만 수행합니다.
경고 인터페이스는 ocf:pacemaker:ClusterMon 리소스에서 사용하는 외부 스크립트 인터페이스와 이전 버전과 호환되도록 설계되었습니다. 이러한 호환성을 유지하기 위해 경고 에이전트에 전달된 환경 변수는 Cryostat _notify_ 및 Cryostat_ .와 함께 앞에 사용할 수 있습니다. 호환성을 중단하는 한 가지 중단은 alert_ ClusterMon 리소스가 root 사용자로 외부 스크립트를 실행하는 반면 경고 에이전트는 hacluster 사용자로 실행된다는 것입니다.