현재 로깅 시스템이 있습니다. Microsoft SQL 서버에 로그를 푸는 단일 dll입니다. 이러한 로그는 고급 정렬/필터링/페이징/다운로드와 함께 웹 페이지를 통해 볼 수 있습니다. 나는 처음부터 시스템을 만들었고 Entity Framework를 처음 접했을뿐만 아니라 SQL은 강력하지도 않습니다.이벤트 로그 실용성
한 동료는 Windows 이벤트 로그가 대역폭을 절약 할 수 있으므로 SQL 서버보다 더 나은 선택이라고 주장하고 있으므로 더 빠릅니다. 또한 그것은 진실되고 검증 된 솔루션입니다.
Windows 로깅을 사용하여 광범위한 로깅을 처리하는 것이 실용적인 것인지 묻습니다. 현재 SQL에서 ~ 600 개의 응용 프로그램에 대해 100 개의 서로 다른 시스템에서받은 약 1 억 5 천만 개의 로그를 호스팅하는 단일 로그 테이블이 총 약 90GB입니다.
Windows 이벤트 로그를 사용중인 경우 그러한 종류의 부하에 대해 가능한 솔루션이 있습니까? 그런 다음 관리 서버/사용자가 중개 SQL없이 해당 로그를 요청/정렬/필터링/페이지 할 수있는 방법을 만드시겠습니까? 아니면 현재 시스템을 구축했기 때문에 나는 눈이 멀었나요?
추가 정보
로그는 하나의 테이블 로그인 (ID, APPID, 유형, LVL은, 소스, 메시지, 시간)
1 억 5 천만 로그 3, 7 일간 다른 모든 오류를 다루고있다 일
많은 중복 메시지가 있기 때문에 정규화 원본 및 메시지를 사용하면 테이블 크기가 크게 줄어 듭니다.
현재 시스템에 대한 대부분의 불만은 로그를 요청할 때 웹 페이지가 특정 응용 프로그램에서 시간 초과된다는 것입니다. 제한 시간은 여전히 30 초이며, 로그는 10,000 개로 제한됩니다.이 시점에서 검색을 세분화해야합니다. 시간 초과는 실제로 평균이 800k + 로그 인 응용 프로그램에서만 발생합니다. 다른 앱은 평균 최대 10 초 동안 결과를 반환합니다.
나는 색인을 변경하려고하며, 효율성을 높이기 위해 표를 표준화하려고하지만 계속 진행되는 과정을 생각해 보았습니다. 그러나 Windows Event Log가 더 나은 솔루션이라면 구현하는 데 시간을 많이 쏟아야합니다.
성능 향상을 위해 로그 테이블을 분할하여 솔루션을 조정하는 것이 좋습니다. –
Windows 이벤트 로그에 로컬로 (네트워크를 통하지 않고) "대역폭 절약"을 쓸 수 있다면 [네트워크없이 SQL Server 실행] (https://msdn.microsoft.com/en-us/) us/library/ms187078.aspx) 또한 대역폭을 절약 할 수 있습니다. 나는 Windows Event Log가 일주일에 ~ 3 억 로그를 처리 할 수 없다는 직감을 가지고 있습니다. 그렇다면 SQL보다 빠르게 정렬/정리하는 방법을 알지 못합니다. 편집 : 100 대의 머신을 보았습니다. 동료가 로그를 100 개의 다른 위치에 저장하도록 제안하고 있습니까? EventLog가 원격으로 쓰기를 지원한다고해도 SQL보다 더 잘 처리 할 방법은 없습니다. – Quantic
그래서 100 대의 컴퓨터가 자체 이벤트 로그에 기록합니까? 당신은 어떻게 그들을 대조합니까? 로그를 중앙 위치로 보내면 어떻게 대역폭이 향상 될까요? - 이벤트 로그는 최적화 된 데이터베이스가 아니므로 근처에서 실행되지 않습니다. –