Skip to content

Commit f0bcf3f

Browse files
committed
초기 셋팅 + 그라파나 로그인 수정
1 parent 8518e59 commit f0bcf3f

7 files changed

Lines changed: 464 additions & 3 deletions

File tree

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212
- Visualization: Grafana
1313
- Vulnerability Scan: Trivy
1414

15+
## 참고 문서
16+
17+
- `docs/FUNCTIONAL_SPEC.md`: 기능 정의서 원문
18+
- `docs/IMPLEMENTATION_ROADMAP.md`: 기능 정의서 기준 구현 로드맵
19+
- `docs/DEPLOYMENT.md`: 서버 배포/운영/트러블슈팅 가이드
20+
1521
## 1. 배포 목표
1622

1723
- 공개 주소: `http://mori.rmstudio.co.kr:37854`
@@ -76,6 +82,10 @@ GitHub Actions가 아래 순서로 동작하도록 구성했습니다.
7682

7783
`.env.example` 기준으로 실제 `.env`를 작성해야 합니다.
7884

85+
현재 기본 Grafana 관리자 비밀번호는 요청값에 맞춰 `1234`로 설정되어 있습니다.
86+
단, Grafana 볼륨이 이미 생성된 뒤에는 `.env` 값을 바꿔도 기존 비밀번호가 유지될 수 있으므로,
87+
로그인이 안 되면 `docs/DEPLOYMENT.md`의 Grafana 트러블슈팅 절차를 먼저 확인하세요.
88+
7989
반드시 변경해야 하는 값:
8090

8191
- `GRAFANA_ADMIN_PASSWORD`
@@ -120,11 +130,14 @@ GitHub Actions가 아래 순서로 동작하도록 구성했습니다.
120130

121131
또한 Wazuh Dashboard의 설정 마운트 충돌 가능성을 제거하도록 compose를 보정했습니다.
122132
Wazuh 인증서 마운트도 디렉터리 방식으로 보정해 파일/디렉터리 마운트 꼬임 가능성을 낮췄습니다.
133+
Grafana에는 Loki 데이터소스와 starter overview dashboard 프로비저닝을 추가했습니다.
123134

124135
## 10. 운영 메모
125136

126137
- 현재 공개 서비스는 Grafana만 노출합니다.
127138
- Zabbix / FleetDM / Wazuh Dashboard는 localhost 바인딩으로 제한했습니다.
139+
- Grafana admin 기본값은 `admin / 1234`입니다.
140+
- Grafana 로그인 실패는 대부분 기존 `grafana-data` 볼륨에 남아 있는 초기 비밀번호 때문입니다.
128141
- Wazuh 기본 예제 계정은 공식 예시 기본값(`SecretPassword`)을 사용 중입니다.
129142
- Wazuh 비밀번호를 변경하려면 `config/wazuh_indexer/internal_users.yml`의 해시와 관련 설정을 함께 수정해야 합니다.
130143
- Trivy 스캔은 필요 시 profile로 실행합니다.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: 1
2+
3+
providers:
4+
- name: MORI Starter Dashboards
5+
orgId: 1
6+
folder: MORI SOC-lite
7+
type: file
8+
disableDeletion: false
9+
editable: true
10+
updateIntervalSeconds: 30
11+
options:
12+
path: /etc/grafana/provisioning/dashboards
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
{
2+
"annotations": {"list": []},
3+
"editable": true,
4+
"graphTooltip": 0,
5+
"links": [],
6+
"panels": [
7+
{
8+
"type": "text",
9+
"title": "Security Overview",
10+
"gridPos": {"h": 8, "w": 24, "x": 0, "y": 0},
11+
"options": {
12+
"mode": "markdown",
13+
"content": "# MORI SOC-lite\n\n- Public entry: `http://mori.rmstudio.co.kr:37854`\n- Infrastructure Monitoring: Zabbix\n- Endpoint Security: FleetDM\n- Log Management: Loki + Fluent Bit\n- Security Event Detection: Wazuh\n- Vulnerability Scan: Trivy\n\n이 대시보드는 starter dashboard이며, 기능 정의서 기준 KPI 패널은 이후 단계에서 확장합니다."
14+
}
15+
},
16+
{
17+
"type": "logs",
18+
"title": "Recent Host Logs",
19+
"gridPos": {"h": 12, "w": 24, "x": 0, "y": 8},
20+
"datasource": {"type": "loki", "uid": "loki"},
21+
"targets": [
22+
{
23+
"expr": "{job=\"fluent-bit\"}",
24+
"queryType": "range",
25+
"refId": "A"
26+
}
27+
],
28+
"options": {
29+
"dedupStrategy": "none",
30+
"enableLogDetails": true,
31+
"prettifyLogMessage": false,
32+
"showCommonLabels": false,
33+
"showLabels": true,
34+
"showTime": true,
35+
"sortOrder": "Descending",
36+
"wrapLogMessage": true
37+
}
38+
}
39+
],
40+
"refresh": "30s",
41+
"schemaVersion": 39,
42+
"style": "dark",
43+
"tags": ["mori", "soc-lite", "starter"],
44+
"templating": {"list": []},
45+
"time": {"from": "now-6h", "to": "now"},
46+
"timezone": "browser",
47+
"title": "MORI Security Overview",
48+
"version": 1
49+
}

config/grafana/provisioning/datasources/datasources.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ apiVersion: 1
22

33
datasources:
44
- name: Loki
5+
uid: loki
56
type: loki
67
access: proxy
78
url: http://loki:3100

docs/DEPLOYMENT.md

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ sudo sysctl -w vm.max_map_count=262144
2525

2626
`.env.example`을 기준으로 `.env`를 작성합니다.
2727

28+
현재 Grafana 기본 로그인 값은 `admin / 1234`입니다.
29+
다만 첫 기동 시 생성된 `grafana-data` 볼륨에 이전 비밀번호가 남아 있으면,
30+
`.env` 값을 변경해도 바로 로그인 비밀번호가 바뀌지 않습니다.
31+
2832
필수 변경값:
2933

3034
- `GRAFANA_ADMIN_PASSWORD`
@@ -53,7 +57,38 @@ docker compose ps
5357
기존에 인증서 생성 전에 `docker compose up`을 먼저 실행했다면,
5458
`config/wazuh_indexer_ssl_certs` 내부 경로가 디렉터리로 잘못 생성될 수 있으므로 위처럼 초기화 후 다시 생성하는 것을 권장합니다.
5559

56-
### 5. GitHub Actions 시크릿
60+
### 5. Grafana 로그인 안 될 때
61+
62+
가장 흔한 원인은 아래 3가지입니다.
63+
64+
- 서버 `.env``GRAFANA_ADMIN_PASSWORD`가 기대값과 다름
65+
- GitHub Secret `DEPLOY_ENV_FILE`에 이전 값이 남아 있음
66+
- 기존 `grafana-data` 볼륨에 예전 admin 비밀번호가 저장되어 있음
67+
68+
먼저 실제 적용값을 확인합니다.
69+
70+
```bash
71+
cd /backup/rmstudio/mori
72+
grep '^GRAFANA_ADMIN_' .env
73+
docker compose ps grafana
74+
```
75+
76+
비밀번호를 안전하게 현재 컨테이너 기준으로 재설정하려면:
77+
78+
```bash
79+
cd /backup/rmstudio/mori
80+
docker compose exec grafana grafana cli admin reset-admin-password 1234
81+
docker compose restart grafana
82+
```
83+
84+
이후 아래 계정으로 다시 로그인합니다.
85+
86+
- ID: `admin`
87+
- PW: `1234`
88+
89+
그래도 안 되면 GitHub Actions에 등록한 `DEPLOY_ENV_FILE` 내용도 같이 확인해야 합니다.
90+
91+
### 6. GitHub Actions 시크릿
5792

5893
다음 시크릿을 저장소에 추가하세요.
5994

@@ -66,7 +101,7 @@ docker compose ps
66101

67102
`DEPLOY_ENV_FILE`에는 서버에서 사용할 `.env` 전체 내용을 멀티라인 그대로 넣으면 됩니다.
68103

69-
### 6. GitHub Actions 배포 동작
104+
### 7. GitHub Actions 배포 동작
70105

71106
워크플로우는 다음 순서로 동작합니다.
72107

@@ -77,9 +112,10 @@ docker compose ps
77112
5. `docker compose pull`
78113
6. `docker compose up -d --remove-orphans`
79114

80-
### 7. 운영 메모
115+
### 8. 운영 메모
81116

82117
- 현재 공개 포트는 Grafana만 사용합니다.
118+
- 수동 실행 시에는 `docker-compose` 대신 `docker compose` 사용을 권장합니다.
83119
- Wazuh 기본 계정 해시는 공식 예제 기본값(`SecretPassword`) 기준입니다.
84120
- Wazuh 기본 비밀번호를 변경하려면 `config/wazuh_indexer/internal_users.yml` 해시와 관련 설정을 함께 수정해야 합니다.
85121
- Trivy 점검은 필요 시 아래처럼 실행합니다.

0 commit comments

Comments
 (0)