2008-08-29 2 views
12

그리드 및 HPC 공간에서 많은 작업을 수행하며 수백 개 (또는 경우에 따라 수천 개)의 서버에 분산 된 시스템에서 가장 큰 문제 중 하나가 로그 파일을 분석하고 있습니다.대규모 분산 시스템의 로그 파일

현재 로그 파일은 각 블레이드의 디스크에 로컬로 기록되지만 예를 들어 UDP 애 퍼런더를 사용하여 로깅 정보를 게시하고 중앙에서 수집하는 것도 고려할 수 있습니다.

가능한 한 실시간으로 문제를 식별 할 수 있어야한다는 목표를 감안할 때 우리는 어떻게해야합니까?

+0

btw 왜 UDP입니까? 당신은 당신의 메시지를 잃을 수 있습니까? –

답변

3

먼저 NTP를 사용하여 시스템의 모든 클럭을 동기화하십시오.

두 번째로, 언급 한 UDP appender와 같은 단일 위치에서 로그를 수집하는 경우 로그에 실제로 도움이되는 충분한 정보가 있는지 확인하십시오. 적어도 로그를 생성 한 서버, 발생한 시간 및 메시지를 포함합니다. 트랜잭션 ID 나 작업 ID 유형 개념이 있다면 그 또한 포함하십시오.

당신이 UDP Appender를 언급 한 이래로 당신은 log4j (또는 형제 중 하나)을 사용하고 있다고 생각합니다. Log4j에는 처리 스레드를 통해 추가 정보가 전달되도록 허용하는 MDC 클래스가 있습니다. 그것은 추가 정보의 일부를 수집하고 함께 전달하는 데 도움이 될 수 있습니다.

0

Apache를 사용하고 있습니까? 그렇다면 mod_log_spread을 살펴볼 수 있습니다. 유지 관리하기에 너무 큰 인프라가있을지라도. 다른 옵션은 로그 메시지를 "브로드 캐스트"또는 "멀티 캐스팅"하고 전용 로깅 서버가 해당 피드에 가입하고이를 대조하는 것입니다.