2 minute read

운영에서 친 첫 사고

사건 발생 당일

요즘 9시까지 출근을 한다. 그래서 7시부터 7시반까지 알람 몇 개를 맞추고 최종적으로 7시반쯤 일어나서 후다닥 씻고 7시 50분쯤 나간다.

그런데 지난 금요일 아침. 7시 첫 알람에 잠시 일어나보니 배치 로그가 쌓이는 디렉토리의 용량이 100%가 됨과 동시에 이후에 수행되는 모든 배치가 수행되지 못해 에러가 잔뜩 와있고 단톡방에도 메시지가 와있었다. 잠이 확 달아나서 자리를 박차고 나왔다. 그와 동시에 팀장님의 전화가 왔다.

“최대한 빨리 출근하도록”

씻고 옷입으면서 내가 잘못한게 있었는지 생각해봤다. 어제 한거라고는 배치 에이전트 소유 계정의 패스워드 변경. 설마 그것 때문인가? 아니다 그러면 어제 패스워드 변경한 이후의 모든 배치가 다 말썽이어야 하는데 그렇지가 않았다.

영문을 모르겠지만 7시반쯤 다른 대리님이 이미 도착해서 상황을 파악하였다. 일단 문제가 되는 디렉토리의 용량은 비웠는데, 내가 소유하고 관리하고 있는 21번 배치가 뭔가 이상하다고 했다. 가만, 21번 배치는 전날 대출거래내역 SAM파일을 우리 DB에 적재하는 배치이다. 그러면 건수가 대단히 많다는 이야기인데.. 아 혹시…?

갑자기 불현듯 한 가지 생각이 스쳤다. 대리님께 바로 연락을 했다.

“대리님, 혹시 배치 환경세팅에 로그 레벨이 DEBUG로 되어있나요?”

“네 그렇네요”

“… 제 잘못이었네요. INFO로 변경 부탁드리겠습니다.”

이번 주 현업 부서에서 차입금을 늦게 받아와서 수행하지 못한 작업이 있었는데 목요일 오후에 차입금이 들어오고, 작업 수행을 하면서 잠시 로그 레벨을 낮춰놓았는데 그걸 원복 안하고 퇴근했던 것이었다. 순간적으로 머리에 오만가지 생각이 들었지만, 이내 생각을 정리하고 팀장님께 전화하였다.

“팀장님, 죄송한데 제 잘못인거 같습니다. … … “ 어쩌고 저쩌고 자초지종을 설명드렸다. 그리고 부장님께도 보고가 완료되었고, 출근하니 부장님께서 오셔서 질문을 하셨다.

문제의 원인이 무엇이었는지, 왜 그렇게 했는지, 정보계, 다른 시스템 등에 영향은 없는지, 오늘 거래하는데 문제는 없는지 등등..

내 배치 뿐만 아니라 다른 시스템의 배치까지 수행되지 못하였고, 여러 시스템은 서로 영향을 미치기도 하고, 한 배치의 여러 후행 배치도 존재하기 때문에 영향도까지 파악하여 오전 10시까지 수습을 완료하였다.

로그 레벨은 왜 존재하는거지?

배치 로그가 떨어지는 디렉토리의 용량이 대략 5기가였는데 로그 레벨을 낮춰놔서 온갖 잡다구레한 정보가 다 파일로 떨어졌고, 그래서 5기가가 순식간에 차버려서 이 사단이 났다.

솔직히 공부할 때나 회사에서 프로그램을 작성할 때 로그 레벨이 나눠져있는게 왜 필요한지 잘 몰랐다. 그냥 많은 정보를 남겨놔서 문제가 생기면 바로 확인해볼 수 있으면 좋은거 아니야? 레벨을 왜 나눠놓지? 이렇게 생각했었다.

그런데 이런 사고를 한 번 쳐보니 왜 필요한지 바로 이해가 갔다.

  1. 이번 일처럼 잡다구레한 것까지 다 로그 찍어놓으면 용량이 미친듯이 커진다.
  2. 중요성에 따라 내용을 구분해서 볼 수 있다.

사실 앞서 말했듯이 2번의 필요성에 대해서는 크게 와닿지 않았는데… 이번에 차입금 받아오면서 나 스스로도 로그 레벨을 낮춰서 확인해보지 않았던가. 이미 내가 그 필요성을 알고 있었다.

운영에서는 함부로 뭘 건들지말자

운영에서 환경세팅해둔 것을 변경하는 것은 위험천만한 일이었다. 입사할 때부터 운영은 건들지말고 몇 번을 확인해보라고 귀에 딱지 앉을 정도로 들었는데 일이 익숙해진 나머지 건방을 떨었다. 로그 레벨을 함부로 건들지 않기로 하였고, 대신 내가 로그 레벨을 낮춰서 확인하려고 했던 내용들을 점검 쿼리를 따로 작성하여 확인하는 것으로 방법을 바꾸었다.

로그 레벨 하나 바꿔도 엄청난 영향을 미칠 수 있다는 것을 깨달았으니 내가 수행하는 작은 일도 큰 영향을 미칠 수 있음을 유념하여 일해야겠다. 이만하면 적은 수업료로 큰 배움을 얻었다. 두 번 다시 같은 실수를 반복하진 말자.