모바일 앱에 Amazon EC2를 사용합니다. 주어진 시간에 응용 프로그램의로드에 따라 새 인스턴스를 생성 한 다음로드가 낮아지면 비용을 절감하여 인스턴스를 제거 할 수 있습니다.
그런 역동적 인 환경을 위해 Nagios 구성을 어떻게 유지합니까? 관리되는 하드웨어를 다룰 때 구성 파일을 예측할 수 있습니다. 이 경우 Nagios, Capistrano 및 기타 여러 구성 파일을 추가해야합니다. Capistrano는 앱 서버를위한 새로운 빌드를 어디에 배치해야하는지 알아야합니다. Nagios는 기존 인스턴스를 제거하거나 모니터링을 위해 새 인스턴스를 추가해야합니다. Nagios는 또한 의도적으로 노드가 작동 중지되었는지 또는 오류로 인해 호스트가 작동 중지되었는지를 알아야합니다.
이 놀라운 VPS / 동적 인스턴스 세계에서는 어떻게 이루어 집니까?
답변
노드 정보에서 Nagios 구성을 작성하는 구성 관리 도구 (이 경우에는 요리사)를 사용합니다.
답변
nagios 구성을 파일에 쓰는 내 자신의 작은 PHP 스크립트 세트를 작성했습니다. Nagios는 텍스트 파일이기 때문에 쉬우므로 각 유형의 서버에 대한 템플릿을 작성하기 만하면됩니다. 그런 다음 서버가 시작되면 템플리트를 사용하여 파일을 추가하십시오. 파일에서 변경되는 유일한 데이터는 호스트 ip 및 이름입니다.
더 많은 정적 서버를 ec2-describe-instances
위해 반환 된 각 인스턴스에 대해 파일을 생성하고 실행하는 스크립트를 만들었습니다 . 각 인스턴스에는 tag : Purpose = XXXX로 표시되어 적용 할 템플릿을 알고 있습니다.
자동 확장 그룹의 as-put-notification-configuration
경우 SQS 대기열에 메시지를 보내는 명령을 사용하여 알림을 설정합니다 . PHP 스크립트는 crontab에 의해 실행됩니다. 스크립트가 실행될 때 새로운 서버의 대기열을 확인합니다. 새 서버를 찾을 때마다 새 파일을 작성합니다. 서버가 제거 될 때도 마찬가지입니다. 아마도 이미 Chef를 사용하고 있다면 Chef를 사용하는 것이 더 쉽지만 그렇지 않은 경우 며칠 안에 내 것과 같은 간단한 PHP 서비스를 작성할 수 있습니다.
답변
우리 는 또 다른 nagios + database + rest-api 래퍼 인 Opsview를 사용 합니다. 이것이 모든 사람 (또는 심지어 우리)에게 최고의 솔루션인지는 모르겠지만 노드 (또는 다른 관리 노드)에서 간단한 REST API를 통해 Nagios 서버를 동적으로 구성하여 제거 할 수 있습니다. 완료되면 구성. Opsview (/ Nagios) 서버의 Puppet 매니페스트의 일부로 호스트 템플릿 정의를 사용하고 모니터링되는 호스트는 해당 호스트에 등록하고 Puppet 매니페스트의 일부로 올바른 호스트 템플릿에 가입합니다.
원본 Nagios 및 정적 파일까지도 거의 모든 작업에서 작동하는보다 “일반적인”접근 방식은 Puppet Stored Configuration입니다 .이를 통해 인형이 수집 한 정보를 기반으로 원하는 도구를 구성하도록 스크립트를 작성할 수 있습니다. 그것의 매니페스트.
법 의학적 목적을 위해 노드가 구성 해제 될 때 노드의 구성을 모두 삭제하지 말고이를 보관하려고 시도하고 작동 중에 모니터링 정보를 수집하도록 제안합니다.
답변
몇 가지 방법.
-
사전 구성된 Amazon EC2 템플릿 사용.
-
가변 템플릿으로 퍼펫 매니페스트 사용
-
nagios 네트워크와 amazon VM간에 VPN을 설정 한 다음 모든 amazon VM에 정적 IP가 있으며 DNS를 설정할 수도 있습니다. 우리는 모든 아마존 인스턴스를 실행하고 모니터링하는 nagios가 있습니다. 우리는 탄력있는 IP가 필요하지 않습니다. 우리는 VPN을 위해 openvpn을 사용합니다.
-
외부 명령을 수신하고 그에 따라 구성을 업데이트하는 Nagios를 빌드하십시오. 결국 머신은 Nagios에서 자체 등록, 등록 취소, 일시 중단 및 재개 할 수 있습니다.
답변
nagios 로이 문제를 해결하기위한 은색 총알이 없습니다. 그러나 capistrano에는 capistrano를위한 확장 기능인 capify-ec2 가있어 Amazon 태깅 기능을 사용하여 서버 역할 목록을 해결합니다.