아파치 웹 서버

다운로드 250
업데이트 2026. 11. 3.

설치 매뉴얼

개요

아파치 웹 서버의 액세스 로그와 에러 로그 파일을 수집합니다. 소나가 SSH(SFTP)로 웹 서버에 접속해 로그 파일을 읽으며, 로그프레소 노드가 로그 디렉터리를 직접 읽을 수 있으면 로컬 파일로도 수집할 수 있습니다. 액세스 로그는 앱이 제공하는 대시보드에서 확인합니다.

적용 범위

Note
소나 4.0.2308.0 이상에서 동작합니다. 액세스 로그는 Combined 형식이면 아파치 웹 서버 버전과 관계없이 수집합니다. 에러 로그 수집은 앱 1.2.2610.0 이상, 아파치 웹 서버 2.4 기본 에러 로그 형식에서 지원합니다.

요구 사항

항목요구사항비고
액세스 로그Combined 로그 형식아래 단계 1: 로그 형식 확인 참고
에러 로그아파치 웹 서버 2.4 기본 에러 로그 형식2.2 형식이나 ErrorLogFormat을 변경한 로그는 "미분류"로 수집됨
파일 접근 권한로그 디렉터리와 로그 파일에 대한 읽기 권한로컬 수집 시 소나 수집 노드 계정, SFTP 수집 시 SSH 계정
네트워크 허용 (SFTP 사용 시)TCP/22 (소나 수집 노드 → 아파치 웹 서버, Outbound)로컬 파일 수집 시 해당 없음

아파치 웹 서버 설정

단계 1: 로그 형식 확인

액세스 로그는 아래 Combined 형식이어야 합니다. 아파치 설정 파일에서 CustomLog 지시자가 이 형식을 사용하는지 확인합니다.

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog "logs/access_log" combined

에러 로그는 ErrorLogFormat을 따로 지정하지 않은 기본 형식을 수집합니다. 이와 다른 형식의 로그도 수집은 되지만 필드가 파싱되지 않고 "미분류"로 분류됩니다.

단계 2: 로그 파일 위치 확인

아파치 웹 서버는 배포판에 따라 아래 경로에 로그 파일을 생성합니다. 가상 호스트별로 로그 파일을 따로 지정했다면 아파치 설정의 CustomLog, ErrorLog 지시자에서 경로를 확인합니다.

배포판디렉터리 경로액세스 로그에러 로그
RHEL 계열/var/log/httpdaccess_logerror_log
Debian·Ubuntu/var/log/apache2access.logerror.log

SFTP로 수집하는 경우, 로그 디렉터리와 로그 파일의 소유자·권한을 확인하고 로그프레소 접속 계정이 로그 파일을 읽을 수 있도록 설정합니다. 접속 계정은 아파치 웹 서버 로그만 읽을 수 있도록 권한을 제한합니다.

로그프레소 수집 설정

액세스 로그와 에러 로그는 수집기를 각각 등록합니다. SFTP로 수집하는 경우 두 수집기가 같은 SSH 접속 프로파일을 사용합니다.

단계 1 (SFTP 원격 파일 수집 시): SSH 접속 프로파일 추가

원격 웹 서버의 로그 파일을 SFTP로 수집하는 경우, 접속 정보를 접속 프로파일로 먼저 등록합니다. 로컬 파일로 수집하는 경우 이 단계를 건너뜁니다. 시스템 > 접속 프로파일에서 추가를 클릭하고 아래 값을 입력합니다.

소나 SSH 접속 프로파일 추가 화면

구분항목설정
필수이름접속 프로파일을 식별할 고유한 이름. 예: 아파치 웹 서버 SSH
필수식별자로그프레소 쿼리 등에서 사용할 고유 식별자. 예: ssh-example
필수유형SSH 선택
필수호스트아파치 웹 서버의 IP 주소 또는 호스트 이름
필수포트SSH 포트. 기본값 22
필수계정로그 디렉터리에 읽기 권한이 있는 SSH 계정
필수인증 유형인증 키 또는 암호 선택
조건부암호인증 유형이 암호인 경우 계정 암호 입력
필수타임아웃초 단위 접속 타임아웃. 기본값 30
선택접속 유지 시간밀리초 단위 Keep-Alive 간격. 미입력 시 기본값 사용
Caution
안전을 위해 인증 키를 이용한 로그인을 권장합니다. 암호를 사용하는 경우, 잘 알려진 암호나 취약한 암호를 사용하지 말아야 합니다.

인증 키를 사용하는 경우 공개키 설정 방법 버튼을 클릭하면 웹 서버에서 SSH 키 기반 인증을 설정하는 방법과 소나의 SSH 공개키를 확인할 수 있습니다. 안내에 따라 접속 계정의 authorized_keys 파일에 공개키를 등록합니다.

공개키 설정 방법 대화상자

설정을 마치면 쿼리 화면에서 아래와 같이 실행해 로그 파일 내용이 출력되는지 확인합니다. 경로는 환경에 맞게 바꿉니다.

sftp ssh-example cat /var/log/httpd/access_log

에러 로그도 같은 방법으로 확인합니다.

sftp ssh-example cat /var/log/httpd/error_log

단계 2: 액세스 로그 수집기 추가

수집 > 수집기에서 추가를 클릭하고 아래 값을 입력합니다.

액세스 로그 수집기 추가 화면

액세스 로그 수집기 옵션 화면

구분항목설정
필수이름수집기를 식별할 고유한 이름. 예: Apache Access
필수실행 방식주기 선택
필수주기초 단위 수집 주기. 예: 5
필수적재 위치로그를 적재할 노드 선택
선택수집 위치수집을 수행할 센트리 선택
필수수집 모델Apache HTTP Server - SFTP 선택
필수테이블WEB_APACHE_로 시작하는 테이블 이름. 예: WEB_APACHE_ACCESS
필수SSH 프로파일단계 1에서 등록한 접속 프로파일. 예: ssh-example
필수디렉터리 경로로그 파일이 있는 디렉터리의 절대 경로. 예: /var/log/httpd
필수파일이름 패턴액세스 로그 파일 이름에 일치하는 정규식. 예: access_log

앱이 제공하는 대시보드는 이름이 WEB_APACHE_로 시작하는 테이블을 조회하므로, 테이블 이름은 WEB_APACHE_로 시작하도록 지정합니다.

파일이름 패턴은 파일 이름 전체와 일치하는 정규표현식입니다. 같은 디렉터리의 에러 로그가 섞이지 않도록 액세스 로그 파일만 지정합니다. Debian·Ubuntu에서는 access\.log를 입력합니다.

단계 3: 에러 로그 수집기 추가

수집 > 수집기에서 추가를 클릭하고 아래 값을 입력합니다.

에러 로그 수집기 추가 화면

에러 로그 수집기 옵션 화면

구분항목설정
필수이름수집기를 식별할 고유한 이름. 예: Apache Error
필수실행 방식주기 선택
필수주기초 단위 수집 주기. 예: 5
필수적재 위치로그를 적재할 노드 선택
선택수집 위치수집을 수행할 센트리 선택
필수수집 모델Apache HTTP Server Error - SFTP 선택
필수테이블WEB_APACHE_로 시작하지 않는 테이블 이름. 예: APACHE_ERROR
필수SSH 프로파일단계 1에서 등록한 접속 프로파일. 예: ssh-example
필수디렉터리 경로로그 파일이 있는 디렉터리의 절대 경로. 예: /var/log/httpd
필수파일이름 패턴에러 로그 파일 이름에 일치하는 정규식. 예: error_log
Note
에러 로그 테이블 이름은 WEB_APACHE_로 시작하지 않도록 지정합니다. 대시보드는 WEB_APACHE_로 시작하는 테이블을 모두 조회하므로, 에러 로그가 섞이면 통계가 맞지 않습니다.

Debian·Ubuntu에서는 파일이름 패턴에 error\.log를 입력합니다.

Note
에러 로그에는 시간대 정보가 없어서, 로그 시각(event_time)을 소나 수집 노드의 시간대 기준으로 해석합니다. 아파치 웹 서버와 수집 노드의 시간대가 다르면 에러 로그 시각이 그 차이만큼 어긋납니다.

로그프레소 노드가 아파치 웹 서버의 로그 디렉터리를 직접 읽을 수 있는 경우, 수집 모델로 Apache HTTP Server - File, Apache HTTP Server Error - File을 선택하면 접속 프로파일 없이 로컬 파일로 수집합니다. 이때 SSH 프로파일 항목은 표시되지 않으며, 수집 위치는 로그 디렉터리가 있는 노드로 지정합니다.

설치 후 검증

아래 쿼리로 수집이 실제로 동작하는지 최종 확인합니다. 테이블 이름은 단계 2·3에서 입력한 값으로 바꿔 실행합니다.

table duration=10m WEB_APACHE_ACCESS, APACHE_ERROR
| stats count by _table
  • 정상: WEB_APACHE_ACCESS 테이블의 레코드 수가 1 이상. APACHE_ERROR 테이블은 최근 10분간 에러가 없었다면 비어 있을 수 있으며, 이 경우에도 정상입니다.
  • 비정상: 웹 요청이 있었는데도 WEB_APACHE_ACCESS 결과가 없으면 접속 프로파일의 호스트·계정·인증 정보, 접속 계정의 로그 파일 읽기 권한, 수집기의 디렉터리 경로와 파일이름 패턴을 재확인합니다.
  • 수집 오류: 수집기 상태가 오류로 표시되면 수집기의 오류 보기에서 원인을 확인합니다.

참고 자료