카테고리 없음
13. ssl모니터링방법
잘나가는전산쟁이
2026. 8. 5. 02:27
728x90
반응형
Apache SSL 인증서 유효기한 모니터링
- 본 문서는 Apache HTTP Server에 구성된 SSL/TLS 인증서의 유효기한을 Zabbix에서 모니터링하는 절차를 설명한다.
- Zabbix 공식 권장 방식은 Website certificate by Zabbix agent 2 템플릿을 사용해 웹사이트 인증서를 조회하는 방법이다.
- 이 방식은 Apache 서버 자체에 별도 스크립트를 배포하지 않아도 되며, Zabbix Agent 2가 설치된 감시 지점에서 대상 사이트의 인증서를 조회한다.
구성 개요
- Zabbix Server 또는 Proxy: 수집 데이터 저장, 이벤트 평가, 알림 처리 담당.
- Zabbix Agent 2: WebCertificate plugin을 이용해 대상 웹사이트의 인증서를 조회하는 컴포넌트.
- Apache HTTPS endpoint: 실제 인증서가 바인딩된 서비스 대상.
- 통신 포트:
- Zabbix Server/Proxy -> Agent 2: 10050/tcp 또는 10051/tcp.
- Agent 2 -> Apache HTTPS endpoint: 443/tcp.
- 모니터링 대상은 Apache 프로세스 자체가 아니라, 외부에서 보이는 실제 HTTPS 인증서이다.
권장 방식
- 공식 문서는 Website certificate by Zabbix agent 2 템플릿 사용을 안내한다.
- 가장 일반적인 구성은 Zabbix Server 또는 별도 Probe 서버에 Agent 2를 설치하고, 그 Agent가 Apache 사이트의 인증서를 조회하는 방식이다.
- 여러 사이트를 함께 감시할 경우 하나의 Agent 2 Host에서 여러 hostname과 port를 매크로로 지정할 수 있다.
사전 준비
- 대상 Apache 사이트가 HTTPS로 정상 서비스 중이어야 한다.
- 감시 지점 서버에 zabbix-agent2가 설치되어 있어야 한다.
- Agent 2가 대상 Apache 사이트의 443/tcp에 접속 가능해야 한다.
- Zabbix Web UI에서 Agent interface가 등록된 Host가 필요하다.
Agent 2 설치
- RHEL 계열 예시는 다음과 같다.
- 운영체제에 맞는 공식 저장소를 사용한다.
rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/rhel/9/noarch/zabbix-release-latest.el9.noarch.rpm
dnf clean all
dnf install -y zabbix-agent2
- 설치 후 서비스를 활성화한다.
systemctl enable --now zabbix-agent2
Agent 2 동작 확인
- 공식 문서는 web.certificate.get[] 키로 인증서 조회 테스트를 안내한다.
- 예시는 다음과 같다.
zabbix_get -s <ZABBIX_AGENT_IP> -k web.certificate.get[example.com]
- 응답이 정상적으로 반환되면 Agent 2의 WebCertificate plugin이 동작하는 상태로 볼 수 있다.
Web UI 등록
- Zabbix Web UI에서 기존 Host를 사용하거나, 인증서 모니터링 전용 Host를 생성한다.
- Host에는 Agent interface를 추가한다.
- Template에는 Website certificate by Zabbix agent 2를 연결한다.
- Host group은 SSL/TLS Monitoring 같은 전용 그룹으로 분리하는 것이 좋다.
주요 매크로
- 공식 문서에서 핵심으로 사용하는 매크로는 아래와 같다.
- {$CERT.WEBSITE.HOSTNAME}
- {$CERT.WEBSITE.IP}
- {$CERT.WEBSITE.PORT}
- {$CERT.EXPIRY.WARN}
예시 값
{$CERT.WEBSITE.HOSTNAME}=www.example.com
{$CERT.WEBSITE.IP}=
{$CERT.WEBSITE.PORT}=443
{$CERT.EXPIRY.WARN}=30
- {$CERT.WEBSITE.IP}는 비워 두면 일반적으로 hostname 기준으로 조회한다.
- 여러 사이트를 한 번에 감시하려면 {$CERT.WEBSITE.HOSTNAME}에 콤마로 구분한 hostname 목록을 넣을 수 있다.
- 이 경우 {$CERT.WEBSITE.PORT}도 순서에 맞게 콤마 구분 포트 목록으로 설정할 수 있다.
수집 항목 예시
- 인증서 만료일.
- 인증서 남은 일수.
- Subject / Issuer 정보.
- Serial number, fingerprint, SAN 정보, 템플릿 구성에 따라 다름.
- 인증서 조회 실패 여부.
트리거 구성
- 공식 템플릿은 인증서 만료가 가까워질 때 문제를 발생시키는 트리거를 포함한다.
- 일반적으로 {$CERT.EXPIRY.WARN} 값을 기준으로 경고를 발생시킨다.
- 예를 들어 30으로 설정하면 만료 30일 전에 경고 이벤트를 발생시킬 수 있다.
Apache 구성 관점 참고
- 이 방식은 Apache 설정 파일 내부를 직접 읽는 방식이 아니라, 실제 서비스 중인 HTTPS endpoint의 인증서를 검사한다.
- 따라서 Apache가 reverse proxy 뒤에 있거나 LB 뒤에 있어도, 실제 접속 대상 URL 기준으로 인증서를 점검할 수 있다.
- 가상호스트별 인증서가 다르면 hostname 단위로 개별 등록하는 것이 좋다.
방화벽 및 접근 제어
- Agent 2는 대상 Apache HTTPS endpoint의 443/tcp에 접근 가능해야 한다.
- Zabbix Server/Proxy와 Agent 간에는 기존 Agent 정책에 따라 10050/tcp 또는 10051/tcp가 필요하다.
- 외부 공개 사이트 인증서는 내부 Agent 2 대신 Zabbix Server 또는 DMZ Probe Host에서 조회하는 구성이 실무에서 편하다.
- SNI가 필요한 환경에서는 hostname을 정확히 지정해야 한다.
대용량 운영 추천값
- 다수의 Apache 사이트를 감시할 경우 인증서 전용 Host를 별도로 만드는 편이 관리가 쉽다.
- 여러 사이트를 한 Host에 몰아넣는 방식도 가능하지만, 운영상 중요 사이트는 Host를 분리하는 것이 알람 추적에 유리하다.
- 추천 시작 기준은 아래와 같다.
| 항목 | 추천값 |
|---|---|
| 템플릿 | Website certificate by Zabbix agent 2 |
| 감시 방식 | Agent 2 WebCertificate plugin |
| 기본 포트 | 443 |
| 경고 임계값 | {$CERT.EXPIRY.WARN}=30 |
| Host 구성 | 중요 사이트는 개별 Host, 일반 사이트는 그룹 Host 가능 |
| 감시 위치 | Zabbix Server, Proxy, 또는 별도 Probe Host |
구방식 참고
- 과거에는 openssl s_client 기반 외부 스크립트나 UserParameter 방식이 많이 사용되었다.
- 현재는 공식 Website certificate by Zabbix agent 2 템플릿 사용이 더 단순하고 유지보수도 쉽다.
- 기존 스크립트 기반 방식은 즉시 제거하기보다 공식 템플릿으로 단계적으로 전환하는 것이 현실적이다.
점검 항목
- zabbix-agent2 서비스가 정상 실행 중인지 확인한다.
- web.certificate.get[] 키 테스트가 성공하는지 확인한다.
- {$CERT.WEBSITE.HOSTNAME} 값이 실제 접속 가능한 Apache HTTPS hostname과 일치하는지 확인한다.
- SNI, DNS, 방화벽, 프록시 경유 여부는 가장 흔한 실패 원인이므로 우선 점검한다.
- 템플릿 연결 후 Latest data에 인증서 관련 항목이 들어오는지 확인한다.
운영 팁
- 인증서 만료일만 보지 말고 Apache availability, 응답시간, HTTP status code와 함께 묶어서 감시하는 것이 좋다.
- 와일드카드 인증서나 멀티 도메인 인증서는 SAN 정보까지 함께 확인하는 편이 안전하다.
- LB, CDN, WAF 뒤에 있는 사이트는 실제 최종 사용자 관점에서 보이는 인증서를 감시하도록 URL을 정해야 한다.
- 먼저 중요 대외 서비스부터 적용하고, 이후 내부 포털과 관리 사이트로 확대하는 방식이 안정적이다.
728x90
반응형