2121## 1. 배포 목표
2222
2323- 공개 주소: ` http://mori.rmstudio.co.kr:37854 `
24+ - Grafana 주소: ` http://mori.rmstudio.co.kr:13000 `
25+ - Zabbix 주소: ` http://mori.rmstudio.co.kr:18081 `
2426- 배포 경로: ` /backup/rmstudio/mori `
2527- 배포 방식: GitHub Actions + SSH
2628- 실행 방식: ` docker compose `
2729
28- 현재 외부 공개 진입점은 ** Grafana** 입니다.
30+ 현재 외부 공개 진입점은 ** 메인 포털** 이며,
31+ 포털에서 Grafana와 Zabbix 운영 UI로 이동하는 구조입니다.
2932
3033## 2. 현재 구성된 서비스
3134
3235### Public Entry
33- - ` Grafana ` (` 37854 ` )
36+ - ` Main Portal ` (` 37854 ` )
37+ - ` Grafana ` (` 13000 ` )
38+ - ` Zabbix Web ` (` 18081 ` , 기본값)
3439
3540### Internal Services
3641- ` Loki ` : 중앙 로그 저장소
4348## 3. 포트 구성
4449
4550- Public
46- - ` 37854 ` → Grafana
51+ - ` 37854 ` → Main Portal
52+ - ` 13000 ` → Grafana
53+ - ` 18081 ` → Zabbix Web
4754
4855- Internal / localhost only
49- - ` 127.0.0.1:18081 ` → Zabbix Web
50- - ` 127.0.0.1:1337 ` → FleetDM
56+ - ` 127.0.0.1:1337 ` → FleetDM
5157 - ` 127.0.0.1:8443 ` → Wazuh Dashboard
5258
5359- Service ports
6470- ` generate-indexer-certs.yml ` : Wazuh 인증서 생성용 compose 파일
6571- ` .github/workflows/deploy.yml ` : GitHub Actions 배포 워크플로우
6672- ` docs/DEPLOYMENT.md ` : 서버 준비 및 운영 가이드
73+ - ` config/portal/index.html ` : 메인 포털 페이지
6774- ` config/* ` : 각 서비스별 설정 파일
6875
6976## 5. 배포 방식
@@ -86,6 +93,8 @@ GitHub Actions가 아래 순서로 동작하도록 구성했습니다.
8693단, Grafana 볼륨이 이미 생성된 뒤에는 ` .env ` 값을 바꿔도 기존 비밀번호가 유지될 수 있으므로,
8794로그인이 안 되면 ` docs/DEPLOYMENT.md ` 의 Grafana 트러블슈팅 절차를 먼저 확인하세요.
8895
96+ 메인 포털은 ` PUBLIC_PORT ` , Grafana는 ` GRAFANA_PORT ` , Grafana URL 표시는 ` GRAFANA_URL ` 을 사용합니다.
97+
8998반드시 변경해야 하는 값:
9099
91100- ` GRAFANA_ADMIN_PASSWORD `
@@ -131,20 +140,97 @@ GitHub Actions가 아래 순서로 동작하도록 구성했습니다.
131140또한 Wazuh Dashboard의 설정 마운트 충돌 가능성을 제거하도록 compose를 보정했습니다.
132141Wazuh 인증서 마운트도 디렉터리 방식으로 보정해 파일/디렉터리 마운트 꼬임 가능성을 낮췄습니다.
133142Grafana에는 Loki 데이터소스와 starter overview dashboard 프로비저닝을 추가했습니다.
143+ 메인 포털 페이지도 추가해 37854 포트에서 운영 UI 동선을 제공하도록 구성했습니다.
134144
135145## 10. 운영 메모
136146
137- - 현재 공개 서비스는 Grafana만 노출합니다.
138- - Zabbix / FleetDM / Wazuh Dashboard는 localhost 바인딩으로 제한했습니다.
147+ - 현재 공개 서비스는 Main Portal, Grafana, Zabbix Web입니다.
148+ - FleetDM / Wazuh Dashboard는 localhost 바인딩으로 제한했습니다.
149+ - 메인 포털(` 37854 ` )에서 Grafana(` 13000 ` )와 Zabbix(` 18081 ` )로 이동할 수 있습니다.
150+ - Zabbix 알람/트리거 조정은 Web UI를 통해 운영할 수 있습니다.
139151- Grafana admin 기본값은 ` admin / 1234 ` 입니다.
140152- Grafana 로그인 실패는 대부분 기존 ` grafana-data ` 볼륨에 남아 있는 초기 비밀번호 때문입니다.
141153- Wazuh 기본 예제 계정은 공식 예시 기본값(` SecretPassword ` )을 사용 중입니다.
142154- Wazuh 비밀번호를 변경하려면 ` config/wazuh_indexer/internal_users.yml ` 의 해시와 관련 설정을 함께 수정해야 합니다.
143155- Trivy 스캔은 필요 시 profile로 실행합니다.
144156
145- ## 11. 다음 작업 후보
157+ ## 11. 어떻게 테스트하면 되는지
158+
159+ 배포 후 아래 순서로 최소 기능 테스트를 진행하면 됩니다.
160+
161+ ### 1) 컨테이너 상태 확인
162+
163+ - ` docker compose ps `
164+ - ` docker compose logs grafana --tail=50 `
165+ - ` docker compose logs zabbix-web --tail=50 `
166+
167+ 정상 기준:
168+
169+ - 주요 컨테이너가 ` Up ` 상태
170+ - Grafana / Zabbix Web 로그에 치명 오류가 없음
171+
172+ ### 2) Grafana 로그인 테스트
173+
174+ - 메인 포털 접속: ` http://mori.rmstudio.co.kr:37854 `
175+ - Grafana 접속: ` http://mori.rmstudio.co.kr:13000 `
176+ - 계정: ` admin / 1234 `
177+ - 확인 항목:
178+ - 메인 포털에서 Grafana 링크 이동 가능
179+ - 로그인 성공
180+ - ` MORI Security Overview ` 대시보드 표시
181+ - Explore에서 Loki 데이터소스 선택 가능
182+
183+ 로그인이 안 되면 ` docs/DEPLOYMENT.md ` 의 Grafana 비밀번호 리셋 절차를 수행합니다.
184+
185+ ### 3) Zabbix Web UI 테스트
186+
187+ - 메인 포털 접속: ` http://mori.rmstudio.co.kr:37854 `
188+ - 접속: ` http://mori.rmstudio.co.kr:18081 `
189+ - 확인 항목:
190+ - 메인 포털에서 Zabbix 링크 이동 가능
191+ - 로그인 화면 노출
192+ - Zabbix 서버 연결 오류가 없는지 확인
193+ - 향후 트리거/알람 조정용 UI로 접근 가능한지 확인
194+
195+ ### 4) Loki 로그 수집 테스트
196+
197+ Grafana Explore에서 Loki로 아래 쿼리를 실행합니다.
198+
199+ - ` {job="fluent-bit"} `
200+
201+ 정상 기준:
202+
203+ - 호스트 로그가 조회됨
204+ - 새 로그가 시간 흐름에 따라 계속 유입됨
205+
206+ ### 5) Wazuh / Fleet 접속 테스트
207+
208+ - FleetDM: 서버에서 ` http://127.0.0.1:1337 `
209+ - Wazuh Dashboard: 서버에서 ` https://127.0.0.1:8443 `
210+
211+ 현재 두 서비스는 외부 공개하지 않고 내부 운영용으로 유지합니다.
212+
213+ ### 6) 취약점 스캔 테스트
214+
215+ - ` docker compose --profile scanner run --rm trivy `
216+
217+ 정상 기준:
218+
219+ - Trivy가 실행되고 결과 테이블이 출력됨
220+
221+ ### 7) 운영 테스트 체크리스트
222+
223+ - 메인 포털 접속 가능
224+ - Grafana 로그인 가능
225+ - Zabbix Web UI 접속 가능
226+ - Loki 로그 조회 가능
227+ - Trivy 실행 가능
228+ - Wazuh/Fleet 내부 포트 접속 가능
229+
230+ ## 12. 다음 작업 후보
146231
147232- Grafana 대시보드/프로비저닝 고도화
233+ - Zabbix 템플릿/API 자동화 또는 통합 운영 UI 설계
148234- HTTPS 리버스 프록시(Nginx/Caddy) 추가
149235- Wazuh/Fleet 초기 운영 설정 보강
150236- 실제 서버 기동 후 헬스체크 및 초기 로그인 검증
0 commit comments