62 lines
2.4 KiB
Markdown
62 lines
2.4 KiB
Markdown
# OpenSearch HDD 마이그레이션
|
|
|
|
## 문제
|
|
- OpenSearch 데이터가 SSD(/var/lib/opensearch)에 저장
|
|
- SSD 용량 부족 우려
|
|
|
|
## 해결
|
|
|
|
### 1. 데이터 마이그레이션
|
|
```bash
|
|
sudo mkdir -p /mnt/hdd/opensearch
|
|
sudo cp -rp /var/lib/opensearch/* /mnt/hdd/opensearch/
|
|
sudo chown -R 1000:1000 /mnt/hdd/opensearch
|
|
```
|
|
|
|
### 2. 설정 파일 변경
|
|
|
|
**파일**: `/home/admin/opensearch/docker-compose.yaml`
|
|
- 34번 라인: `/var/lib/opensearch` → `/mnt/hdd/opensearch`
|
|
|
|
**파일**: `/home/admin/opensearch/.gitea/workflows/cicd.yml`
|
|
- 17-19번 라인: `/var/lib/opensearch` → `/mnt/hdd/opensearch`
|
|
- 30-31번 라인: 기존 컨테이너 중복 방지 코드 추가
|
|
|
|
**파일**: `/home/admin/opensearch/Dockerfile`
|
|
- 보안 인증서 COPY 라인 제거
|
|
- `ENV plugins.security.disabled=true` 추가
|
|
|
|
### 3. 보안 플러그인 비활성화
|
|
- docker-compose.yaml 15번 라인: `DISABLE_SECURITY_PLUGIN=true`
|
|
- 내부 네트워크 전용 서비스로 TLS 불필요
|
|
|
|
### 4. 해결 과정 중 발생한 문제
|
|
- Actions 실패: TLS 인증서 파일 없음 → 보안 플러그인 비활성화로 해결
|
|
- 컨테이너 이름 충돌 → Actions에 기존 컨테이너 제거 코드 추가
|
|
- 설정 중복 에러 → Dockerfile ENV 제거, docker-compose.yaml에서만 설정
|
|
|
|
### 5. 최종 상태
|
|
- 데이터 경로: `/mnt/hdd/opensearch` (354MB)
|
|
- 컨테이너: opensearch (opensearch-opensearch-node 이미지)
|
|
- 포트: 9200, 9600
|
|
- HDD 여유 공간: 869GB
|
|
- API 응답: 정상
|
|
- 로그 수집: fluent-bit → data-prepper → OpenSearch 정상
|
|
|
|
### 6. 추가 이슈 (2025-09-30)
|
|
- **문제**: 9/29부터 로그 수집 중단
|
|
- **증상**: fluent-bit → data-prepper 200 OK, 하지만 OpenSearch 저장 실패
|
|
- **에러**: `Cannot deserialize value of type java.util.ArrayList from Object value`
|
|
- **원인**: Data Prepper가 JSON 배열 `[{...}]` 요구, fluent-bit이 단일 객체 `{...}` 전송
|
|
- **시도한 해결책**:
|
|
- json_array on 추가 (Fluentd 전용 파라미터, Fluent Bit에는 없음)
|
|
- Flush 5초, Grace 30 설정 (배치 처리 시도)
|
|
- Format json_lines (Data Prepper 비호환)
|
|
- **상태**: 미해결, 추가 조사 필요
|
|
|
|
### 7. 커밋 이력
|
|
- 7466068: HDD 경로 변경
|
|
- 5f7bf49: Actions 워크플로우 경로 수정
|
|
- 2df7afb: 보안 플러그인 비활성화
|
|
- 8f667d3: DISABLE_SECURITY_PLUGIN 환경변수 수정
|
|
- 66b5ee8: Dockerfile 중복 설정 제거 |