콘텐츠로 건너뛰기

remote server 로그 모니터링 스크립트

관리하는 서비스에서 오류를 확인하기 위해서 스크립트를 만들었다.

아파치의 경우에는 로테이트 로그 되므로 날짜를 지정하게 했다.

200, 302, 304 status code는 정상이므로 걸러내고, 나머지에 대해서만 필터링해서 출력하는 코드이다.

톰캣의 경우에는 그냥 파일이름만 있으면 된다.

대충 ERROR나 WARN 혹은 Exception이라는 문자열을 기준으로 필터링해서 출력하는 코드이다.

위 코드에는 한 가지 문제가 있다.

서버가 5대라면, 각기 5(서버수) x 2(톰캣, 아파치) = 10개의 터미널 창이 필요하다.

실제로 예전에는 저렇게 진행했다.

그런데, 서버가 더 늘어나자… 이건 터미널 창이 기하급수적으로 늘어난다.

그래서 ssh를 통해 한 곳에서 여러 원격 서버의 로그를 확인할 수 있는 스크립트를 작성했다.

첫번째는 아파치, 두번째는 톰캣 로그를 확인하는 거다.

백그라운드 작업(&)가 들어가기 때문에, 나중에 kill 할 때 번거로움이 있어서

세번째 스크립트로 kill 할 수 있도록 했다. (아파치, 톰캣 로그 찍는 것 모두 kill 된다)

참고로 awk 에서 -v 옵션은 파라미터 인자를 주는 건데,

sh에서 사용하는 변수 값을 awk 내부에서 사용할 수가 없다.

그래서 해당 변수값을 다시 지정해서 awk에서 사용할 수 있게 한거다.

위처럼 하면, 서버가 아무리 많아도 터미널 3개로 충분하다. (아파치 로그, 톰캣 로그, kill 할 터미널)

기본은 위와 같고, 서버이름이나, 필터링할 조건은 awk쉘프로그래밍에 대해서 공부하면 된다.

“remote server 로그 모니터링 스크립트”의 2개의 댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다