카테고리 없음

11. Apache 모니터링방법

잘나가는전산쟁이 2026. 8. 5. 02:25
728x90
반응형

Apache 성능 모니터링

  • 본 문서는 Zabbix에서 Apache HTTP Server의 성능 지표를 모니터링하는 절차를 설명한다.
  • Zabbix 공식 권장 방식은 Apache의 mod_status 모듈을 활성화하고, Apache by HTTP 템플릿을 이용해 HTTP 기반으로 수집하는 방법이다.
  • 이 방식은 별도의 외부 스크립트가 필요 없으며, Apache 서버에 Zabbix Agent를 반드시 설치할 필요도 없다.

구성 개요

  • Zabbix Server 또는 Proxy: Apache 상태 페이지를 HTTP로 조회해 데이터를 수집한다.
  • Apache HTTP Server: mod_status를 통해 상태 정보를 노출한다.
  • 통신 포트:
    • Zabbix Web UI -> Zabbix Server: 80/tcp, 443/tcp.
    • Zabbix Server/Proxy -> Apache status page: 80/tcp 또는 443/tcp.
  • 기본 상태 URL은 일반적으로 /server-status?auto 형태를 사용한다.

권장 방식

  • 공식 문서는 Apache by HTTP 템플릿 사용을 안내한다.
  • 이 템플릿은 HTTP agent 방식으로 Apache 상태 페이지를 읽어 지표를 수집한다.
  • Apache 서버에 Agent를 설치하지 않아도 되며, Host interface는 {HOST.CONN} 매크로 해석용으로만 사용될 수 있다.

사전 준비

  • Apache HTTP Server가 정상 구동 중이어야 한다.
  • mod_status 모듈이 활성화되어 있어야 한다.
  • Zabbix Server 또는 Proxy에서 Apache의 상태 페이지에 접근 가능해야 한다.
  • 상태 페이지는 반드시 Zabbix Server 또는 Proxy IP만 접근 가능하도록 제한하는 것이 좋다.

mod_status 활성화 확인

  • RHEL 계열에서는 아래 명령으로 상태 모듈 활성 여부를 확인한다.
httpd -M | grep status
  • Debian/Ubuntu 계열에서는 아래 명령을 사용한다.
apache2ctl -M | grep status
  • 출력에 status_module이 보이면 활성화된 상태이다.

mod_status 설정

  • Apache 2.4 기준 예시는 아래와 같다. Zabbix Server IP만 접근 가능하게 제한한다.
<Location "/server-status">
    SetHandler server-status
    Require ip <ZABBIX_SERVER_IP>
</Location>

ExtendedStatus On
  • RHEL 계열에서는 일반적으로 /etc/httpd/conf.modules.d/status.conf 또는 /etc/httpd/conf.d/ 아래에 설정한다.
  • Debian/Ubuntu 계열에서는 /etc/apache2/mods-enabled/status.conf를 주로 사용한다.

Apache 재시작

  • 설정 변경 후 Apache를 재시작 또는 reload 한다.
systemctl restart httpd
  • Debian/Ubuntu 계열은 아래와 같다.
systemctl restart apache2

상태 페이지 확인

  • 설정이 완료되면 상태 페이지가 정상 응답하는지 확인한다.
  • 일반적으로 아래 URL을 사용한다.
curl http://<APACHE_SERVER_IP>/server-status?auto
  • 응답에 Total Accesses, BusyWorkers, IdleWorkers 같은 값이 보이면 정상이다.

Web UI 등록

  • Zabbix Web UI에서 Apache 서버를 나타낼 Host를 생성한다.
  • Host interface에는 Apache 서버의 IP 또는 DNS를 지정한다. 이 값은 {HOST.CONN} 매크로 해석에 사용된다.
  • Templates에서 Apache by HTTP를 연결한다.
  • Macros 탭에서 상태 페이지 접속 정보를 환경에 맞게 조정한다.

주요 매크로

  • 공식 HTTP 템플릿 문서 기준으로 아래 매크로를 주로 사용한다.
    • {$APACHE.STATUS.HOST} 기본값 127.0.0.1
    • {$APACHE.STATUS.PATH} 기본값 server-status?auto
    • {$APACHE.STATUS.PORT} 기본값 80
    • {$APACHE.STATUS.SCHEME} 기본값 http

예시 값

  • {$APACHE.STATUS.HOST} = 10.10.10.20

  • {$APACHE.STATUS.PATH} = server-status?auto

  • {$APACHE.STATUS.PORT} = 80

  • {$APACHE.STATUS.SCHEME} = http

  • HTTPS를 사용할 경우 포트와 scheme을 각각 443, https로 변경한다.

수집 항목 예시

  • Apache availability
  • Total Accesses
  • Total kBytes
  • BusyWorkers
  • IdleWorkers
  • Requests per second
  • Bytes per second
  • CPU load 또는 scoreboard 관련 상태값, 구성에 따라 다름

방화벽 및 접근 제어

  • Apache 상태 페이지는 외부 전체 공개가 아니라 Zabbix Server 또는 Proxy IP만 접근 가능하도록 제한해야 한다.
  • HTTP는 80/tcp, HTTPS는 443/tcp를 사용한다.
  • Reverse proxy나 WAF 뒤에 두는 환경에서는 실제 status URL 경로와 접근 제어 정책을 함께 점검해야 한다.

대용량 운영 추천값

  • 대규모 웹 서버 환경에서는 개별 서버마다 템플릿과 매크로 값을 표준화하는 것이 중요하다.
  • Apache 상태 페이지는 가능한 한 내부망 또는 관리망에서만 접근되도록 구성하는 것이 좋다.
  • 추천 시작 기준은 아래와 같다.
항목 추천값
템플릿 Apache by HTTP
상태 URL /server-status?auto
접근 방식 내부망 또는 관리망 한정
상태 페이지 접근 허용 Zabbix Server/Proxy IP만 허용
프로토콜 가능하면 HTTPS
운영 방식 Host group과 매크로 표준화

구방식 참고

  • 과거에는 외부 스크립트나 UserParameter 기반으로 Apache 상태를 수집하는 경우가 많았다.
  • 현재는 공식 Apache by HTTP 템플릿 사용이 더 단순하고 유지보수도 쉽다.
  • 기존 스크립트 기반 환경은 즉시 제거하기보다 단계적으로 HTTP 템플릿 방식으로 전환하는 것이 현실적이다.

점검 항목

  • mod_status가 활성화되어 있는지 확인한다.
  • /server-status?auto가 정상 응답하는지 확인한다.
  • Zabbix Web UI에서 Host interface가 올바르게 등록되었는지 확인한다.
  • Apache by HTTP 템플릿이 연결되었는지 확인한다.
  • 매크로 값, 접근 제어, 방화벽 차단은 가장 흔한 원인이므로 우선 점검한다.

운영 팁

  • Apache 자체 성능 지표와 OS 수준 CPU, Memory, Disk 지표를 함께 수집해야 원인 분석이 쉬워진다.
  • 다수의 Apache 서버를 운영할 경우 Host group, 매크로, 템플릿 적용 기준을 표준화하는 것이 좋다.
  • TLS 종료가 앞단 LB에서 이뤄지는 구조라면 실제 Apache status 접근 URL과 원본 포트를 분리해서 문서화하는 편이 좋다.
  • 먼저 기본 상태 지표만 적용한 뒤, 이후 응답시간, 인증서, 웹 시나리오 감시까지 확장하는 방식이 운영에 유리하다.
728x90
반응형