28장. 클러스터 이벤트에 대한 스크립트 트리거
Pacemaker 클러스터는 이벤트 중심 시스템으로, 이벤트가 리소스 또는 노드 장애, 구성 변경 또는 리소스 시작 또는 중지일 수 있습니다. 클러스터 이벤트가 리소스 구성 및 작업을 처리하도록 클러스터 호출 리소스 에이전트와 동일한 방식으로 클러스터 호출하는 외부 프로그램인 경고 에이전트를 통해 클러스터 이벤트가 발생할 때 일부 외부 작업을 수행하도록 Pacemaker 클러스터 경고를 구성할 수 있습니다.
클러스터는 환경 변수를 통해 이벤트에 대한 정보를 에이전트에 전달합니다. 에이전트는 이메일 메시지를 전송하거나 파일로 로깅하거나 모니터링 시스템을 업데이트하는 등 이 정보를 사용하여 모든 작업을 수행할 수 있습니다.
-
Pacemaker는 기본적으로
/usr/share/pacemaker/alerts
에 설치된 여러 샘플 경고 에이전트를 제공합니다. 이러한 샘플 스크립트는 그대로 복사 및 사용할 수 있으며, 사용자의 목적에 맞게 편집할 템플릿으로 사용할 수 있습니다. 지원하는 전체 속성 집합은 샘플 에이전트의 소스 코드를 참조하십시오. - 샘플 경고 에이전트가 요구 사항을 충족하지 않으면 Pacemaker 경고가 호출하도록 고유한 경고 에이전트를 작성할 수 있습니다.
28.1. 샘플 경고 에이전트 설치 및 구성
샘플 경고 에이전트 중 하나를 사용하는 경우 스크립트를 검토하여 필요에 맞게 확인해야 합니다. 이러한 샘플 에이전트는 특정 클러스터 환경에 대한 사용자 지정 스크립트의 시작점으로 제공됩니다. Red Hat은 경고 에이전트 스크립트가 Pacemaker와 통신하는 데 사용하는 인터페이스를 지원하지만 Red Hat은 사용자 정의 에이전트 자체를 지원하지 않습니다.
샘플 경고 에이전트 중 하나를 사용하려면 클러스터의 각 노드에 에이전트를 설치해야 합니다. 예를 들어 다음 명령은 alert_file.sh.sample
스크립트를 alert_file.sh
로 설치합니다.
# install --mode=0755 /usr/share/pacemaker/alerts/alert_file.sh.sample /var/lib/pacemaker/alert_file.sh
스크립트를 설치한 후에는 스크립트를 사용하는 경고를 만들 수 있습니다.
다음 예제에서는 설치된 alert_file.sh
경고 에이전트를 사용하여 이벤트를 파일에 기록하는 경고를 구성합니다. 경고 에이전트는 최소한의 권한 집합을 가진 hacluster
사용자로 실행됩니다.
이 예제에서는 이벤트를 기록하는 데 사용할 로그 파일 pcmk_alert_file.log
를 생성합니다. 그런 다음 경고 에이전트를 생성하고 로그 파일의 경로를 수신자로 추가합니다.
# touch /var/log/pcmk_alert_file.log # chown hacluster:haclient /var/log/pcmk_alert_file.log # chmod 600 /var/log/pcmk_alert_file.log # pcs alert create id=alert_file description="Log events to a file." path=/var/lib/pacemaker/alert_file.sh # pcs alert recipient add alert_file id=my-alert_logfile value=/var/log/pcmk_alert_file.log
다음 예제에서는 alert_snmp.sh.sample
스크립트를 alert_snmp.sh
로 설치하고 설치된 alert_snmp.sh
경고 에이전트를 사용하여 클러스터 이벤트를 SNMP 트랩으로 보내는 경고를 구성합니다. 기본적으로 스크립트는 모니터 호출을 제외하고 모든 이벤트를 SNMP 서버로 전송합니다. 이 예제에서는 타임스탬프 형식을 메타 옵션으로 구성합니다. 경고를 구성한 후 이 예제에서는 경고의 수신자를 구성하고 경고 구성을 표시합니다.
# install --mode=0755 /usr/share/pacemaker/alerts/alert_snmp.sh.sample /var/lib/pacemaker/alert_snmp.sh # pcs alert create id=snmp_alert path=/var/lib/pacemaker/alert_snmp.sh meta timestamp-format="%Y-%m-%d,%H:%M:%S.%01N" # pcs alert recipient add snmp_alert value=192.168.1.2 # pcs alert Alerts: Alert: snmp_alert (path=/var/lib/pacemaker/alert_snmp.sh) Meta options: timestamp-format=%Y-%m-%d,%H:%M:%S.%01N. Recipients: Recipient: snmp_alert-recipient (value=192.168.1.2)
다음 예제에서는 alert_smtp.sh
에이전트를 설치한 다음, 설치된 경고 에이전트를 사용하여 클러스터 이벤트를 이메일 메시지로 보내는 경고를 구성합니다. 경고를 구성한 후 이 예제에서는 수신자를 구성하고 경고 구성을 표시합니다.
# install --mode=0755 /usr/share/pacemaker/alerts/alert_smtp.sh.sample /var/lib/pacemaker/alert_smtp.sh # pcs alert create id=smtp_alert path=/var/lib/pacemaker/alert_smtp.sh options email_sender=donotreply@example.com # pcs alert recipient add smtp_alert value=admin@example.com # pcs alert Alerts: Alert: smtp_alert (path=/var/lib/pacemaker/alert_smtp.sh) Options: email_sender=donotreply@example.com Recipients: Recipient: smtp_alert-recipient (value=admin@example.com)