= NMS 미러링 시스템 구축 =

== 개요 ==
NMS 시스템이 대고객 서비스로서 중요한 위치를 차지함에 따라서 백업은 물론이고 미러링 시스템의 필요성이 대두됨
구현방법


Active 시스템에서는 snmp 데이터를 수집하여, mysql 과 rra 파일을 저장, 이것을 Standby 시스템에서 mysql 은 replication 으로 연결
rra 파일은 rsync 로 동기화하여 해결.
rra 를 매 5분마다 동기화 할 필요가 없음으로 해서 2분, 17분, 32분, 47분의 15분 간격으로 동기화
대상시스템은 Active 시스템 nw1nms.direct.co.kr (211.239.127.186) 및 Standby 시스템 nw2nms.direct.co.kr (211.239.127.189) 임

attachment:"NMS 미러링 시스템 구축/nms-sync-struct.png"
== 세부설정 ==
서비스 시스템의 디렉토리는 모두 /var/www/NWNMS 로 일치시키며, 두대의 데이터베이스가 공유되어 있으므로, Standby 시스템의 mysql 계정은 모두 Active 시스템에 저장된 내용에 따른다.
가능하면 두시스템의 운영체제와 mysql 버전등은 일치시키고 mysql 컨피규 파일인 /etc/my.cnf 도 동일한것을 사용한다.
== MySQL 리플리케이션 구성 ==
리플리케이션을 구성하는것은 tech:MySQL Replication 를 참조하여 구성한다.
== rra rsync 로 동기화 구성 ==
 * 계정은 cacti 로 파일을 주고 받는것으로 일치시킨다.
 * rsync 를 ssh 로 구동시에 비밀번호를 입력받지 않기위한 부분은 프로그래밍 TIP 에서 "SSH 로 비밀번호 없이 로그인 하는 방법" 을 참조.
 *Active 시스템이 매 5분마다 동작하므로 매 7분마다 동작하게 하면 완벽한 동기화가 이루어지는것이나 rra 파일의 전송량이 상당하여, 시스템의 부하를 생각해서 2, 17, 32, 47 의 15분 간격으로 동기화를 구성 /etc/crontab 에 아래내용 추가

{{{
# NMS rra data syncronize
2,17,32,47 * * * * cacti /usr/bin/rsync -au -e ssh 211.239.127.186:/var/www/NWNMS/rra /var/www/NWNMS/rra.rsync
}}}

== Active 시스템이 crash 되었을 경우 Stand-by 시스템으로 대체 == 
 * active 시스템 shutdown
 * Standby 시스템 IP 주소를 Active IP 로 변경
 * /etc/crontab 의 # 으로 막힌 "/var/www/NWNMS/poller.php" 부분을 풀어주고 rsync 부분은 # 으로 막아줌.

{{{
# for CACTI POLLER
#*/5 * * * * cacti /usr/bin/php /var/www/NWNMS/poller.php > /dev/null 2>&1
# NMS rra data syncronize
2,17,32,47 * * * * cacti /usr/bin/rsync -au -e ssh 211.239.127.186:/var/www/NWNMS/rra /var/www/NWNMS/rra.rsync
}}}
== 참고 ==
MySQL 이 Active - Standby 시스템으로 구성되어 있으므로 두시스템의 MySQL 을 함부로 재시작 시키지 말것.
가끔 MySQL 동기화가 잘 이루어지고 있는지 확인해야 하며, 깨졌을 경우에는 tech:MySQL Replication 복구참고할것.
동기화여부를 확인하는 법은 tech:MySQL Replication 복구 의 "참고" 부분을 참고할것.