다음 명령을 사용하여 소프트웨어 감시 장치를 만들었습니다.
$ sudo modprobe softdog soft_margin=60
소프트웨어 감시가 초기화되었음을 운영 체제 로그에서 확인할 수 있습니다.
Jul 12 09:49:00 patroni4 kernel: softdog: Software Watchdog Timer: 0.08 initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
워치독을 통해 노드 재시작을 트리거하기 위해 구현했습니다 echo a | sudo tee /dev/watchdog
.
노드가 다시 시작되었지만 로그에는 Watchdog에 의해 다시 시작이 트리거되었음을 나타내는 내용이 없습니다. soft_noboot=1
OS 로그에서 옵션을 설정 하면 메시지가 나타납니다 softdog: Triggered - Reboot ignored
.
워치독 구현에 따라 워치독이 노드 재시작을 트리거할 때 로그 메시지가 있어야 합니다. https://github.com/spacex/kernel-centos7/blob/master/drivers/watchdog/softdog.c
static void watchdog_fire(unsigned long data)
{
if (soft_noboot)
pr_crit("Triggered - Reboot ignored\n");
else if (soft_panic) {
pr_crit("Initiating panic\n");
panic("Software Watchdog Timer expired");
} else {
pr_crit("Initiating system reboot\n");
emergency_restart();
pr_crit("Reboot didn't ?????\n");
}
}
운영 체제: CentOS Linux 버전 7.9.2009(코어) Linux lin1 3.10.0-1160.62.1.el7.x86_64
워치독이 재부팅을 트리거했는지 확인하는 방법은 무엇입니까? 이 정보는 왜 기록되지 않습니까? 어떻게든 로깅을 활성화할 수 있나요?
귀하의 정보에 감사드립니다.
답변1
워치독에 따라 다시 시작하기 전에 마지막 로그를 요청하거나 현재 타임스탬프가 포함된 플래그 파일을 생성할 수 있습니다.
last reboot
명령이나 운영 체제를 통해 언제든지 마지막 부팅 시간을 요청할 수 있습니다 last reboot -n1
.
이제 두 개의 타임스탬프를 비교하기만 하면 됩니다. 워치독 타임스탬프와 부팅 시간의 차이가 재부팅하기에 충분할 경우 대답은 '예'입니다.