Windows Server 2025 / 이벤트 뷰어와 서비스 상태로 서버 장애 원인을 찾는 방법
서버 장애를 점검할 때는 사용자가 겪은 증상과 시각을 기준으로 이벤트·서비스 상태를 연결해 봐야 합니다. 이벤트 ID 하나나 중지된 서비스 목록만으로 원인을 단정하지 말고, 정상 상태와 비교한 뒤 필요한 변경만 수행합니다.
증상·시각·변경 이력을 먼저 기록합니다
예를 들어 오전에 공유 접근이 실패했다면 어느 클라이언트·사용자·공유 경로인지와 실패 시각을 적습니다. 서버 전체가 중단됐는지 특정 서비스만 실패했는지, 업데이트나 설정 변경이 있었는지도 확인하세요. 오류가 발생한 시간대와 이벤트의 시간대를 맞추는 것이 중요합니다.
조회 결과를 남기기 전에 서버 이름을 확인합니다. 원격 관리 창에서 여러 서버를 보다가 다른 서버의 로그를 원인으로 잘못 연결할 수 있습니다. 부팅 직후의 일시 경고와 현재 반복되는 장애도 구분합니다.
hostname Get-Date Get-TimeZone Get-CimInstance Win32_OperatingSystem | Select-Object LastBootUpTime
이벤트 뷰어에서 시간 범위를 좁힙니다
- 이벤트 뷰어(eventvwr.msc)를 열고 Windows 로그의 시스템·응용 프로그램을 확인합니다.
- 현재 로그 필터링에서 장애 전후의 시간 범위와 필요한 수준을 선택합니다.
- 원본·이벤트 ID·시각과 메시지를 함께 읽습니다. 같은 ID라도 원본이 다르면 의미가 다를 수 있습니다.
- 역할별 로그가 필요하면 응용 프로그램 및 서비스 로그에서 DNS·GroupPolicy·SMBServer 등 해당 경로를 확인합니다.
- 관련 이벤트를 선택해 세부 정보와 앞뒤 사건을 비교하고 원본 EVTX를 보존합니다.
오류·경고 수가 많다는 사실만으로 서비스 장애 정도를 비교하지 않습니다. 정보 수준 이벤트도 서비스 시작·설정 변경의 순서를 이해하는 데 도움이 됩니다. 반대로 관련 없는 오래된 오류를 지운다고 문제가 해결되는 것은 아닙니다.
PowerShell로 범위가 있는 조회를 만듭니다
관리자 Windows PowerShell에서 최근 한 시간의 시스템 경고·오류·위험 수준을 최대 50개 조회하는 예시입니다. Get-WinEvent 필터 설명처럼 조회 단계에서 범위를 제한하면 전체 로그를 모두 읽은 뒤 거르는 것보다 필요한 정보를 찾기 쉽습니다.
$eventFilter = @{
LogName = 'System'
StartTime = (Get-Date).AddHours(-1)
Level = 1,2,3
}
Get-WinEvent -FilterHashtable $eventFilter -MaxEvents 50 |
Select-Object TimeCreated,ProviderName,Id,LevelDisplayName,Message
조회 조건에 해당하는 이벤트가 없으면 일치 항목이 없다는 메시지가 나올 수 있습니다. 그것만으로 이벤트 서비스 장애라고 보지 않습니다. 시간 범위·로그 이름·권한을 확인하세요. 결과를 CSV로 저장할 때는 메시지의 줄바꿈과 인코딩을 유지하고, 상세 분석용 원본 로그도 별도로 보존합니다.
서비스 이름·의존성·시작 유형을 구분합니다
services.msc에서 서비스의 현재 상태와 시작 유형, 로그온 계정과 복구 동작을 확인합니다. 중지된 모든 서비스를 켜지 않습니다. 트리거에 따라 필요할 때만 시작하는 서비스도 있고, 역할을 설치하지 않아 해당 서비스가 없는 경우도 있습니다.
Get-Service -Name W32Time Get-Service -Name W32Time -RequiredServices Get-Service -Name W32Time -DependentServices Get-CimInstance Win32_Service -Filter "Name='W32Time'" | Select-Object Name,State,StartMode,StartName
예시는 Windows Time 서비스의 상태를 읽을 뿐 재시작하거나 시간을 바꾸지 않습니다. RequiredServices는 이 서비스가 필요로 하는 대상이고 DependentServices는 이 서비스에 의존하는 대상입니다. Get-Service 설명에서 두 방향을 확인할 수 있습니다.
시작 유형 변경과 일회성 시작·재시작은 다른 작업입니다. 서비스가 시작되자마자 종료된다면 로그온 계정, 구성·권한·의존성과 해당 시각의 이벤트를 확인합니다. 서비스 계정 암호를 임의 초기화하면 다른 사용처까지 영향을 줄 수 있습니다.
변경 전에 증거와 복구 수단을 보존합니다
- 원본 로그와 현재 서비스 설정을 저장합니다. 공개 공유할 자료는 내부 이름·계정·경로를 검토합니다.
- 서비스 재시작이 필요한 근거와 사용자 영향을 확인하고 작업 시간을 정합니다.
- 관련 서비스만 변경하고 전후 상태·이벤트를 비교합니다.
- 클라이언트에서 처음 실패한 기능을 같은 조건으로 다시 시험합니다.
- 실패하면 변경한 시작 유형·계정·설정 등 기록한 항목만 원래 값으로 되돌리고 원인을 다시 좁힙니다.
관리 경로를 제공하는 WinRM이나 원격 접속 관련 서비스를 바꾸면 현재 세션이 끊길 수 있습니다. 콘솔 접근을 확보한 뒤 작업하세요. 로그 삭제·서비스 전체 재시작·서버 재부팅을 진단의 첫 단계로 삼지 않습니다.




