리눅스 정보실
리눅스 에러 로그 확인과 문제 해결
고지존
2025. 9. 12. 18:03
리눅스 서버를 운영하다 보면 다양한 문제와 에러가 발생합니다. 웹 서버가 느려지거나 접속이 안 되고, 데이터베이스 연결 오류가 나타나기도 합니다. 이 글에서는 **실시간 로그 확인**, 단계별 분석, 판단 방법, 실제 예시까지 모두 포함해 누구나 따라할 수 있는 실무 가이드를 제공합니다.
1. 로그 파일 확인: 어디서 무엇을 볼까?
문제 해결의 첫 단계는 로그 파일을 아는 것입니다. 주요 로그 파일과 역할은 다음과 같습니다:
/var/log/syslog
: 시스템 전반 메시지/var/log/messages
: 커널 및 일반 시스템 메시지/var/log/auth.log
: 인증 및 권한 문제/var/log/nginx/error.log
또는/var/log/httpd/error_log
: 웹 서버 에러/var/log/mysql/error.log
: 데이터베이스 오류
**실무 확인 예시:**
ls /var/log
tail -n 20 /var/log/nginx/error.log
이 단계에서 확인할 점:
- 문제가 발생한 서비스에 맞는 로그 파일 선택
- 최근 기록과 에러 패턴 확인
예시:
[error] connect() failed (111: Connection refused) while connecting to upstream
2. 실시간 로그 확인: 문제 발생 순간 파악
문제가 발생했을 때 실시간으로 로그를 확인하면 원인을 바로 잡는 데 큰 도움이 됩니다.
**방법:**
tail -f /var/log/nginx/error.log
journalctl -f -u nginx
**확인 포인트:**
- 실시간 에러 메시지 발생 여부
- 서비스 요청 시 발생하는 에러 패턴
예시:
2025-09-12 17:05:12 [error] upstream timed out (110: Connection timed out)
→ 웹 요청 시 백엔드 서버 연결이 지연됨
3. 에러 발생 시간 및 패턴 분석
문제가 특정 시간에 반복되는지, 지속적으로 나타나는지 확인하는 단계입니다.
grep "2025-09-12 17:" /var/log/nginx/error.log
**파악 정보:**
- 문제 발생 시간
- 반복 여부
- 특정 요청 또는 이벤트와 연관 여부
판단 기준:
- 특정 시간대만 발생 → 스케줄링 문제 가능
- 지속적으로 발생 → 설정 오류 가능
4. 서비스 상태 점검
로그만으로 문제를 파악하기 어려운 경우 서비스 상태를 직접 확인합니다.
systemctl status nginx
systemctl status mysql
**파악 정보:**
- 서비스가 실행 중인지 여부
- 최근 재시작 기록
- 실패 원인
판단 기준:
- Active: running → 정상
- Active: failed → 즉시 재시작 및 로그 확인 필요
예시:
Active: failed (Result: exit-code)
5. 문제 원인 분석
실제 로그와 서버 환경을 확인하며 문제 원인을 분석합니다.
- 로그 메시지 분석
- 설정 파일 확인:
/etc/nginx/nginx.conf
,/etc/my.cnf
- 포트 및 연결 상태 확인:
netstat -tulnp
- 권한 문제 확인:
ls -l
, sudo 권한 체크
판단 기준:
- Permission denied → 권한 문제
- Connection refused → 포트 차단 또는 서비스 종료
- upstream timed out → 백엔드 연결 지연
- config error → 설정 파일 검토 필요
예시:
Permission denied while connecting to upstream
6. 문제 해결 후 모니터링
문제를 해결한 뒤에는 동일한 에러가 반복되지 않는지 모니터링해야 합니다.
tail -f /var/log/nginx/error.log
확인 내용:
- 동일 에러 반복 여부
- 서비스 정상 동작 여부
판단:
- 동일 에러 반복 → 원인 미해결, 다시 분석 필요
- 에러 사라짐 → 문제 해결 완료
7. 정기 점검과 자동화
서버 안정성을 위해 반복되는 문제를 예방할 수 있습니다.
- Cron을 사용해 정기적으로 로그 확인
- 에러 발생 시 이메일 알림 설정
- 서비스 재시작이 필요한 경우 스크립트로 자동화
예시 스크립트:
#!/bin/bash
if grep -i "error" /var/log/nginx/error.log | tail -n 20; then
echo "에러 발생! 확인 필요" | mail -s "서버 로그 알림" admin@example.com
fi
8. 추가 팁: 실무에서 자주 만나는 에러 예시
- 502 Bad Gateway → 백엔드 서버 연결 실패, 설정 오류
- 403 Forbidden → 권한 문제, Nginx 설정 확인
- MySQL 연결 실패 → 계정 권한, 포트 확인
- systemd 서비스 비정상 종료 → 로그 확인 후 재시작 필요
리눅스 서버 운영에서 로그 확인은 문제 해결의 핵심입니다. 이 글을 따라하면 단계별로 로그를 확인하고 실시간 모니터링하며, 문제 원인을 분석하고 해결까지 수행할 수 있습니다. 실제 예시와 판단 기준을 포함했으므로 누구나 바로 적용할 수 있는 실무 가이드입니다.