기타 서비스 로그 종류 및 오류 내용

기타 서비스 로그 종류 및 오류 내용


관제 배치 프로그램이 아닌 Apache, Tomcat, MySQL 서비스에서 제공하는 기본 로그에 대해 설명합니다.

Apache 로그

Apache 서비스 로그 위치는 다음과 같습니다.
  1. 윈도우 서버 : C:\www\Apache24_x64\logs
  1. 리눅스 서버 : /usr/local/apache/logs

로그의 종류

  1. 액세스 로그(access log): 모든 요청과 응답에 대한 정보를 기록합니다. 이 로그는 기본적으로 "access_log" 파일에 됩니다. 액세스 로그에는 각 요청의 IP 주소, 사용자 에이전트(user agent), 요청한 파일 경로, HTTP 상태 코드 등의 정보가 포함됩니다.
  1. 에러 로그(error log): 모든 오류와 예외 상황에 대한 정보를 기록합니다. 이 로그는 기본적으로 "error_log" 파일에 기록됩니다. 에러 로그에는 오류가 발생한 시간, 오류 유형, 오류 메시지 등의 정보가 포함됩니다.

에러 로그에서 많이 발견되는 오류 내용

아래는 일반적으로 많이 볼 수 있는 오류 내용이며 이외에도 많은 오류가 발생할 수 있습니다.

  1. Syntax error: Apache 설정 파일에서 구문 오류가 발생한 경우, 이 오류는 에러 로그에 기록됩니다. 이 오류는 일반적으로 웹 서버가 시작되지 않는 원인이 됩니다.
  1. File not found: 웹 서버에서 요청한 파일이 존재하지 않을 경우, 이 오류가 발생합니다. 이 오류는 클라이언트의 요청에 대한 응답으로 404 에러 페이지를 표시합니다.
  1. Permission denied: 파일 또는 디렉토리에 대한 권한이 없는 경우, 이 오류가 발생합니다. 이 오류는 일반적으로 웹 서버에서 파일을 읽거나 쓰려고 할 때 발생합니다.
  1. Internal server error: 웹 서버에서 처리할 수 없는 오류가 발생한 경우, 이 오류가 발생합니다. 이 오류는 일반적으로 서버 측 프로그램에서 발생한 오류, 예를 들어 PHP 스크립트에서 발생한 오류 등이 원인이 됩니다.
  1. Timeout: 클라이언트의 요청이 처리되는 동안 시간 초과가 발생한 경우, 이 오류가 발생합니다. 이 오류는 일반적으로 웹 서버가 처리할 수 있는 클라이언트 요청의 수를 초과하거나, 서버 자원이 부족한 경우에 발생합니다.

Tomcat 로그

Tomcat 로그 위치는 다음과 같습니다.
  1. 윈도우 서버 : C:\www\Tomcat7_x64\logs
  1. 리눅스 서버 : /usr/local/tomcat/logs


로그의 종류

  1. Access 로그: Tomcat에 접근한 클라이언트의 정보(요청 URL, IP 주소, 브라우저 정보 등)를 기록하는 로그입니다. 일반적으로 웹 서버 로그와 비슷한 형식을 갖고 있으며, 접근 로그라고도 합니다.
  1. Catalina 로그: Tomcat 내부에서 발생하는 오류 및 예외 상황에 대한 정보를 기록하는 로그입니다. 이 로그는 Tomcat 실행 중 문제가 발생할 경우, 문제의 원인 파악 및 해결을 위해 매우 중요한 정보를 제공합니다.
오류 내용은 주로 Catalina 로그에서 찾을 수 있고 아래 내용을 확인할 수 있습니다.



  1. 오류 메시지: 예외가 발생한 원인과 관련된 정보를 제공하는 메시지입니다. 이 메시지는 오류의 원인 파악 및 해결에 매우 중요한 역할을 합니다.
  1. 예외 스택 트레이스: 예외가 발생한 코드 경로를 나타내는 스택 트레이스 정보입니다. 이 정보는 예외가 발생한 원인을 추적하고, 이를 수정하는 데 도움이 됩니다.
  1. 시간 정보: 오류가 발생한 시간 정보입니다. 이 정보는 오류 발생 시간을 파악하고, 이를 통해 오류가 발생한 시점의 상황을 파악하는 데 도움이 됩니다.
  1. 요청 정보: 오류가 발생한 요청에 대한 정보입니다. 이 정보는 어떤 요청으로 인해 오류가 발생했는지 파악하고, 이를 수정하는 데 도움이 됩니다.
  1. 환경 정보: 오류가 발생한 시스템 환경 정보입니다. 이 정보는 오류가 발생한 시스템 환경을 파악하고, 이를 수정하는 데 도움이 됩니다.


  1. Manager 로그: Tomcat 매니저 웹 애플리케이션의 로그입니다. 매니저 웹 애플리케이션은 Tomcat 서버에서 실행 중인 다른 웹 애플리케이션을 관리하는 도구로 사용됩니다. 따라서, 매니저 로그는 Tomcat 서버의 실행 상태 및 웹 애플리케이션의 배포, 재시작 등과 관련된 정보를 제공합니다.
  1. Host-manager 로그: Tomcat 호스트 매니저 웹 애플리케이션의 로그입니다. 호스트 매니저 웹 애플리케이션은 Tomcat 서버의 가상 호스트(Virtual Host)를 관리하는 도구로 사용됩니다. 호스트 매니저 로그는 가상 호스트의 상태 및 배포된 웹 애플리케이션에 대한 정보를 제공합니다.
  1. stdout/stderr 로그: 웹 애플리케이션에서 출력하는 System.out.println() 또는 System.err.println() 등의 메시지를 기록하는 로그입니다. 이 로그는 웹 애플리케이션에서 발생한 문제를 추적하거나, 디버깅을 위해 사용됩니다.

에러 로그에서 많이 발견되는 오류 내용

아래는 일반적으로 많이 볼 수 있는 오류 내용이며 이외에도 많은 오류가 발생할 수 있습니다.

  1. ClassNotFoundException: 클래스를 찾을 수 없는 경우 발생합니다.
  1. SQLException: 데이터베이스 연결 또는 쿼리 실행과 관련된 문제가 발생한 경우 발생합니다.
  1. IOException: 파일 입출력과 관련된 문제가 발생한 경우 발생합니다.
  1. ServletException: 웹 애플리케이션 처리 중 문제가 발생한 경우 발생합니다.
  1. NullPointerException: null체를 참조하려고 할 때 발생합니다.
  1. OutOfMemoryError: 메모리 부족으로 인해 발생하는 경우입니다.
  1. IndexOutOfBoundsException: 배열이나 리스트 등에서 인덱스 범위를 벗어난 경우 발생합니다.
  1. ClassCastException: 클래스 형변환 과정에서 타입 불일치 문제가 발생한 경우 발생합니다.
  1. NumberFormatException: 문자열을 숫자로 변환할 때 문제가 발생한 경우 발생합니다.

MySQL 로그

MySQL 로그 경로는 MYSQL DATA경로에 위치하며, 설정으로 변경될 수 있습니다. 기본 경로는 다음과 같습니다.
  1. 윈도우 : C:\mysql\data
  1. 리눅스 : /usr/local/mysql/var

로그 외에도 인터넷 웹 브라우저 주소창에 서버IP/bin/db_test/{DB타입}.jsp를 입력하면 DB 연결상태에 관한 오류 정보를 확인할 수 있습니다. (MySQL, MSSQL, Oracle 만 가능합니다.)

또한 MySQL 접속하여 show processlist; 쿼리를 통해 현재 실행중인 쿼리를 확인하여 문제되는 쿼리를 파악이 필요합니다.

MySQL 로그의 종류

  1. Error Log: 오류 로그는 MySQL에서 발생하는 모든 오류 및 경고 메시지를 기록합니다. 이 로그를 사용하여 MySQL 서버의 문제를 진단하고 해결할 수 있습니다.
  1. Slow Query Log: 슬로우 쿼리 로그는 실행 시간이 지연된 쿼리를 기록합니다. 쿼리가 실행된 시간, 실행 시간, 사용된 리소스 등의 정보를 기록합니다. 이 로그를 사용하여 성능 문제를 파악하고 최적화할 수 있습니다. Slow Query Log는 /plusdrive/log/slowquery.log 파일에 기록됩니다.
  1. Binary Log: 바이너리 로그는 MySQL에서 수행된 모든 변경 사항을 기록합니다. 바이너리 로그는 데이터베이스 복구와 데이터베이스 복제를 위해 사용됩니다.
  1. InnoDB Log: InnoDB 스토리지 엔진에서 사용됩니다. InnoDB 로그는 데이터베이스의 상태를 복구하는 데 사용됩니다.

에러 로그에서 많이 발견되는 오류 내용

  1. MySQL 서버 시작/종료 관련 메시지: MySQL 서버 시작 시의 오류 메시지, MySQL 서버 중지 시의 오류 메시지 등
  1. 데이터베이스 연결 관련 메시지: 클라이언트가 MySQL 서버에 연결할 수 없을 때의 오류 메시지, 잘못된 로그인 정보를 제공했을 때의 오류 메시지 등. 동시접속자 초과한 경우 MySQL 접속하여 “show variables like '%max_connect%';” 쿼리를 통하여 현재 접속자 수를 확인 할 수 있습니다. 최대 접속자 수를 변경하려면 my.cnf 파일의 max_connections 수를 변경하고 MySQL서비스를 재시작해야 됩니다.
  1. 쿼리 실행 관련 메시지: MySQL 쿼리 실행 시 문법 오류가 있을 때의 오류 메시지, 쿼리 수행 시 제약 조건을 위반했을 때의 오류 메시지, 데이터베이스에 대한 권한 부족으로 쿼리를 수행하지 못했을 때의 오류 메시지 등
  1. 데이터베이스 백업과 복원 관련 메시지: MySQL 데이터베이스 백업/복원 시 오류가 발생했을 때의 오류 메시지 등
  1. 기타 오류 및 경고 메시지: MySQL 서버 운영 중 발생하는 다양한 경고 메시지, 또는 기타 MySQL 설정과 관련된 오류 메시지 등