Perfmon 데이터를 SQL로

Perfmon 데이터를 SQL로

아래 텍스트 벽에 대해 죄송합니다.

제 직장에는 꽤 많은 Exchange 서버와 지원 도메인 컨트롤러가 있는데, 모두 현재 SCOM에서 모니터링하고 있습니다. SQL DB를 기반으로 ASP.net 웹 사이트에서 SCOM이 수행할 수 있는 작업 외에 특정 모니터링 요소를 설정했습니다.

저는 다음을 수행할 수 있도록 서버를 더욱 면밀히 모니터링하고 싶습니다.

Baseline the servers better for historical comparison
If a problem occurs we can pull out more raw data.

이를 위해 Perfmon 카운터에서 더 많은 데이터를 가져오고 싶습니다. 저는 SCOM이 일부 Perfmon 데이터를 가져올 수 있다는 것을 알고 있습니다. 하지만 우리의 SCOM 구현은 꽤 규모가 크며, 이를 관리하는 사람들은 제가 때때로 유용할 만큼 자주 카운터 빈도를 늘리는 것을 원하지 않습니다.

또한 SCOM DB에 데이터를 쿼리한다는 것은 인덱스를 실제로 변경할 수 없고, 필요한 데이터에 대한 마감 시간을 제어하거나, 필요한 데이터를 실제로 제어할 수 없다는 것을 의미합니다.

여기서 제 질문은 데이터를 가져와 SQL에 삽입할 수 있는 스크립트가 이미 있으므로 실제로 데이터를 가져와 삽입하는 방법이 아니라 이 문제에 어떻게 접근해야 하는지에 대한 것입니다.

느슨하게 서버 분할은 다음과 같습니다.

Exchange 2007 in Domain1.com
Exchange 2010 in Domain2.com

서버는 Exchange 2007/2010 모두에 대해 다음과 같이 논리적으로 분할됩니다.

Mailbox Servers
Client Access Servers
Hub Transport Servers
Domain Controllers

위의 모든 서버에서 기본 사항에 대한 카운터를 얻은 다음 특정 서버 유형에 대해 더 자세히 알아보고 싶습니다. 예를 들어 메일박스 서버에서 RPC 평균 대기 시간 가져오기, CAS 서버의 연결 수, 제출된 메시지 수/초 등을 들 수 있습니다. HT 서버 등

그래서 제가 하고 싶은 일은 서버의 각 클래스마다 하나씩 4가지 스크립트 유형을 만든 다음 일정에 따라 각 서버에서 이를 실행하여 일부 데이터를 기록하고 SQL DB에 연결한 다음 해당 레코드를 테이블에 삽입하는 것입니다.

내 SQL 테이블의 경우 서버 클래스별로 하나씩 만들어야 합니까, 아니면 모든 레코드를 단일 테이블에 넣어야 합니까?

SQL 테이블의 모든 데이터를 던지는 각 서버에서 로컬 스크립트를 실행하는 것은 끔찍한 생각입니까? 원격으로 데이터를 수집하는 것을 고려했지만 몇 분마다 약간의 데이터를 캡처하려는 경우 네트워크 대기 시간이나 타이밍을 방해하는 기타 요인으로 인해 시간이 크게 변하는 것을 발견했습니다.

또한 최근 며칠 동안 더 자주 기록을 유지하는 방법(5일 동안 모든 카운터에 대해 5분마다)과 같은 잠재적인 보관 솔루션에 대해 듣고 싶습니다. 그러나 과거에는 덜 빈번한 기록을 유지하는 방법도 있습니다.

답변1

결국 원격 수집을 실행했지만 제한된 데이터 집합에 대해 간격을 5분마다 한 번씩 설정했는데 지금까지는 괜찮은 것 같습니다. 데이터 보존, 쿼리 효율성 등에 대해 생각해야 하지만 그 동안에는 내 질문에 답변했지만 아무도 제안한 사람이 없습니다.

관련 정보