Home | 문태준 | 시스템어드민 메일링 | Sys Admin 세미나
Skip to end of metadata
Go to start of metadata

이제 MCollective 는 제대로 작동을 하고 있다. 이제 MCollective를 유지보수하고 디버깅하는 몇가지 작업에 대해 알아보자.

시간 동기화

클라이언트, 서버 환경에서 문제가 있는 경우 시간이 맞는지 확인하는 작업이 필요하다. 최신의 NTP 기반의 시간 동기화에서는 1/100 초가 고려할만한 시간 차이이고 대부분의 시스템은 동일한 초를 가져야 한다.

모든 MCollective 메시지에는 현재의 timestamp 와 얼마나 메시지가 유효한지를 담고 있는 ttl을 포함하여 전송을 한다.

가장 좋은 것은 Puppet 등의 설정관리 프로그램을 이용하여 모든 노드의 NTP 를 정확하게 설정하는 것이다.

Sessiong Alive 유지하기

서버와 미들웨어 간에 방화벽이나 flow-tracking 스위치를 사용하고 있다면 연결을 open 상태로 유지하도록 설정을 해야 한다.

클 라이언트에서 능동적으로 요청을 하지 않으면 MCollective 의 STOMP 세션은 idle 상태로 있다. MCollective 는 TCP 세션에 대해서 keep-alive 플래그를 설정한다 .그렇지만 많은 OS에서는 대부분의 방화벽에서 세션을 drop 한 이후 첫번째 keep-alive 패캣을 보낸다. 서버는 세션이 끊긴 것을 알지 못한다. 미들웨어도 클라이언트로부터 메시지를 포워딩을 시도할 때까지 알지 못한다.

STOMP 1.1 에서 도입된 STOMP heartbeat 를 통해서 이러한 문제를 해결하였다. 2장에서 사용할 설정에서는 heartbeat를 사용해서 연결을 살아있도록 유지한다.

STOMP heartbeat 이전까지는 세션을 살아있도록 유지하기 위해서 주기적으로 방화벽의 세션 타잇아웃 보다 더 짧은 시간동안 updated registration information 을 보내도록 설정해야 했다. 일반적으로 매 10분이면 충분하다.

기본 registration agent 는 AgentList 이며 서버에 설치한 플러그인 목록을 보낸다. 21장을 참고하여 다른 정보를 보내기 위한 자신만의 registration agent 를 만들 수 있다.

Activating Changes

server 나 agent 설정에 변경이 있는 경우에는 mcollectived 를 재시작해야 적용이 된다. 필요한 경우 /var/log/mcollective.log  로그파일을 확인한다.

서버 통계

inventory 요청을 보낸 경우 서버에 설치된 agent 목록과 함께 MCollective 에서는 몇가지 통계 정보를 함께 레포팅한다.

Logging

server.cfg 에서 설정을 변경하지 않았다면 다음이 로깅과 관련한 기본 설정이다.

기본 설정에서 mcollectived 는 로그 파일을 디스크에 쓰고 자체 로그 로테이션을 한다. 디스크에 다섯개의 로그파일을 보관하고 크기가 2MB에 달하면 각 로그를 로테이션 한다.

개인적으로 이 책의 저자는 다음의 설정을 추천하고 있다.

자세한 내용은 puppet labs 문서를 참고한다.

https://docs.puppetlabs.com/mcollective/configure/server.html#logging

https://docs.puppetlabs.com/mcollective/configure/client.html#logging

서버 모니터링

MCollective 서버가 살아있는지 체크하는 것은 두가지 방식이 있다. actively , passively

Active check : 모든 노드에 사용가능한 agent를 호출하여 결과를 확인한다. 간단하게는 mco ping 을 이용할 수 있는데 mco ping 의 경우는 low-level 연결 테스트로 인증이나 인가(권한 부여)가 필요하지 않다. 또는 NRPE  테스트 같은 특정 플러그인을 이용할 수 있다. 19장에서 스크립트를 제공한다.

Passive check : registration agent topic 을 모니터링하고 있다가 최근에 체크하지 않은 서버를 찾는다. 21장에서는 registration agent를 어떻게 만드는지 설명하고 있다. Nagios를 이용하여 체크하는 예제는 Puppet Labs의 AgentRegistration Monitor 를 참고한다.

http://projects.puppetlabs.com/projects/mcollective-plugins/wiki/AgentRegistrationMonitor

Labels
  • No labels