모든 서비스 로그 파일을 읽어 오류 및 경고 변경을 트리거하는 bash 스크립트를 개발해야 합니다. 우리는 거의 700개에 가까운 서비스를 보유하고 있으며 API를 사용하여 서비스 로그를 하나씩 다운로드하고 단일 시스템에서 이메일을 실행합니다.
첫 번째 루프에서는 경고를 보낸 후 로그를 저장합니다. 다음 루프에서는 diff
새로 다운로드한 로그와 저장된 로그를 처리한 다음 차등 출력에서 오류를 확인하고 메일을 트리거합니다. 이렇게 하면 중복된 알림을 보내는 것을 방지할 수 있습니다.
하지만 비교를 위해 700개 서비스 전체의 로그를 저장하는 데 익숙하지 않고 내 컴퓨터에서 많은 공간을 차지합니다.
중복된 경고 전송을 방지하는 대체 논리가 있습니까?
답변1
로그에 타임스탬프가 있다고 가정하면(반드시 있어야 함) 각 로그의 마지막 타임스탬프를 기억하는 것만으로도 충분합니다. 그런 다음 새 로그에서 이전 타임스탬프가 있는 모든 항목을 건너뜁니다. 따라서 타임스탬프를 사용하여 각 로그를 한 줄로 줄일 수 있습니다. 메모리가 별로 남지 않았습니다.