From 6e6856617116545ec7e49808d0eb48620c7d5752 Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Mon, 9 Mar 2026 18:36:33 +0900 Subject: [PATCH] docs: redirect infrastructure troubleshooting to infra docs --- ...17_starsandi_dns_nginx_ssl_๋ถ„๋ฆฌ์ ์šฉ.md | 54 +------ ...‹จ์‚ฌ๊ณ _๋ณต๊ตฌ_๋ฐ_์˜์กดํฌํŠธ_์ ๊ฒ€.md | 143 +----------------- ...51123_ufw_์™ธ๋ถ€ํฌํŠธ_์ฐจ๋‹จ_ํ•˜๋“œ๋‹.md | 73 +-------- ...05_51124_๋‹ค์šด_์ƒํƒœ_๋ฐ_๋ณต๊ตฌ์˜ˆ์ •.md | 14 +- ...๋ฃจํŠธํฌ์Šค_์ฐจ๋‹จ_๋ฐ_fail2ban_๊ต์ •.md | 38 +---- ..._bot_account_compromise_and_eradication.md | 79 +--------- ...nclaw_gateway_์ƒ์ฃผํ”„๋กœ์„ธ์Šค_์ •๋ฆฌ.md | 41 +---- ..._219_51_์ ‘์†๋ถˆ๊ฐ€_์ž„์‹œ๋ฐฑ์—…๋ณต๊ตฌ.md | 43 +----- ...8001_์—ฐ๊ฒฐ์ ๊ฒ€_23์„œ๋ฒ„_์ „๋‹ฌ์‚ฌํ•ญ.md | 59 +------- ...œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md | 119 +-------------- ...ot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md | 45 +----- ..._gitea_lfs_permission_denied_502_๋ณต๊ตฌ.md | 47 +----- ...˜์ด์ „_๋„คํŠธ์›Œํฌ๋ณ€๊ฒฝ_์šด์˜๊ธฐ๋ก.md | 21 +-- ...AS_๊ถŒํ•œ์ •๋ ฌ_๋ฐ_์‹ค์—…๋กœ๋“œ_๊ฒ€์ฆ.md | 76 +--------- ...SOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ.md | 77 +--------- ...untime_secrets_๋ถ„๋ฆฌ_์ ์šฉ_๋ฐ_๊ฒ€์ฆ.md | 79 +--------- journey/troubleshooting/README.md | 6 + 17 files changed, 87 insertions(+), 927 deletions(-) diff --git a/journey/troubleshooting/2026-02-17_starsandi_dns_nginx_ssl_๋ถ„๋ฆฌ์ ์šฉ.md b/journey/troubleshooting/2026-02-17_starsandi_dns_nginx_ssl_๋ถ„๋ฆฌ์ ์šฉ.md index fde7c65..0ff4eba 100644 --- a/journey/troubleshooting/2026-02-17_starsandi_dns_nginx_ssl_๋ถ„๋ฆฌ์ ์šฉ.md +++ b/journey/troubleshooting/2026-02-17_starsandi_dns_nginx_ssl_๋ถ„๋ฆฌ์ ์šฉ.md @@ -1,51 +1,7 @@ -# 2026-02-17 starsandi DNS/nginx/SSL ๋ถ„๋ฆฌ ์ ์šฉ +# 2026-02-17_starsandi_dns_nginx_ssl_๋ถ„๋ฆฌ์ ์šฉ -## ๋ฐฐ๊ฒฝ -- ๋ชฉํ‘œ: 51123 ์„œ๋ฒ„์—์„œ `ro-being.com`๊ณผ `starsandi.com`์„ ์ถฉ๋Œ ์—†์ด ๋ถ„๋ฆฌ ์šด์˜. -- ์š”๊ตฌ์‚ฌํ•ญ: - - DNS: `A @ -> 124.55.18.179`, `CNAME www -> @` - - nginx: `starsandi.com`, `www.starsandi.com` ์ „์šฉ ์„œ๋ฒ„ ๋ธ”๋ก ๋ถ„๋ฆฌ - - HTTPS: certbot์œผ๋กœ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ 80 -> 443 ์ ์šฉ - - ๊ฒฝ๋กœ: starsandi ์•ฑ์€ ํ˜„์žฌ `basePath=/starsandi` ์œ ์ง€ +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## ์›์ธ ๋ฐ ์ด์Šˆ -- ์ดˆ๊ธฐ ์กฐํšŒ์—์„œ `starsandi.com`์ด Namecheap ์ฃผ์ฐจ IP(`192.64.119.114`)๋กœ ์‘๋‹ต๋˜์–ด ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ํƒ€์ด๋ฐ ์ด์Šˆ ์กด์žฌ. -- ๊ถŒํ•œ DNS(8.8.8.8, 1.1.1.1) ๊ธฐ์ค€์œผ๋กœ๋Š” `124.55.18.179` ์กฐํšŒ๋˜์–ด ์ „ํŒŒ ์ง„ํ–‰ ์ค‘ ์ƒํƒœ ํ™•์ธ. - -## ์ ์šฉ ๋‚ด์šฉ - -### 1) nginx ๋„๋ฉ”์ธ ๋ถ„๋ฆฌ -- ํŒŒ์ผ ์ถ”๊ฐ€: `/etc/nginx/sites-available/starsandi.conf` -- ์‹ฌ๋ณผ๋ฆญ ๋งํฌ: `/etc/nginx/sites-enabled/starsandi.conf` -- ํ•ต์‹ฌ ์„ค์ •: - - `server_name starsandi.com www.starsandi.com;` - - `location = / { return 301 /starsandi; }` (basePath ์œ ์ง€) - - `location /starsandi { proxy_pass http://127.0.0.1:3010; ... }` - -### 2) ro-being ๊ฒฝ๋กœ ์ถฉ๋Œ ๋ฐฉ์ง€ -- ํŒŒ์ผ ์ˆ˜์ •: `/etc/nginx/sites-enabled/default` -- ๋ณ€๊ฒฝ ๋‚ด์šฉ: - - `ro-being.com` ๋ธ”๋ก์˜ `/startsandi`, `/zari`, `/starsandi` ์š”์ฒญ์„ `https://starsandi.com...`์œผ๋กœ 301 ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ - -### 3) SSL(certbot) -- ์‹คํ–‰ ๋ช…๋ น: - - `sudo certbot --nginx -d starsandi.com -d www.starsandi.com --non-interactive --agree-tos -m admin@starsandi.com --redirect` -- ๊ฒฐ๊ณผ: - - ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์„ฑ๊ณต - - ๊ฒฝ๋กœ: `/etc/letsencrypt/live/starsandi.com/fullchain.pem` - - ๋งŒ๋ฃŒ์ผ: `2026-05-18` - - certbot์ด nginx ์„ค์ •์— 443 ๋ธ”๋ก ์ž๋™ ๋ฐ˜์˜ - -## ๊ฒ€์ฆ ๊ฒฐ๊ณผ -- `sudo nginx -t` ์„ฑ๊ณต -- `sudo systemctl reload nginx` ์„ฑ๊ณต -- ๋กœ์ปฌ ๊ฐ•์ œ ํ•ด์„(`--resolve`) ๊ฒ€์ฆ: - - `http://starsandi.com` -> `https://starsandi.com/` 301 - - `https://starsandi.com` -> `/starsandi` 301 - - `https://www.starsandi.com` -> `/starsandi` 301 - - `https://ro-being.com/starsandi` -> `https://starsandi.com/starsandi` 301 - -## ์šด์˜ ๋ฉ”๋ชจ -- DNS ์บ์‹œ/์ „ํŒŒ ๊ตฌ๊ฐ„์—์„œ๋Š” ์ผ๋ถ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ Namecheap ์‘๋‹ต(์ฃผ์ฐจ/ํฌ์›Œ๋”ฉ)์„ ์ž ์‹œ ๋ณผ ์ˆ˜ ์žˆ์Œ. -- ์‹ค์ œ ์„œ๋น„์Šค ํŒ๋ณ„์€ `dig @8.8.8.8 starsandi.com A`, `dig @1.1.1.1 starsandi.com A`๋กœ ์žฌํ™•์ธ. -- ์šฉ์–ด ํ‘œ๊ธฐ๋Š” ์„œ๋ฒ„ ๊ทœ์น™์— ๋”ฐ๋ผ `robeing` ๊ธฐ์ค€ ์œ ์ง€. +- ์ƒˆ ์œ„์น˜: `260217_starsandi_dns_nginx_ssl_๋ถ„๋ฆฌ์ ์šฉ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/2026-03-03_51123_DB5432_์ฐจ๋‹จ์‚ฌ๊ณ _๋ณต๊ตฌ_๋ฐ_์˜์กดํฌํŠธ_์ ๊ฒ€.md b/journey/troubleshooting/2026-03-03_51123_DB5432_์ฐจ๋‹จ์‚ฌ๊ณ _๋ณต๊ตฌ_๋ฐ_์˜์กดํฌํŠธ_์ ๊ฒ€.md index 362946b..70915e4 100644 --- a/journey/troubleshooting/2026-03-03_51123_DB5432_์ฐจ๋‹จ์‚ฌ๊ณ _๋ณต๊ตฌ_๋ฐ_์˜์กดํฌํŠธ_์ ๊ฒ€.md +++ b/journey/troubleshooting/2026-03-03_51123_DB5432_์ฐจ๋‹จ์‚ฌ๊ณ _๋ณต๊ตฌ_๋ฐ_์˜์กดํฌํŠธ_์ ๊ฒ€.md @@ -1,140 +1,7 @@ -# 51123 DB 5432 ์ฐจ๋‹จ ์‚ฌ๊ณ  ๋ณต๊ตฌ ๋ฐ ์˜์กด ํฌํŠธ ์ ๊ฒ€ +# 2026-03-03_51123_DB5432_์ฐจ๋‹จ์‚ฌ๊ณ _๋ณต๊ตฌ_๋ฐ_์˜์กดํฌํŠธ_์ ๊ฒ€ -## ๋ฐœ์ƒ ์ผ์‹œ -- ์žฅ์•  ์ง•ํ›„ ์‹œ์ž‘: 2026-03-03 10:59 KST ์ „ํ›„ -- ์›์ธ ํ™•์ธ/๋ณต๊ตฌ: 2026-03-03 11:18~11:22 KST +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## ๋ฌธ์ œ ์š”์•ฝ -- 51124์˜ `skill-email`์ด `192.168.219.45:5432` ์—ฐ๊ฒฐ ํƒ€์ž„์•„์›ƒ์œผ๋กœ `ReadTimeout/500`์„ ๋ฐ˜ํ™˜. -- ์•ฑ ๋กœ์ง ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ DB ์ ‘์† ๊ฒฝ๋กœ(ํฌํŠธ 5432) ์ฐจ๋‹จ์œผ๋กœ ์ธํ•œ ๋„คํŠธ์›Œํฌ ๋ ˆ๋ฒจ ์žฅ์• . - -## ์ง์ ‘ ์›์ธ -- 2026-03-03 ์˜ค์ „ ํฌํŠธ ํ•˜๋“œ๋‹ ์ž‘์—… ์ค‘, UFW์˜ `5432/tcp` ์™ธ๋ถ€ ํ—ˆ์šฉ ๊ทœ์น™์„ ์ œ๊ฑฐํ•จ. -- ์ด๋•Œ 51124(`192.168.219.52`)์˜ DB ์ง์ ‘ ์ ‘๊ทผ๋„ ํ•จ๊ป˜ ์ฐจ๋‹จ๋จ. - -## ์‚ฌ์‹ค ํ™•์ธ (51123) -1. PostgreSQL ๋ฆฌ์Šค๋‹: ์ •์ƒ -- `ss -lntp` ๊ฒฐ๊ณผ: `0.0.0.0:5432`, `[::]:5432` LISTEN - -2. PostgreSQL ์„ค์ •: ์›๊ฒฉ ์ˆ˜์‹  ๊ฐ€๋Šฅ -- `postgresql.conf`: `listen_addresses='*'`, `port=5432` -- `pg_hba.conf`: `host all all 0.0.0.0/0 scram-sha-256` - -3. ๋ฐฉํ™”๋ฒฝ: ์žฅ์•  ์‹œ์  ๊ธฐ์ค€ 5432 ํ—ˆ์šฉ ๋ˆ„๋ฝ -- `ufw status`์—์„œ `5432` ํ—ˆ์šฉ ๊ทœ์น™์ด ์—†์—ˆ์Œ - -## ์กฐ์น˜ -- ์ตœ์†Œ๊ถŒํ•œ ์›์น™์œผ๋กœ 51124 IP๋งŒ 5432 ํ—ˆ์šฉ ์žฌ๊ฐœ: - -```bash -sudo ufw allow from 192.168.219.52 to any port 5432 proto tcp -``` - -## ๋ณต๊ตฌ ๊ฒ€์ฆ -1. ๋„คํŠธ์›Œํฌ -- 51124 -> 51123 ํฌํŠธ ํ…Œ์ŠคํŠธ: - - `5432 open` (๋ณต๊ตฌ) - - `3000 blocked`, `7474 blocked` (์˜๋„๋œ ์ฐจ๋‹จ ์œ ์ง€) - - `7687/9000/8100/8000/9200 open` - -2. ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ -- `skill-email` ์ปจํ…Œ์ด๋„ˆ์—์„œ `192.168.219.45:5432` TCP ์—ฐ๊ฒฐ ์„ฑ๊ณต (`tcp_ok`). -- `skill-email` ์ปจํ…Œ์ด๋„ˆ์—์„œ `asyncpg`๋กœ `select 1` ์„ฑ๊ณต (`asyncpg_ok 1`). - -3. ์„œ๋น„์Šค -- `rb8001 /health` ์ •์ƒ(`200`). -- ์žฅ์•  ํ•ต์‹ฌ ๊ฒฝ๋กœ์˜€๋˜ DB ์ ‘์† ํƒ€์ž„์•„์›ƒ์€ ๋„คํŠธ์›Œํฌ ๊ธฐ์ค€ ํ•ด์†Œ. - -## ๋ถ„๋ฆฌ ์ด์Šˆ (๋ณ„๋„ ์ถ”์  ํ•„์š”) -- ๋ณต๊ตฌ ํ›„์—๋„ `skill-email`์˜ `/messages`, `/messages/{id}` ์ผ๋ถ€ ํ˜ธ์ถœ์—์„œ `500`์ด ์žฌํ˜„๋จ. -- ๊ทผ๊ฑฐ: - - DB ๋„คํŠธ์›Œํฌ/์ธ์ฆ/์ฟผ๋ฆฌ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋Š” ์ •์ƒ(`5432 open`, `asyncpg_ok 1`). - - ๊ทธ๋Ÿผ์—๋„ `docker logs skill-email`์— `๋ฉ”์‹œ์ง€ ์กฐํšŒ ์ค‘ ์˜ค๋ฅ˜`/`๋ฉ”์‹œ์ง€ ์ƒ์„ธ ์กฐํšŒ ์ค‘ ์˜ค๋ฅ˜`๊ฐ€ ์ง€์†. -- ํŒ๋‹จ: ์ด๋ฒˆ 5432 ์ฐจ๋‹จ ์‚ฌ๊ณ ์™€๋Š” ๋ณ„๊ฐœ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ์ด์–ด ์˜ค๋ฅ˜ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ. - -## ๋ถ„๋ฆฌ ์ด์Šˆ ์ตœ์ข… ํŒ์ • (2026-03-03 11:40 KST) -- ์œ„ "๋ณ„๋„ ์•ฑ ์˜ค๋ฅ˜"๋กœ ๋ถ„๋ฆฌํ–ˆ๋˜ ๊ฑด ์˜คํŒ์ด์—ˆ๊ณ , ์‹ค์ œ๋กœ๋Š” ๊ฐ™์€ 5432 ๋ฐฉํ™”๋ฒฝ ์˜ํ–ฅ์ด์—ˆ๋‹ค. -- auth-server ์ปจํ…Œ์ด๋„ˆ DB ์„ค์ •: - - `DATABASE_URL=postgresql://robeings:robeings@host.docker.internal:5432/main_db` -- ๋‹น์‹œ UFW๋Š” `5432`๋ฅผ `192.168.219.52`๋งŒ ํ—ˆ์šฉํ•ด์„œ, Docker ๋ธŒ๋ฆฌ์ง€(172.17/18/20/21 ๋Œ€์—ญ)์—์„œ ๋“ค์–ด์˜ค๋Š” auth-server DB ์—ฐ๊ฒฐ์ด ์ฐจ๋‹จ๋จ. -- ๊ฒฐ๊ณผ์ ์œผ๋กœ `auth-server /auth/naverworks/passport/refresh`์—์„œ `asyncpg.connect` `TimeoutError`๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ , ์ด๋ฅผ ํ˜ธ์ถœํ•˜๋˜ `skill-email /messages*`๊ฐ€ ์—ฐ์‡„ 500. - -### ์ถ”๊ฐ€ ์กฐ์น˜ (์ตœ์ข… ๋ณต๊ตฌ) -```bash -sudo ufw allow from 172.16.0.0/12 to any port 5432 proto tcp -``` - -### ์ตœ์ข… ๊ฒ€์ฆ -- `auth-server` ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ DB ํ…Œ์ŠคํŠธ: `auth_db_ok 1` -- `http://127.0.0.1:9000/auth/naverworks/passport/refresh` ํ˜ธ์ถœ: ํƒ€์ž„์•„์›ƒ ๋ฏธ๋ฐœ์ƒ(์ฆ‰์‹œ 405 ๋ฐ˜ํ™˜, ๊ฒฝ๋กœ ์‘๋‹ต ์ •์ƒ) -- 51124 `skill-email` ํ˜ธ์ถœ: - - `GET /messages?provider=naverworks&user_id=...&limit=3` -> `200 OK` (์•ฝ 0.54s) - -## ์˜ํ–ฅ ๋ฒ”์œ„ ์ ๊ฒ€ ๊ฒฐ๊ณผ (51124 -> 51123 ์˜์กด) -๋‹ค์Œ ์„œ๋น„์Šค/ํ™˜๊ฒฝ๋ณ€์ˆ˜๋“ค์ด `192.168.219.45:5432`๋ฅผ ์‚ฌ์šฉ ์ค‘: -- `skill_email` -- `skill-calendar` -- `skill-news` -- `skill-rag-file` -- `rb8001` -- `robeing-monitor` -- ์ผ๋ถ€ `admin-dashboard` ๊ตฌ์„ฑ(ํ˜ธ์ŠคํŠธ ๋ธŒ๋ฆฌ์ง€ ๊ธฐ๋ฐ˜) - -์ฆ‰, 5432 ์ฐจ๋‹จ ์‹œ `skill-email`๋งŒ์ด ์•„๋‹ˆ๋ผ ์œ„ ์„œ๋น„์Šค ์ „๋ฐ˜์—์„œ ๋™์ผ ์žฅ์•  ๊ฐ€๋Šฅ. - -์‹คํ–‰์ค‘ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ ๊ฒ€ ๊ฒฐ๊ณผ(2026-03-03 11:22 KST): -- `rb8001`: `5432`, `7687`, `9000`, `8100` ์˜์กด -- `skill-email`: `5432`, `9000` ์˜์กด -- `skill-calendar`, `skill-slack`, `skill-rag-file`, `robeing_monitor`: `5432` ์˜์กด -- `admin-dashboard-backend`: `172.17.0.1:5432` ์˜์กด(ํ˜ธ์ŠคํŠธ ๋ธŒ๋ฆฌ์ง€) - -## ์žฌ๋ฐœ ๋ฐฉ์ง€ -1. ํฌํŠธ ํ•˜๋“œ๋‹ ์ „ ์˜์กด์„ฑ ์ฒดํฌ ํ•„์ˆ˜ -- 51124์—์„œ `192.168.219.45:` ์ฐธ์กฐ๋ฅผ `.env`/`compose`์—์„œ ์„ ์กฐํšŒ - -2. ๋ณ€๊ฒฝ ์ ˆ์ฐจ ๊ณ ์ • -- `์ฐจ๋‹จ ์ „`: ์˜์กด ํฌํŠธ ๋ชฉ๋ก ์ž‘์„ฑ -- `์ฐจ๋‹จ ์งํ›„`: 51124 ์›๊ฒฉ TCP ๋งคํŠธ๋ฆญ์Šค ํ…Œ์ŠคํŠธ -- `์™„๋ฃŒ ์ „`: ํ•ต์‹ฌ ์„œ๋น„์Šค ํ—ฌ์Šค + ์ตœ๊ทผ ์˜ค๋ฅ˜๋กœ๊ทธ ๊ต์ฐจ ํ™•์ธ - -3. UFW ์ •์ฑ… ์›์น™ -- ์ „๋ฉด ํ—ˆ์šฉ(`Anywhere`) ๋Œ€์‹  **์˜์กด ์ถœ๋ฐœ์ง€ ๋‹จ์œ„ ์ตœ์†Œ ํ—ˆ์šฉ**์œผ๋กœ ์šด์˜ -- `5432`๋Š” ์ตœ์†Œ `192.168.219.52` + Docker ๋ธŒ๋ฆฌ์ง€ `172.16.0.0/12`๋ฅผ ํฌํ•จํ•ด์•ผ ํ•จ - -## ์šด์˜ ๋ณด๊ฐ•: ์„œ๋ฒ„๋ณ„ ๋งˆ์šดํŠธ ์•„ํ‚คํ…์ฒ˜ ๋ถ„๊ธฐ -NAS ๊ด€๋ จ ์žฅ์•  ์ ๊ฒ€์€ 51123/51124๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์กฐ์ž„์„ ์ „์ œ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•จ. - -- 51123: NAS/fallback ๊ตฌ์กฐ - - `/mnt/nas`, `/mnt/hdd/nas-fallback` - - `/etc/fstab`์— CIFS ํ•ญ๋ชฉ(`//192.168.219.51/home /mnt/nas cifs ...`) -- 51124: sshfs ์—ฐ๊ณ„ ๊ตฌ์กฐ - - `/mnt/51123data`, `/mnt/51123logs` (sshfs) - - NAS CIFS/fallback ํ•ญ๋ชฉ ์—†์Œ - -์ฆ‰, ๊ฐ™์€ NAS ๋ถˆํ†ต์ด์–ด๋„ "๊ฒฝ๋กœ๊ฐ€ ๋‹ค๋ฅด๋‹ค"๋Š” ์‚ฌ์‹ค ์ž์ฒด๋Š” ์žฅ์• ๊ฐ€ ์•„๋‹ˆ๋ผ ์„œ๋ฒ„๋ณ„ ์•„ํ‚คํ…์ฒ˜ ์ฐจ์ด์ž„. - -### NAS ์‹คํŒจ ํŒ์ • ๊ทœ์น™ -- `No route to host`์™€ `Timeout`์€ ๋‘˜ ๋‹ค **์—ฐ๊ฒฐ ์‹คํŒจ**๋กœ ๋™์ผ ๋ถ„๋ฅ˜ํ•œ๋‹ค. -- ์—๋Ÿฌ ๋ฌธ๊ตฌ ์ฐจ์ด๋Š” ์‹œ์ /๋ผ์šฐํŒ… ์ƒํƒœ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์›์ธ ๋ถ„๋ฅ˜ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. - -### ์™„๋ฃŒ ์ „ ํ•„์ˆ˜ ๊ฒŒ์ดํŠธ (๊ณ ์ •) -1. ์ปจํ…Œ์ด๋„ˆ env ๊ธฐ๋ฐ˜ ์˜์กด์„ฑ ์Šค์บ” -2. 51124 -> 51123 ํฌํŠธ ๋งคํŠธ๋ฆญ์Šค (`5432/9000/8100/7687`) -3. ํ•ต์‹ฌ API ์‹คํ˜ธ์ถœ - - `auth-server /auth/naverworks/passport/refresh` - - `skill-email /messages*` -4. ์„œ๋ฒ„๋ณ„ ์Šคํ† ๋ฆฌ์ง€ ๋ถ„๊ธฐ ์ ๊ฒ€ - - 51123: NAS/fallback ๊ฒฝ๋กœ - - 51124: sshfs ๊ฒฝ๋กœ - -## ๋ช…๋ น์–ด ์ฒดํฌ๋ฆฌ์ŠคํŠธ -```bash -# 51123 -ss -lntp | grep 5432 -sudo ufw status numbered - -# 51124์—์„œ 51123 ์—ฐ๊ฒฐ ์ ๊ฒ€ -for p in 5432 3000 7474 7687 9000 8100 8000 9200; do - timeout 2 bash -lc "cat < /dev/null > /dev/tcp/192.168.219.45/$p" && echo "$p open" || echo "$p blocked" -done -``` +- ์ƒˆ ์œ„์น˜: `260303_51123_DB5432_์ฐจ๋‹จ์‚ฌ๊ณ _๋ณต๊ตฌ_๋ฐ_์˜์กดํฌํŠธ_์ ๊ฒ€.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/2026-03-03_51123_ufw_์™ธ๋ถ€ํฌํŠธ_์ฐจ๋‹จ_ํ•˜๋“œ๋‹.md b/journey/troubleshooting/2026-03-03_51123_ufw_์™ธ๋ถ€ํฌํŠธ_์ฐจ๋‹จ_ํ•˜๋“œ๋‹.md index 651d825..dca1535 100644 --- a/journey/troubleshooting/2026-03-03_51123_ufw_์™ธ๋ถ€ํฌํŠธ_์ฐจ๋‹จ_ํ•˜๋“œ๋‹.md +++ b/journey/troubleshooting/2026-03-03_51123_ufw_์™ธ๋ถ€ํฌํŠธ_์ฐจ๋‹จ_ํ•˜๋“œ๋‹.md @@ -1,70 +1,7 @@ -# 51123 ์„œ๋ฒ„ UFW ์™ธ๋ถ€ ํฌํŠธ ์ฐจ๋‹จ ํ•˜๋“œ๋‹ +# 2026-03-03_51123_ufw_์™ธ๋ถ€ํฌํŠธ_์ฐจ๋‹จ_ํ•˜๋“œ๋‹ -## ๋ฐœ์ƒ ์ผ์‹œ -2026-03-03 10:43~10:53 KST +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## ๋ฐฐ๊ฒฝ -์™ธ๋ถ€ ๊ณต๊ฐœ ํฌํŠธ ์ ๊ฒ€ ์ค‘, ์šด์˜ ์›์น™(์™ธ๋ถ€๋Š” 80/443 + ๊ด€๋ฆฌ SSH๋งŒ ๊ณต๊ฐœ) ๋Œ€๋น„ ๊ณผ๋‹ค ๋…ธ์ถœ์ด ํ™•์ธ๋จ. - -## ํ™•์ธ๋œ ์›์ธ -- UFW์—์„œ ์•„๋ž˜ ํฌํŠธ๊ฐ€ `Anywhere`/`Anywhere (v6)`๋กœ ํ—ˆ์šฉ๋˜์–ด ์žˆ์—ˆ์Œ. - - `5432/tcp` (PostgreSQL) - - `3000/tcp` (Gitea ์ง์ ‘ ํฌํŠธ) - - `7474/tcp` (Neo4j HTTP) -- ์ด ์ƒํƒœ๋Š” ๋„๋ฉ”์ธ/nginx ๊ฒฝ์œ ๊ฐ€ ์•„๋‹Œ ์ง์ ‘ ํฌํŠธ ์ ‘๊ทผ ๊ฒฝ๋กœ๋ฅผ ์—ด์–ด๋‘๋Š” ๊ตฌ์„ฑ์ž„. - -## ์กฐ์น˜ ๋‚ด์šฉ -์‹ค์„œ๋ฒ„(51123)์—์„œ ์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ๊ณต๊ฐœ ํ—ˆ์šฉ ๊ทœ์น™ ์ œ๊ฑฐ: - -```bash -sudo ufw --force delete allow 5432/tcp -sudo ufw --force delete allow 3000/tcp -sudo ufw --force delete allow 7474/tcp -``` - -## ๊ฒ€์ฆ ๊ฒฐ๊ณผ -์กฐ์น˜ ์งํ›„ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ฆ: - -- ๋„๋ฉ”์ธ ์‘๋‹ต - - `https://ro-being.com` โ†’ `HTTP/2 200` - - `https://git.ro-being.com` โ†’ `HTTP/2 200` - - `https://auth.ro-being.com` โ†’ `HTTP/2 404` (๊ธฐ์กด ๋™์ž‘ ๋™์ผ) -- ๋‚ด๋ถ€ ์„œ๋น„์Šค ํ—ฌ์Šค - - `http://127.0.0.1:9000/health` โ†’ `200` - - `http://127.0.0.1:8000/health` โ†’ `200` -- UFW ๊ทœ์น™ - - `5432/3000/7474`์˜ `Anywhere`, `Anywhere (v6)` ํ—ˆ์šฉ ๊ทœ์น™ ์‚ญ์ œ ํ™•์ธ - -## ์˜ํ–ฅ๋„ -- ์‚ฌ์šฉ์ž ๋„๋ฉ”์ธ ๊ฒฝ์œ  ํŠธ๋ž˜ํ”ฝ ์˜ํ–ฅ ์—†์Œ -- `git.ro-being.com` ๊ธฐ๋ฐ˜ Gitea ์‚ฌ์šฉ ์˜ํ–ฅ ์—†์Œ -- ์ง์ ‘ ํฌํŠธ ์šฐํšŒ ์ ‘๊ทผ ๊ฒฝ๋กœ๋งŒ ์ฐจ๋‹จ๋จ - -## ํ˜„์žฌ ๊ณต๊ฐœ ์ •์ฑ…(2026-03-03 ๊ธฐ์ค€) -- ์™ธ๋ถ€ ๊ณต๊ฐœ ์œ ์ง€: `80/tcp`, `443/tcp`, `51123/tcp(๊ด€๋ฆฌ SSH)` -- ๋‚ด๋ถ€/์ œํ•œ ๋„คํŠธ์›Œํฌ ํ—ˆ์šฉ: `7687`, `7474(172.17.0.0/16)` - -## ํ›„์† ๊ถŒ์žฅ -- Docker ํผ๋ธ”๋ฆฌ์‹œ ํฌํŠธ(`8000/8100/8200/9000/9200/9600`)์˜ ์™ธ๋ถ€ ๋…ธ์ถœ ์ถ•์†Œ(๊ฐ€๋Šฅํ•œ `127.0.0.1` ๋˜๋Š” ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋งŒ ์‚ฌ์šฉ) -- PostgreSQL `listen_addresses`, `pg_hba.conf`๋ฅผ ๋‚ด๋ถ€ ๋Œ€์—ญ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”๊ฐ€ ์ œํ•œ - -## ์‚ฌํ›„ ์ •์ • (2026-03-03 11:40 KST) -์ดˆ๊ธฐ ์ฐจ๋‹จ ์กฐ์น˜๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜๊ณ , ์‹ค์ œ ์šด์˜ ์˜์กด ๊ฒฝ๋กœ๋ฅผ ์ผ๋ถ€ ๋ˆ„๋ฝํ•œ ์ƒํƒœ์˜€๋‹ค. - -- ๋ˆ„๋ฝ๋œ ์˜์กด ๊ฒฝ๋กœ: - - 51124 ์ง์ ‘ ๊ฒฝ๋กœ: `192.168.219.52 -> 51123:5432` - - Docker ๋ธŒ๋ฆฌ์ง€ ๊ฒฝ๋กœ: `172.16.0.0/12 -> 51123:5432` (์˜ˆ: auth-server `host.docker.internal:5432`) -- ๊ฒฐ๊ณผ: - - `auth-server /auth/naverworks/passport/refresh` ํƒ€์ž„์•„์›ƒ - - `skill-email /messages*` ์—ฐ์‡„ 500 - -๋ณต๊ตฌ ์‹œ ์ตœ์ข… ๋ฐ˜์˜ํ•œ ๊ทœ์น™: - -```bash -sudo ufw allow from 192.168.219.52 to any port 5432 proto tcp -sudo ufw allow from 172.16.0.0/12 to any port 5432 proto tcp -``` - -์ตœ์ข… ์ •์ฑ…(์ •์ •): -- "5432๋Š” ๋ฌด์กฐ๊ฑด ์ „์ฒด ์ฐจ๋‹จ"์ด ์•„๋‹ˆ๋ผ, **์‹ค์ œ ์˜์กด ์ถœ๋ฐœ์ง€ ๋‹จ์œ„ ์ตœ์†Œ ํ—ˆ์šฉ**์ด ์›์น™. -- ํ•˜๋“œ๋‹ ๋ณ€๊ฒฝ ์‹œ ๋ฐ˜๋“œ์‹œ ์ปจํ…Œ์ด๋„ˆ env ๊ธฐ๋ฐ˜ ์˜์กด์„ฑ ์Šค์บ” + ๋ณ€๊ฒฝ ์งํ›„ ์—ฐ๊ณ„ API ์‹คํ˜ธ์ถœ์„ ์™„๋ฃŒํ•ด์•ผ ํ•œ๋‹ค. +- ์ƒˆ ์œ„์น˜: `260303_51123_ufw_์™ธ๋ถ€ํฌํŠธ_์ฐจ๋‹จ_ํ•˜๋“œ๋‹.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/2026-03-05_51124_๋‹ค์šด_์ƒํƒœ_๋ฐ_๋ณต๊ตฌ์˜ˆ์ •.md b/journey/troubleshooting/2026-03-05_51124_๋‹ค์šด_์ƒํƒœ_๋ฐ_๋ณต๊ตฌ์˜ˆ์ •.md index a31ca6a..9608e00 100644 --- a/journey/troubleshooting/2026-03-05_51124_๋‹ค์šด_์ƒํƒœ_๋ฐ_๋ณต๊ตฌ์˜ˆ์ •.md +++ b/journey/troubleshooting/2026-03-05_51124_๋‹ค์šด_์ƒํƒœ_๋ฐ_๋ณต๊ตฌ์˜ˆ์ •.md @@ -1,9 +1,7 @@ -# 2026-03-05 51124 ๋‹ค์šด ์ƒํƒœ ๋ฐ ๋ณต๊ตฌ ์˜ˆ์ • +# 2026-03-05_51124_๋‹ค์šด_์ƒํƒœ_๋ฐ_๋ณต๊ตฌ์˜ˆ์ • -- ๊ธฐ์ค€์ผ: 2026-03-05 -- ๋Œ€์ƒ ์„œ๋ฒ„: 51124 (192.168.219.52) -- ํ˜„์žฌ ์ƒํƒœ: ๋‹ค์šด(๋ฏธ๊ฐ€๋™) -- ๋ณต๊ตฌ ๊ณ„ํš์ผ: 2026-03-06 -- ์ž„์‹œ ์šด์˜ ์ƒํƒœ: 51123์—์„œ robeing ์ž„์‹œ ๊ฐ€๋™ ์ค‘ (rb8001, skill ๊ณ„์—ด) -- ์›๋ž˜ ์‹คํ–‰ ์œ„์น˜: 51124 (robeing/skill ์‹คํ–‰ ์„œ๋ฒ„) -- ๋น„๊ณ : ๋ณธ ์ƒํƒœ/์ผ์ •์€ ์‚ฌ์šฉ์ž ์šด์˜ ์ง€์‹œ ๊ธฐ์ค€์œผ๋กœ ๊ธฐ๋กํ•จ +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. + +- ์ƒˆ ์œ„์น˜: `260305_51124_๋‹ค์šด_์ƒํƒœ_๋ฐ_๋ณต๊ตฌ์˜ˆ์ •.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260226_51123_SSH_๋ธŒ๋ฃจํŠธํฌ์Šค_์ฐจ๋‹จ_๋ฐ_fail2ban_๊ต์ •.md b/journey/troubleshooting/260226_51123_SSH_๋ธŒ๋ฃจํŠธํฌ์Šค_์ฐจ๋‹จ_๋ฐ_fail2ban_๊ต์ •.md index c75fcc8..7610d25 100644 --- a/journey/troubleshooting/260226_51123_SSH_๋ธŒ๋ฃจํŠธํฌ์Šค_์ฐจ๋‹จ_๋ฐ_fail2ban_๊ต์ •.md +++ b/journey/troubleshooting/260226_51123_SSH_๋ธŒ๋ฃจํŠธํฌ์Šค_์ฐจ๋‹จ_๋ฐ_fail2ban_๊ต์ •.md @@ -1,35 +1,7 @@ -# 260226 51123 SSH ๋ธŒ๋ฃจํŠธํฌ์Šค ์ฐจ๋‹จ ๋ฐ fail2ban ๊ต์ • +# 260226_51123_SSH_๋ธŒ๋ฃจํŠธํฌ์Šค_์ฐจ๋‹จ_๋ฐ_fail2ban_๊ต์ • -## ์‹œ๊ฐ„ -- ๊ธฐ์ค€์ผ: 2026-02-26 +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## ๋ฐฐ๊ฒฝ -- 51123 SSH(ํฌํŠธ 51123)๋กœ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ์‹œ๋„๊ฐ€ ๋Œ€๋Ÿ‰ ์œ ์ž…๋จ -- ์ง‘๊ณ„ ๊ธฐ์ค€(๋‹น์ผ): `Failed password 56,613`, `Invalid user 48,030` - -## ์กฐ์น˜ -1. UFW ์ˆ˜๋™ ์ฐจ๋‹จ -- ํ—ˆ์šฉ(๊ด€๋ฆฌ์ž ์˜ˆ์™ธ): `112.146.113.214`, `220.85.143.128` -- ์ฐจ๋‹จ(๋ฐ˜๋ณต ์‹คํŒจ ์ƒ์œ„): `134.209.249.168`, `164.92.167.107`, `209.38.245.39` - -2. fail2ban ์„ค์ • ๊ต์ • -- ํŒŒ์ผ: `/etc/fail2ban/jail.d/ssh-custom.conf` -- ํ•ต์‹ฌ ๋ณ€๊ฒฝ: - - `port = 51123` (๊ธฐ์กด `ssh` ํฌํŠธ ๊ธฐ๋ณธ๊ฐ’ ์˜์กด ์ œ๊ฑฐ) - - `ignoreip = 127.0.0.1/8 ::1 192.168.219.0/24 112.146.113.214 220.85.143.128` - - `sshd`: `maxretry=5`, `findtime=600`, `bantime=86400` - - `sshd-aggressive`: `maxretry=3`, `findtime=300`, `bantime=604800` - -3. ์„œ๋น„์Šค ๋ฐ˜์˜ -- `systemctl restart fail2ban` -- `fail2ban-client status`๋กœ `sshd`, `sshd-aggressive` ์ •์ƒ ํ™œ์„ฑ ํ™•์ธ - -## ํ™•์ธ ๊ฒฐ๊ณผ -- fail2ban ์žฌ์‹œ์ž‘ ํ›„ ์–‘์ชฝ jail์—์„œ ์‹ค์‹œ๊ฐ„ ์ฐจ๋‹จ ๋™์ž‘ ํ™•์ธ -- ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ IP๋Š” ์ˆ˜๋™ `unbanip` ์‹คํ–‰์œผ๋กœ ์ฐจ๋‹จ ์˜ˆ์™ธ ์žฌํ™•์ธ -- SSH ์„ค์ •์€ `Port 51123`, `PermitRootLogin no`, `PasswordAuthentication yes` ์ƒํƒœ - -## ํ›„์† ๊ถŒ์žฅ -1. ๊ฐ€๋Šฅํ•˜๋ฉด `PasswordAuthentication no`๋กœ ์ „ํ™˜(ํ‚ค ๊ธฐ๋ฐ˜๋งŒ ํ—ˆ์šฉ) -2. ๋น„์ƒ ์ ‘์† ๊ณ„์ • 1๊ฐœ๋งŒ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ—ˆ์šฉ + ์†Œ์Šค IP ์ œํ•œ -3. ์›” 1ํšŒ `fail2ban`/`ufw` ๋ฃฐ ์ •๋ฆฌ ๋ฐ ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ ๊ฒ€์ฆ +- ์ƒˆ ์œ„์น˜: `260226_51123_SSH_๋ธŒ๋ฃจํŠธํฌ์Šค_์ฐจ๋‹จ_๋ฐ_fail2ban_๊ต์ •.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260226_51124_bot_account_compromise_and_eradication.md b/journey/troubleshooting/260226_51124_bot_account_compromise_and_eradication.md index cc28a7e..08a1d0b 100644 --- a/journey/troubleshooting/260226_51124_bot_account_compromise_and_eradication.md +++ b/journey/troubleshooting/260226_51124_bot_account_compromise_and_eradication.md @@ -1,76 +1,7 @@ -# 51124 bot ๊ณ„์ • SSH ์นจํ•ด ๋Œ€์‘ ๋ฐ ๋ฐ•๋ฉธ ๊ธฐ๋ก +# 260226_51124_bot_account_compromise_and_eradication -**๋‚ ์งœ**: 2026-02-26 -**์ž‘์„ฑ์ž**: admin -**๊ด€๋ จ ํŒŒ์ผ**: `/var/log/auth.log*`, `/home/bot/.configrc7/*`, `/var/spool/cron/crontabs/bot` +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ---- - -## ๋ฌธ์ œ ์ƒํ™ฉ -- 51124 ์„œ๋ฒ„์—์„œ ๋น„์ •์ƒ ๊ณ ๋ฉ”๋ชจ๋ฆฌ ํ”„๋กœ์„ธ์Šค(`kauditd0`) ๋ฐœ๊ฒฌ -- ์‹ค์ฒด ํ™•์ธ ๊ฒฐ๊ณผ `/home/bot/.configrc7/a/kswapd00` ์‹คํ–‰ ํŒŒ์ผ๋กœ ์œ„์žฅ ๋™์ž‘ -- `bot` crontab์— ์žฌ์‹คํ–‰ ์ง€์†์„ฑ(`*/30 * * * * /tmp/.kswapd00 || /home/bot/.configrc7/a/kswapd00`) ์กด์žฌ - -## ์นจํ•ด ์ง€ํ‘œ(IOC) -- ํ”„๋กœ์„ธ์Šค/ํŒŒ์ผ - - `kauditd0`, `kswapd00`, `edac0` - - `/home/bot/.configrc7/a/*`, `/home/bot/.configrc7/b/*` - - `/tmp/.kswapd00`, `/tmp/.X28-unix/.rsync/c/aptitude` -- SSH/์ง€์†์„ฑ - - `~/.ssh/authorized_keys`์— `mdrfckr` ์ฃผ์„์˜ `ssh-rsa` ํ‚ค ์ฃผ์ž… ํ”์  - - `chattr +/-ia`๋ฅผ ์ด์šฉํ•œ `.ssh` ์ž ๊ธˆ ์‹œ๋„ -- ๋„คํŠธ์›Œํฌ - - ๊ณต๊ฒฉ ์œ ์ž… ์„ฑ๊ณต IP: `179.43.139.82` - - ๊ฐ์—ผ ํ”„๋กœ์„ธ์Šค ์™ธ๋ถ€ ์—ฐ๊ฒฐ IP: `179.43.139.85:80` - -## ๋กœ๊ทธ ๊ธฐ๋ฐ˜ ์‚ฌ์‹ค ํ™•์ธ -- `2026-02-18 18:46:05 KST`: `Accepted password for bot from 179.43.139.82` -- `2026-02-18 18:54:06 KST`: `Accepted password for bot from 179.43.139.82` -- `root` ๊ณ„์ • `Accepted` ๋กœ๊ทธ์ธ ์„ฑ๊ณต ๊ธฐ๋ก์€ ๋ณด๊ด€ ๋กœ๊ทธ ๊ธฐ์ค€ ๋ฏธ๊ฒ€์ถœ -- `admin` ๊ณ„์ •์€ ์ •์ƒ ์šด์˜ ์ ‘์†์œผ๋กœ ๋ณด์ด๋Š” `Accepted` ๊ธฐ๋ก ๋‹ค์ˆ˜ ์กด์žฌ - -## ์›์ธ ํŒ์ • -- SSH ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ ํ—ˆ์šฉ ์ƒํƒœ(`passwordauthentication yes`)์—์„œ `bot` ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธฐ๋ฐ˜ ์นจ์ž… ์„ฑ๊ณต -- `bot` ๊ณ„์ •์ด `sudo`/`docker` ๊ถŒํ•œ ๋ณด์œ (`sudo ALL`) ์ƒํƒœ์—ฌ์„œ ๊ฐ์—ผ ์Šคํฌ๋ฆฝํŠธ ์„ค์น˜ ๋ฐ ์ง€์†์„ฑ ํ™•๋ณด๊ฐ€ ๊ฐ€๋Šฅํ–ˆ๋˜ ๊ตฌ์กฐ - -## ์กฐ์น˜ ๋‚ด์—ญ -1. ์•…์„ฑ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ - - `kauditd0/kswapd00/edac0` ๊ด€๋ จ ํ”„๋กœ์„ธ์Šค ํ‚ฌ -2. ์ง€์†์„ฑ ์ œ๊ฑฐ - - `crontab -u bot -r`๋กœ `bot` ์‚ฌ์šฉ์ž ํฌ๋ก  ์ œ๊ฑฐ -3. ์•…์„ฑ ํŒŒ์ผ ์ œ๊ฑฐ - - `/home/bot/.configrc7`, `/tmp/.kswapd00`, `/tmp/.X28-unix/.rsync` ์‚ญ์ œ -4. ๋ฐฑ๋„์–ด ํ‚ค ์ œ๊ฑฐ - - `/home/bot/.ssh/authorized_keys`์˜ `mdrfckr` ํ‚ค ์ œ๊ฑฐ - - ๋ฐฑ์—…: `/home/bot/.ssh/authorized_keys.bak.20260226212628` -5. ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ต์ฒด - - `2026-02-26` ๊ธฐ์ค€ `admin`, `root`, `bot` ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ์™„๋ฃŒ - -## ๊ฒ€์ฆ ๊ฒฐ๊ณผ -- `kauditd0/kswapd00/edac0` ํ”„๋กœ์„ธ์Šค ๋ฏธ๊ฒ€์ถœ -- `bot` crontab ๋ฏธ์กด์žฌ ํ™•์ธ -- IOC ๊ฒฝ๋กœ(`/home/bot/.configrc7`, `/tmp/.kswapd00`, `/tmp/.X28-unix/.rsync`) ๋ฏธ์กด์žฌ ํ™•์ธ -- `mdrfckr` ํ‚ค ๋ฏธ๊ฒ€์ถœ ํ™•์ธ -- ์„œ๋น„์Šค ์˜ํ–ฅ ์—†์Œ: `docker ps` ์ „์ฒด `Up`, `curl http://localhost:8001/health` HTTP 200 - -## ๋‚จ์€ ๋ฆฌ์Šคํฌ -- ๋ณด๊ด€ ๋กœ๊ทธ ํ•œ๊ณ„๋กœ ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ ์กฐํšŒ/์œ ์ถœ ์—ฌ๋ถ€๋ฅผ 100% ํ™•์ •ํ•  ์ˆ˜ ์—†์Œ -- `bot` ๊ณ„์ •์œผ๋กœ ์ฝ๊ธฐ ์ ‘๊ทผ๋œ ๋น„๋ฐ€๊ฐ’(API ํ‚ค, ํ† ํฐ, DB ์ ‘์†์ •๋ณด)์€ ๋…ธ์ถœ ๊ฐ€๋Šฅ์„ฑ ๋ฐฐ์ œ ๋ถˆ๊ฐ€ - -## ํ›„์† ๊ถŒ๊ณ  -1. SSH ํ•˜๋“œ๋‹ - - `PasswordAuthentication no` - - `AllowUsers admin` ๋“ฑ ์ ‘์† ์‚ฌ์šฉ์ž ์ œํ•œ -2. ๊ณ„์ • ์ •๋ฆฌ - - `bot` ๊ณ„์ • ์—…๋ฌด ๋ถˆํ•„์š” ์‹œ ์ž ๊ธˆ(`usermod -L`) ๋˜๋Š” ์‚ญ์ œ - - `sudo`/`docker` ์ตœ์†Œ ๊ถŒํ•œ ์žฌ์„ค๊ณ„ -3. ๋น„๋ฐ€๊ฐ’ ๋กœํ…Œ์ด์…˜ - - `.env` ๊ธฐ๋ฐ˜ ํ† ํฐ/Gitea ํ† ํฐ/์™ธ๋ถ€ API ํ‚ค ์ „๋ฉด ๊ต์ฒด -4. ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ•ํ™” - - `auth.log`์˜ `Accepted password` ์ด์ƒ ํƒ์ง€ ์•Œ๋ฆผ - - ํฌ๋ก /์‹œ์Šคํ…œ ์„œ๋น„์Šค ์‹ ๊ทœ ๋“ฑ๋ก ์ด๋ฒคํŠธ ๋ชจ๋‹ˆํ„ฐ๋ง - -## ๊ตํ›ˆ -- ๋น„๋ฐ€๋ฒˆํ˜ธ SSH ํ—ˆ์šฉ + ๊ณ ๊ถŒํ•œ ์‚ฌ์šฉ์ž ์กฐํ•ฉ์€ ์ž๋™ํ™” ๋ด‡๋„ท ์นจํ•ด์— ๋งค์šฐ ์ทจ์•ฝํ•จ -- ๋ฐ•๋ฉธ์€ `ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ`๋งŒ์œผ๋กœ ๋๋‚˜์ง€ ์•Š๊ณ  `ํฌ๋ก /ํŒŒ์ผ/SSH ํ‚ค`๊นŒ์ง€ ํ•จ๊ป˜ ์ œ๊ฑฐํ•ด์•ผ ์žฌ๊ฐ์—ผ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Œ -- ์นจํ•ด ๋Œ€์‘ ํ›„์—๋Š” ์„œ๋น„์Šค ์ •์ƒ ์—ฌ๋ถ€(`docker ps`, healthcheck)์™€ ๋ณด์•ˆ ํ›„์†์กฐ์น˜๋ฅผ ๊ฐ™์€ ์ž‘์—… ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•จ +- ์ƒˆ ์œ„์น˜: `260226_51124_bot_account_compromise_and_eradication.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260226_51124_openclaw_gateway_์ƒ์ฃผํ”„๋กœ์„ธ์Šค_์ •๋ฆฌ.md b/journey/troubleshooting/260226_51124_openclaw_gateway_์ƒ์ฃผํ”„๋กœ์„ธ์Šค_์ •๋ฆฌ.md index 3ce11f9..408d868 100644 --- a/journey/troubleshooting/260226_51124_openclaw_gateway_์ƒ์ฃผํ”„๋กœ์„ธ์Šค_์ •๋ฆฌ.md +++ b/journey/troubleshooting/260226_51124_openclaw_gateway_์ƒ์ฃผํ”„๋กœ์„ธ์Šค_์ •๋ฆฌ.md @@ -1,38 +1,7 @@ -# 51124 openclaw-gateway ์ƒ์ฃผ ํ”„๋กœ์„ธ์Šค ์ •๋ฆฌ +# 260226_51124_openclaw_gateway_์ƒ์ฃผํ”„๋กœ์„ธ์Šค_์ •๋ฆฌ -**๋‚ ์งœ**: 2026-02-26 -**์ž‘์„ฑ์ž**: admin -**๊ด€๋ จ ํŒŒ์ผ**: `/home/admin/.nvm/versions/node/v24.4.0/lib/node_modules/openclaw/package.json`, `/proc/1127450/*` +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ---- - -## ๋ฌธ์ œ ์ƒํ™ฉ -- ๋ฉ”๋ชจ๋ฆฌ ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค ์ ๊ฒ€ ์ค‘ `openclaw-gateway`(PID 1127458) ๋ฐœ๊ฒฌ -- 51124 ์šด์˜ ๋Œ€์ƒ ์„œ๋น„์Šค ๋ชฉ๋ก(AGENTS.md)์—๋Š” `openclaw`๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์•„ ๋น„๊ด€๋ฆฌ ์ƒ์ฃผ ํ”„๋กœ์„ธ์Šค๋กœ ํŒ๋‹จ -- ์žฅ๊ธฐ ์ƒ์ฃผ ์ƒํƒœ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ ์œ  ๋ฐ ์šด์˜ ํ˜ผ์„  ๊ฐ€๋Šฅ์„ฑ ์กด์žฌ - -## ์‚ฌ์‹ค ํ™•์ธ -- ์‹œ์ž‘ ์‹œ๊ฐ: `2026-02-05 09:33:48 KST` (`ps -o lstart` ๊ธฐ์ค€) -- ์‹คํ–‰ ์ฃผ์ฒด: `admin` ๊ณ„์ • SSH ์„ธ์…˜(`session-60400.scope`, `SSH_CLIENT=192.228.158.63`) -- ์‹คํ–‰ ํ˜•ํƒœ: systemd ์„œ๋น„์Šค/ํฌ๋ก  ๋“ฑ๋ก ์—†์Œ, ์ˆ˜๋™ ์‹คํ–‰ ํ›„ orphan ์ƒ์ฃผ -- ํ”„๋กœ์„ธ์Šค ์ฒด์ธ: `systemd(1) -> openclaw(PID 1127450) -> openclaw-gateway(PID 1127458)` -- ํŒจํ‚ค์ง€ ์ •์ฒด: npm ๊ธ€๋กœ๋ฒŒ `openclaw@2026.2.2-3` (`description: WhatsApp gateway CLI ...`) - -## ํ•ด๊ฒฐ ๋ฐฉ์•ˆ -1. ๋น„๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ - - `pkill -f '^openclaw$'` - - `pkill -f 'openclaw-gateway'` -2. ์ž”์—ฌ ํ”„๋กœ์„ธ์Šค/ํฌํŠธ ๊ฒ€์ฆ - - `ps`, `pgrep`, `ss -tlnp` ์žฌํ™•์ธ์œผ๋กœ `openclaw` ๊ด€๋ จ ๋ฏธ๊ฒ€์ถœ ํ™•์ธ -3. ๋ฆฌ์†Œ์Šค ์žฌํ™•์ธ - - ์ข…๋ฃŒ ์ „ํ›„ ๋ฉ”๋ชจ๋ฆฌ ๋น„๊ต์—์„œ `free/available` ์ฆ๊ฐ€, swap ์‚ฌ์šฉ๋Ÿ‰ ๊ฐ์†Œ ํ™•์ธ - -## ๊ฒ€์ฆ ๊ฒฐ๊ณผ -- `openclaw`, `openclaw-gateway` ํ”„๋กœ์„ธ์Šค ๋ฏธ๊ฒ€์ถœ -- openclaw ๊ด€๋ จ ๋ฆฌ์Šจ ํฌํŠธ ๋ฏธ๊ฒ€์ถœ -- ์šด์˜ ํ•„์ˆ˜ ์ปจํ…Œ์ด๋„ˆ(`rb8001`, `skill-*`, `robeing_monitor`) ์˜ํ–ฅ ์—†์Œ - -## ๊ตํ›ˆ -- ์šด์˜ ๋Œ€์ƒ ์™ธ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐœ๊ฒฌ ์ฆ‰์‹œ ์‹คํ–‰ ์ฃผ์ฒด/์‹œ์ž‘ ์‹œ๊ฐ/์ž๋™์‹คํ–‰ ๊ฒฝ๋กœ(systemdยทcron)๊นŒ์ง€ ํ•จ๊ป˜ ํ™•์ธํ•ด์•ผ ํ•จ -- ๋น„๊ด€๋ฆฌ ์ƒ์ฃผ ํ”„๋กœ์„ธ์Šค๋Š” ์ข…๋ฃŒ ํ›„ ๋ฐ˜๋“œ์‹œ `ps/pgrep/ss` 3์ค‘ ๊ฒ€์ฆ์œผ๋กœ ์ž”์กด ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•จ -- ์šด์˜ ๋ฌธ์„œ(DOCS)์— ์ฆ‰์‹œ ๊ธฐ๋กํ•ด ๋™์ผ ์œ ํ˜• ์ด์Šˆ ์žฌ๋ฐœ ์‹œ ํŒ๋‹จ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•ด์•ผ ํ•จ +- ์ƒˆ ์œ„์น˜: `260226_51124_openclaw_gateway_์ƒ์ฃผํ”„๋กœ์„ธ์Šค_์ •๋ฆฌ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260226_NAS_192_168_219_51_์ ‘์†๋ถˆ๊ฐ€_์ž„์‹œ๋ฐฑ์—…๋ณต๊ตฌ.md b/journey/troubleshooting/260226_NAS_192_168_219_51_์ ‘์†๋ถˆ๊ฐ€_์ž„์‹œ๋ฐฑ์—…๋ณต๊ตฌ.md index b5ee469..0dc65eb 100644 --- a/journey/troubleshooting/260226_NAS_192_168_219_51_์ ‘์†๋ถˆ๊ฐ€_์ž„์‹œ๋ฐฑ์—…๋ณต๊ตฌ.md +++ b/journey/troubleshooting/260226_NAS_192_168_219_51_์ ‘์†๋ถˆ๊ฐ€_์ž„์‹œ๋ฐฑ์—…๋ณต๊ตฌ.md @@ -1,40 +1,7 @@ -# 260226 NAS(192.168.219.51) ์ ‘์†๋ถˆ๊ฐ€ ์ž„์‹œ ๋ฐฑ์—… ๋ณต๊ตฌ +# 260226_NAS_192_168_219_51_์ ‘์†๋ถˆ๊ฐ€_์ž„์‹œ๋ฐฑ์—…๋ณต๊ตฌ -## ์‹œ๊ฐ„ -- ๊ธฐ์ค€์ผ: 2026-02-26 -- ๋ฐœ์ƒ ์‹œ๊ฐ: 2026-02-26 20:4x KST -- ์ž„์‹œ ๋ณต๊ตฌ ์™„๋ฃŒ: 2026-02-26 20:55 KST +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## ์ฆ์ƒ -- `51123`์—์„œ `/mnt/nas` ์ ‘๊ทผ ์‹œ `Host is down` ๋ฐœ์ƒ -- `192.168.219.51`์— `ping` 100% ์†์‹ค -- SMB(445) ์ ‘๊ทผ ์‹œ `No route to host` - -## ์›์ธ ํŒ์ • -- `51123`/`51124` ์–‘์ชฝ์—์„œ ๋™์ผํ•˜๊ฒŒ `192.168.219.51` ๋ถˆํ†ต ํ™•์ธ -- ๋กœ์ปฌ ์„œ๋ฒ„(51123) ๋„คํŠธ์›Œํฌ ์ž์ฒด๋Š” ์ •์ƒ(`192.168.219.1`, `192.168.219.52` ํ†ต์‹  ์ •์ƒ) -- ํŒ์ •: ์„œ๋ฒ„ ๋กœ์ปฌ ์ด์Šˆ๊ฐ€ ์•„๋‹ˆ๋ผ NAS ์ „์›/๋งํฌ/์Šค์œ„์น˜ ๊ตฌ๊ฐ„ ์žฅ์•  ๊ฐ€๋Šฅ์„ฑ ๋†’์Œ - -## ์ฆ‰์‹œ ์กฐ์น˜ (๋ฐฑ์—… ๊ณต๋ฐฑ ๋ฐฉ์ง€) -1. ๊ธฐ์กด `/mnt/nas` ๋งˆ์šดํŠธ ํ•ด์ œ -2. ๋กœ์ปฌ ๋Œ€์ฒด ๊ฒฝ๋กœ ์ƒ์„ฑ: `/mnt/hdd/nas-fallback/backup/{weekly,current,archives}` -3. bind ๋งˆ์šดํŠธ ์ ์šฉ: `/mnt/hdd/nas-fallback` -> `/mnt/nas` -4. `weekly-backup.sh` ์ˆ˜๋™ ์‹คํ–‰์œผ๋กœ ๋™์ž‘ ๊ฒ€์ฆ - -## ๊ฒ€์ฆ ๊ฒฐ๊ณผ -- `/mnt/nas/backup/weekly/20260226` ์ƒ์„ฑ ํ™•์ธ -- `weekly-backup-20260226.log` ๊ธฐ์ค€ ๋ฐฑ์—… ์™„๋ฃŒ ํฌ๊ธฐ: `30M` -- ์ž„์‹œ ์ƒํƒœ์—์„œ ์ฃผ๊ฐ„ ๋ฐฑ์—… ํฌ๋ก  ๊ฒฝ๋กœ(`/mnt/nas/backup/weekly`) ์ •์ƒ ์œ ์ง€ - -## ์›๋ณต ์ ˆ์ฐจ (NAS ๋ณต๊ตฌ ํ›„) -1. NAS(192.168.219.51) ํ†ต์‹  ๋ณต๊ตฌ ํ™•์ธ (`ping`, SMB 445) -2. `sudo umount /mnt/nas` -3. `sudo mount /mnt/nas` (fstab์˜ CIFS ์›๋งˆ์šดํŠธ ๋ณต๊ท€) -4. `/mnt/nas/backup` ์‹ค์ œ NAS ๊ฒฝ๋กœ ์ ‘๊ทผ ํ™•์ธ -5. ์ž„์‹œ ๋ฐ์ดํ„ฐ(`/mnt/hdd/nas-fallback/backup`)๋ฅผ NAS๋กœ ๋™๊ธฐํ™” ํ›„ ์ •๋ฆฌ - -## ์ฐธ๊ณ  -- ๊ธฐ์กด NAS ๋ฐฑ์—… ์ฒด๊ณ„ ๋ฌธ์„œ: `./250729_์„œ๋ฒ„๋ฐฑ์—…๋ฐ๋กœ๊ทธ๊ด€๋ฆฌ์ฒด๊ณ„๊ตฌ์ถ•.md` - -## ํ›„์† ๋ฌธ์„œ -- ๋‹ค์Œ ๋‹จ๊ณ„: [260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ](./260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ.md) +- ์ƒˆ ์œ„์น˜: `260226_NAS_192_168_219_51_์ ‘์†๋ถˆ๊ฐ€_์ž„์‹œ๋ฐฑ์—…๋ณต๊ตฌ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260303_51123_gateway_rb8001_์—ฐ๊ฒฐ์ ๊ฒ€_23์„œ๋ฒ„_์ „๋‹ฌ์‚ฌํ•ญ.md b/journey/troubleshooting/260303_51123_gateway_rb8001_์—ฐ๊ฒฐ์ ๊ฒ€_23์„œ๋ฒ„_์ „๋‹ฌ์‚ฌํ•ญ.md index 7bc47af..81e8b96 100644 --- a/journey/troubleshooting/260303_51123_gateway_rb8001_์—ฐ๊ฒฐ์ ๊ฒ€_23์„œ๋ฒ„_์ „๋‹ฌ์‚ฌํ•ญ.md +++ b/journey/troubleshooting/260303_51123_gateway_rb8001_์—ฐ๊ฒฐ์ ๊ฒ€_23์„œ๋ฒ„_์ „๋‹ฌ์‚ฌํ•ญ.md @@ -1,56 +1,7 @@ -# 23 ์„œ๋ฒ„ ์ „๋‹ฌ์‚ฌํ•ญ: ๊ฒŒ์ดํŠธ์›จ์ด-8001 ์—ฐ๊ฒฐ ์ ๊ฒ€ ๊ฒฐ๊ณผ +# 260303_51123_gateway_rb8001_์—ฐ๊ฒฐ์ ๊ฒ€_23์„œ๋ฒ„_์ „๋‹ฌ์‚ฌํ•ญ -**๋‚ ์งœ**: 2026-03-03 -**์ž‘์„ฑ์ž**: Codex -**๊ด€๋ จ ํŒŒ์ผ**: `robeing-gateway/app/main.py`, `robeing-gateway/app/routers/slack.py`, `robeing-gateway/app/services/slack_proxy.py` +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ---- - -## ๋ฌธ์ œ ์ƒํ™ฉ -- ์š”์ฒญ์‚ฌํ•ญ: `51124 rb8001(8001) ๋ฐฐํฌ๋ณธ`์ด `51123 robeing-gateway(8100)`๋ฅผ ํ†ตํ•ด ๊ณ„ํš๋Œ€๋กœ ์ „๋‹ฌ๋˜๋Š”์ง€ ํ™•์ธ. -- ์ œ์•ฝ: `์ˆ˜์ •๊ธˆ์ง€` ์กฐ๊ฑด์œผ๋กœ ์ฝ”๋“œ/์„ค์ • ๋ณ€๊ฒฝ ์—†์ด ํ™•์ธ๋งŒ ์ˆ˜ํ–‰. - -## ํ™•์ธํ•œ ์‚ฌ์‹ค -- ๊ฒŒ์ดํŠธ์›จ์ด ์ƒํƒœ - - `robeing-gateway` ์ปจํ…Œ์ด๋„ˆ: `Up (healthy)` - - `GET /healthz`: `200 {"status":"ok"}` -- ๊ฒŒ์ดํŠธ์›จ์ด ๋Œ€์ƒ ์„ค์ • - - ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ๋ณ€์ˆ˜: `ROBEING_DEFAULT_HOST=192.168.219.52`, `ROBEING_DEFAULT_PORT=8001`, `ROBEING_DEFAULT_ID=rb8001` -- Run ID ์ „ํŒŒ ๊ตฌํ˜„ - - `app/main.py`์˜ `/api/chat`์—์„œ `X-Run-Id` ์ƒ์„ฑ/์ „๋‹ฌ ๋ฐ ์‘๋‹ต `run_id` ๊ธฐ๋ณธ๊ฐ’ ์ฃผ์ž… ํ™•์ธ - - `app/routers/slack.py` + `app/services/slack_proxy.py`์—์„œ `X-Run-Id` ํ—ค๋” ์ƒ์„ฑ/์ „๋‹ฌ ํ™•์ธ - -## ํ•ต์‹ฌ ์ ๊ฒ€ ๊ฒฐ๊ณผ -- ์•„ํ‚คํ…์ฒ˜ ์ ํ•ฉ์„ฑ(๊ฒŒ์ดํŠธ์›จ์ด ๋‹จ์ผ ์ง„์ž…) ๊ด€์ ์—์„œ **๋ถ€๋ถ„ ๋ถˆ์ผ์น˜** ํ™•์ธ. -- ๊ทผ๊ฑฐ: - - ๊ฒŒ์ดํŠธ์›จ์ด ๋ฒ”์šฉ ํ”„๋ก์‹œ๋Š” `GET /api/{path:path}`๋งŒ ์กด์žฌ (`robeing-gateway/app/main.py`) - - ๊ณ„ํš ํ•ต์‹ฌ ์‹ ๊ทœ API๋Š” `POST` ์ค‘์‹ฌ (`/api/self-improvement/*`, `/api/prompt-db/*`) - - ์‹ค์ œ ํ˜ธ์ถœ ๊ฒฐ๊ณผ: - - `POST /api/self-improvement/runs` -> `405 Method Not Allowed (allow: GET)` - - `POST /api/prompt-db/templates` -> `405 Method Not Allowed (allow: GET)` - - `POST /api/self-improvement/policy-versions` -> `405 Method Not Allowed (allow: GET)` -- ๋Œ€์กฐ ํ™•์ธ: - - ๋™์ผ ๊ฒฝ๋กœ๋ฅผ rb8001(192.168.219.52:8001)๋กœ ์ง์ ‘ ํ˜ธ์ถœ ์‹œ `401 Unauthorized` ๋ฐ˜ํ™˜ - - ์ฆ‰, rb8001 ๊ฒฝ๋กœ ์ž์ฒด๋Š” ์กด์žฌํ•˜๋ฉฐ ์ธ์ฆ์ด ํ•„์š”ํ•œ ์ƒํƒœ์ด๊ณ , ๊ฒŒ์ดํŠธ์›จ์ด์—์„œ ๋จผ์ € `POST`๊ฐ€ ์ฐจ๋‹จ๋˜๊ณ  ์žˆ์Œ. - -## ๋ถ€๊ฐ€ ๊ด€์ฐฐ -- Slack ๊ฒ€์ฆ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์‹œ ๋“ฑ๋ก ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ๊ฐ€ `403` ๋ฐœ์ƒ. -- ๊ฒŒ์ดํŠธ์›จ์ด ๋กœ๊ทธ์—์„œ `No bot token found`, `No UUID found`๊ฐ€ ํ•จ๊ป˜ ๊ด€์ฐฐ๋จ. -- ์ด ํ•ญ๋ชฉ์€ ์‹ ๊ทœ self-improvement/prompt-db ๊ฒฝ๋กœ ์ด์Šˆ์™€ ๋ณ„๊ฐœ๋กœ, Slack ์‚ฌ์šฉ์ž ๋งคํ•‘/ํ† ํฐ ๋ฐ์ดํ„ฐ ์ƒํƒœ ์ ๊ฒ€์ด ํ•„์š”ํ•จ. - -## 24์„œ๋ฒ„ ์ „๋‹ฌ์‚ฌํ•ญ (rb8001 ์ธก ํ™•์ธ ๊ฒฐ๊ณผ) -- `rb8001` ํ˜„์žฌ ๋ฐฐํฌ ์ปค๋ฐ‹: `54f74d70fc7f2e72368a1ca081d0f52a8dfcba2b` (`Up (healthy)` ํ™•์ธ). -- ์‹ ๊ทœ ๊ฒฝ๋กœ ์กด์žฌ ํ™•์ธ: - - `POST /api/self-improvement/policy-versions` - - `POST /api/self-improvement/runs` - - `POST /api/prompt-db/templates`, `.../versions`, `.../activate/...`, `POST /api/prompt-db/events` -- DB ํ…Œ์ด๋ธ” ์ƒํƒœ: - - `robeing_self_improvement_runs`, `robeing_policy_versions`, `prompt_templates`, `prompt_versions`, `prompt_events`, `prompt_metrics_daily` ๋ชจ๋‘ ์ƒ์„ฑ๋จ. - - API ์ง์ ‘ ํ˜ธ์ถœ ์‹œ `self_improvement_runs`/`prompt_events` ์ ์žฌ ์ •์ƒ ํ™•์ธ. -- ์œ ์˜์‚ฌํ•ญ: - - ํ˜„์žฌ `/api/message` ํ˜ธ์ถœ๋งŒ์œผ๋กœ๋Š” `run_id` ๊ธฐ์ค€ `self_improvement_runs`/`prompt_events` ์ž๋™ ์ ์žฌ๊ฐ€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ. - - ์ฆ‰, ํ˜„์žฌ ๊ธฐ์ค€ ์ž๊ธฐ๊ฐœ์„  ๋ฃจํ”„ ์ ์žฌ๋Š” API ์ˆ˜๋™ ํ˜ธ์ถœ ๊ฒฝ๋กœ๋Š” ๋™์ž‘, ๋ฉ”์‹œ์ง€ E2E ์ž๋™ ํ๋ฃจํ”„๋Š” ๋ฏธ์—ฐ๊ฒฐ ์ƒํƒœ. - -## ๊ตํ›ˆ -- `51123 gateway`๊ฐ€ ๋‹จ์ผ ์ง„์ž…์ ์ธ ๊ตฌ์กฐ์—์„œ๋Š” ์‹ ๊ทœ ๋ฐฑ์—”๋“œ API๊ฐ€ ์ถ”๊ฐ€๋  ๋•Œ `HTTP method(ํŠนํžˆ POST/PUT/DELETE)`๊นŒ์ง€ ํฌํ•จํ•œ ํ”„๋ก์‹œ ๊ฒฝ๋กœ๋ฅผ ๋™์‹œ์— ์—ด์–ด์•ผ ํ•œ๋‹ค. -- `์ง์ ‘ upstream ์„ฑ๊ณต`๊ณผ `gateway ๊ฒฝ์œ  ์„ฑ๊ณต`์€ ๋ณ„๋„ ๊ฒ€์ฆ ํ•ญ๋ชฉ์ด๋ฏ€๋กœ ๋ฐฐํฌ ์™„๋ฃŒ ํŒ๋‹จ ์ „์— ๋‘˜ ๋‹ค ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. +- ์ƒˆ ์œ„์น˜: `260303_51123_gateway_rb8001_์—ฐ๊ฒฐ์ ๊ฒ€_23์„œ๋ฒ„_์ „๋‹ฌ์‚ฌํ•ญ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md b/journey/troubleshooting/260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md index a2f82aa..a3dc245 100644 --- a/journey/troubleshooting/260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md +++ b/journey/troubleshooting/260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md @@ -1,116 +1,7 @@ -# 260304 51123 ์ž„์‹œ๋ณต๊ตฌ ์„œ๋น„์Šค ์—ฐ์†์„ฑ ์กฐ์น˜๋‚ด์—ญ +# 260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ -## 1. ๋ชฉ์  -- 51124 ์„œ๋ฒ„ ์žฅ์•  ์ƒํ™ฉ์—์„œ 51123 ๋‹จ๋…์œผ๋กœ robeing ํ•ต์‹ฌ ์„œ๋น„์Šค ์—ฐ์†์„ฑ์„ ์ž„์‹œ ๋ณต๊ตฌํ•œ๋‹ค. -- 2026-03-04 ๊ธฐ์ค€, ๋‚ด์ผ(2026-03-05) ์˜ค์ „ 9์‹œ~10์‹œ ์ผ์ •/์ด๋ฉ”์ผ ๊ฒฝ๋กœ ์ค‘๋‹จ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## 2. ์žฅ์•  ์ง•ํ›„ ๋ฐ ์šด์˜ ์˜ํ–ฅ -- `/api/message` ์‘๋‹ต์ด 3์ดˆ ์ œํ•œ ๋‚ด ํƒ€์ž„์•„์›ƒ(`HTTP:000`, `curl (28)`)์œผ๋กœ ์‹คํŒจ. -- ๊ฒŒ์ดํŠธ์›จ์ด ๊ฒฝ์œ  ์ผ๋ถ€ ๊ฒฝ๋กœ์—์„œ 422/500์ด ํ˜ผ์žฌ๋˜์–ด ํ˜ธ์ถœ ์‹ ๋ขฐ๋„๊ฐ€ ์ €ํ•˜. -- PostgreSQL ์—ฐ๊ฒฐ ์Šฌ๋กฏ ๊ณ ๊ฐˆ(Idle ์„ธ์…˜ ๋ˆ„์ )๋กœ ์‹ ๊ทœ ์ž‘์—… ์ง€์—ฐ. -- 51124 ๋ถˆ๊ฐ€ ์ƒํƒœ๋กœ ๊ธฐ์กด ์ด์ค‘์„œ๋ฒ„ ๊ฐ€์ •(23 ์ธํ”„๋ผ + 24 ์‹คํ–‰)์ด ๊นจ์ง. - -## 3. ํ™•์ธ๋œ ๊ทผ๋ณธ ์›์ธ -1. Docker ๋ธŒ๋ฆฌ์ง€ ๋Œ€์—ญ(`172.21.0.0/16`)์—์„œ ํ˜ธ์ŠคํŠธ ํฌํŠธ(8001, 9024, 8512) ์ ‘๊ทผ์ด ๋ฐฉํ™”๋ฒฝ์— ๋ง‰ํ˜€ ๋‚ด๋ถ€ ์—ฐ๊ณ„๊ฐ€ ๋‹จ์ ˆ๋จ. -2. PostgreSQL Idle ์„ธ์…˜ ๋ˆ„์ ์œผ๋กœ ์ปค๋„ฅ์…˜ ํ’€ ์—ฌ์œ ๊ฐ€ ์ค„์–ด ์‘๋‹ต ์ง€์—ฐ์ด ์ฆํญ๋จ. -3. rb8001 ๋Ÿฐํƒ€์ž„์—์„œ ๊ณ ๋น„์šฉ ๊ฒฝ๋กœ(์˜๋„/๊ฒ€์ƒ‰ ๊ทธ๋ž˜ํ”„ ํฌํ•จ)๊ฐ€ ํ™œ์„ฑํ™”๋œ ์ƒํƒœ๋กœ ๋А๋ฆฐ ๊ฒฝ๋กœ๊ฐ€ ์žฆ๊ฒŒ ํ˜ธ์ถœ๋จ. -4. gateway ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ผ๋ถ€๊ฐ€ ์šด์˜ ์‹คIP ๊ธฐ์ค€๊ณผ ์–ด๊ธ‹๋‚˜ ํ—ฌ์Šค/๊ฒ€์ฆ ๊ฒฝ๋กœ๊ฐ€ ๋ถˆ์•ˆ์ •ํ–ˆ์Œ. - -## 4. ์‹ค์ œ ์กฐ์น˜ ๋‚ด์—ญ(51123) -### 4.1 ๋„คํŠธ์›Œํฌ/๋ฐฉํ™”๋ฒฝ -- UFW allow ๊ทœ์น™ ์ถ”๊ฐ€: - - `from 172.21.0.0/16 to any port 8001 proto tcp` - - `from 172.21.0.0/16 to any port 9024 proto tcp` - - `from 172.21.0.0/16 to any port 8512 proto tcp` - -### 4.2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค -- Idle ์ปค๋„ฅ์…˜ 92๊ฑด ์ •๋ฆฌ(`pg_terminate_backend`)๋กœ ์Šฌ๋กฏ ํšŒ๋ณต. -- ์ฆ‰์‹œ ์žฌ์ ‘์† ์ •์ƒํ™” ํ™•์ธ. - -### 4.3 rb8001 ์„ฑ๋Šฅ ์•ˆ์ „๋ชจ๋“œ(์ž„์‹œ) -- `/home/admin/rb8001/.env` ์˜ค๋ฒ„๋ผ์ด๋“œ ์ ์šฉ: - - `INTENT_ENGINE=v1` - - `INTENT_USE_LANGGRAPH=false` - - `INTENT_USE_COT=false` - - `WEB_SEARCH_USE_GRAPH=false` -- ์ ์šฉ ๋ฐฉ์‹: `docker compose down && docker compose up -d --build` - -### 4.4 gateway ์šด์˜๊ฐ’ ์ •ํ•ฉํ™” -- `/home/admin/robeing-gateway/.env` ์ˆ˜์ •: - - `ROBEING_DEFAULT_HOST=192.168.219.45` - - `MONITOR_URL="http://192.168.219.45:9024"` -- ์ ์šฉ ๋ฐฉ์‹: `docker compose down && docker compose up -d --build` - -## 5. ๊ฒ€์ฆ ๊ฒฐ๊ณผ(2026-03-04) -1. ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ -- `robeing-gateway(8100)`, `rb8001(8001)`, `robeing_monitor(9024)`, `skill-calendar(8512)`, `skill-email(8501)` running ํ™•์ธ. - -2. ํ—ฌ์Šค/์‘๋‹ต -- gateway `/healthz` 200. -- gateway `/api/message` ์ •์ƒ ์‘๋‹ต ๋ณต๊ตฌ(์ธก์ • ์•ฝ 0.5~1.7์ดˆ ๊ตฌ๊ฐ„). - -3. ํ•ต์‹ฌ ๊ธฐ๋Šฅ -- ์ผ์ •์„ฑ ๋ฌธ๊ตฌ ํฌํ•จ ๋ฉ”์‹œ์ง€ ์š”์ฒญ ์‹œ ์‘๋‹ต ์ •์ƒ. -- `self-improvement`, `prompt-db`๋Š” ์œ ํšจ ์Šคํ‚ค๋งˆ ์š”์ฒญ์—์„œ ์„ฑ๊ณต, ๋น„์œ ํšจ payload๋Š” ๊ธฐ๋Œ€๋Œ€๋กœ 422/500. - -4. ์ด๋ฉ”์ผ ๊ฒฝ๋กœ(๋‚ด์ผ 9~10์‹œ ํ•ต์‹ฌ) -- `skill-email` `/health` 200. -- rb8001 ์ปจํ…Œ์ด๋„ˆ -> skill-email ๋‚ด๋ถ€ ํ˜ธ์ถœ 200. -- NaverWorks ๋ฉ”์ผ ๋ฆฌ์ŠคํŠธ API(์‹ค UUID `3550cef6-63e1-4ceb-8802-a25c9d1c6917`) 200, ๋ชฉ๋ก ์ˆ˜์‹  ํ™•์ธ. - -5. ์Šค์ผ€์ค„ DB -- `scheduled_jobs` ํ™œ์„ฑ ํ•ญ๋ชฉ ํ™•์ธ: - - `naverworks_daily`: `0 9 * * mon-fri` - - `coldmail_daily`: `5 9 * * mon-fri` - - `daily_headlines`: `10 9 * * mon-fri` - - `companyx_news`: `0 10 * * mon-fri` - -## 6. ์ž”์—ฌ ๋ฆฌ์Šคํฌ ๋ฐ ์šด์˜ ์ฃผ์˜ -- `skill-embedding(8515)` ๋ฏธ๊ธฐ๋™ ์ƒํƒœ๋Š” ์ง€์†. rb8001 ๋กœ๊ทธ์— ์ž„๋ฒ ๋”ฉ ์—ฐ๊ฒฐ ์—๋Ÿฌ๊ฐ€ ๊ฐ„ํ—์ ์œผ๋กœ ๋‚จ์„ ์ˆ˜ ์žˆ์Œ. -- ํ˜„์žฌ ๋ณต๊ตฌ๋Š” "ํ•ต์‹ฌ ์—ฐ์†์„ฑ ํ™•๋ณด" ๊ธฐ์ค€์˜ ์ž„์‹œ ์•ˆ์ •ํ™”์ด๋ฉฐ, 51124 ๋ณต๊ตฌ ํ›„ ์›๋ž˜ ๋ถ„๋ฆฌ๊ตฌ์กฐ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ์žฌ๋ฐฐ์น˜๊ฐ€ ํ•„์š”. -- ์Šค์ผ€์ค„ ์‹คํ–‰ ์ง์ „/์งํ›„(2026-03-05 08:55~10:10) ๊ตฌ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ฐ•ํ™”ํ•ด์•ผ ํ•จ. - -## 7. 24 ์„œ๋ฒ„ ์ธ๊ณ„ ๋ฉ”๋ชจ -- 51124 ๋ณต๊ตฌ ํ›„ ์šฐ์„ ์ˆœ์œ„: - 1. rb8001/skill/chromadb ์›๋ณต ๋ฐฐ์น˜ - 2. gateway ๋Œ€์ƒ upstream ์žฌ์ ๊ฒ€ - 3. ์ž„์‹œ ์„ฑ๋Šฅ ํ”Œ๋ž˜๊ทธ(`INTENT_USE_LANGGRAPH=false` ๋“ฑ) ๋‹จ๊ณ„์  ํ•ด์ œ ์—ฌ๋ถ€ ์„ฑ๋Šฅ ์ธก์ • ํ›„ ๊ฒฐ์ • -- ๋ณธ ๋ฌธ์„œ๋Š” 51123 ์ž„์‹œ๋ณต๊ตฌ ๊ธฐ์ค€ ์šด์˜ ๊ธฐ๋ก์ด๋ฉฐ, 24 ์›๋ณต ์‹œ ๋ณ„๋„ ํ›„์† ๋ฌธ์„œ๋กœ ๋ถ„๋ฆฌ ๊ธฐ๋ก ๊ถŒ์žฅ. - -## 8. ์ถ”๊ฐ€ ๋ณต๊ตฌ/๋ฐฐํฌ ์•ˆ์ „ํ™” ๊ธฐ๋ก (2026-03-04 03:00~03:30 KST) -### 8.1 ์Šคํ‚ฌ ๋ณต๊ตฌ ์ƒํƒœ(51123) -- ์‹คํ–‰ ํ™•์ธ: - - `robeing-skill-news` (`8505`) healthy - - `skill-slack` (`8502`) healthy - - `skill-rag-file` (`8508`) healthy - - `skill-embedding` (`8515`) healthy -- ํ—ฌ์Šค ์‘๋‹ต ํ™•์ธ: - - `GET http://192.168.219.45:8505/health` -> `{"status":"healthy"}` - - `GET http://192.168.219.45:8502/health` -> healthy ์‘๋‹ต - - `GET http://192.168.219.45:8508/healthz` -> healthy ์‘๋‹ต - - `GET http://192.168.219.45:8515/healthz` -> `{"status":"ok"}` - -### 8.2 ๊ทผ๋ณธ ์›์ธ๊ณผ ์กฐ์น˜(embedding) -- ๊ทผ๋ณธ ์›์ธ: - - `skill-embedding` ์žฌ์‹œ์ž‘ ๋ฃจํ”„ ์›์ธ์€ `/models/onnx/ko-sroberta-multitask/model.onnx` ํŒŒ์ผ ๋ถ€์žฌ. - - ๋กœ๊ทธ ๊ทผ๊ฑฐ: `FileNotFoundError: ONNX ๋ชจ๋ธ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค`. -- ์กฐ์น˜: - - `jhgan/ko-sroberta-multitask`๋ฅผ ONNX๋กœ ๋ณ€ํ™˜ํ•ด `model.onnx` ์ƒ์„ฑ. - - ์ƒ์„ฑ ๊ฒฝ๋กœ: `/home/admin/robeing/onnx_models/ko-sroberta-multitask/model.onnx` (์•ฝ 423MB). - - ์ดํ›„ `skill-embedding` `docker compose down && up -d --build`๋กœ ์ •์ƒํ™”. - -### 8.3 ๋ฐฐํฌ ์•ˆ์ „ํ™”(23/24 ๊ฒฝ๋กœ ์ผ๋ฐ˜ํ™”) ๋ฐ ํ‘ธ์‹œ -- `skill-rag-file`: - - `DOCUMENT_MOUNT_ROOT`, `DOCUMENT_BASE_PATH` ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณผ๋ฅจ/๊ฒฝ๋กœ๋ฅผ ์„œ๋ฒ„๋ณ„ `.env` ์˜ค๋ฒ„๋ผ์ด๋“œ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ผ๋ฐ˜ํ™”. - - ๋ฐ˜์˜ ์ปค๋ฐ‹: `ab3ac78` (`main` ํ‘ธ์‹œ ์™„๋ฃŒ). -- `skill-embedding`: - - `ONNX_MODELS_HOST_PATH` ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ธ ๋งˆ์šดํŠธ ๊ฒฝ๋กœ ์ผ๋ฐ˜ํ™”. - - 24 ์ž๋™๋ฐฐํฌ ๊ธฐ๋ณธ๊ฐ’์€ `/home/admin/ivada_project/onnx_models`๋กœ ๊ณ ์ •. - - 23 ์ž„์‹œ๋ณต๊ตฌ๋Š” `.env` ์˜ค๋ฒ„๋ผ์ด๋“œ๋กœ ์œ ์ง€. - - ๋ฐ˜์˜ ์ปค๋ฐ‹: `5a0f357`, ์ถ”๊ฐ€ ๊ต์ • `ede5896` (`main` ํ‘ธ์‹œ ์™„๋ฃŒ). - -### 8.4 Gitea workflow ์ ๊ฒ€ ๊ฒฐ๊ณผ -- ์ ๊ฒ€ ๋Œ€์ƒ: `rb8001`, `skill-news`, `skill-slack`, `skill-email`, `skill-calendar`, `skill-rag-file`, `skill-embedding`, `robeing-monitor`์˜ `.gitea/workflows/*.yml`. -- ๊ฒฐ๋ก : - - ์ด๋ฒˆ ์ด์Šˆ ๊ธฐ์ค€(์„œ๋ฒ„ ๊ฒฝ๋กœ ํ•˜๋“œ์ฝ”๋”ฉ)์œผ๋กœ๋Š” workflow YAML ์ถ”๊ฐ€ ์ˆ˜์ • ์—†์ด `.env`/compose ์ผ๋ฐ˜ํ™”๋กœ ๋Œ€์‘ ๊ฐ€๋Šฅ. - - ๋ณ„๋„ ๊ฐœ์„  ํ›„๋ณด: `skill-calendar` workflow์˜ `runs-on` ์œ„์น˜๊ฐ€ ๋น„ํ‘œ์ค€ ๊ตฌ์กฐ๋ผ ์•ˆ์ •์„ฑ ์ ๊ฒ€ ํ•„์š”(ํ›„์† ๊ณผ์ œ ๋ถ„๋ฆฌ). +- ์ƒˆ ์œ„์น˜: `260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md b/journey/troubleshooting/260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md index de6fae7..c48d4f0 100644 --- a/journey/troubleshooting/260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md +++ b/journey/troubleshooting/260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md @@ -1,42 +1,7 @@ -# 260305 23์ž„์‹œ๋ฐฐํฌ env.deploy SSOT ๋ฐ ๋ฐฐํฌ์‹คํŒจ ๊ทผ๋ณธ์›์ธ ํ•ด๊ฒฐ +# 260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ -**๋‚ ์งœ**: 2026-03-05 -**์ž‘์„ฑ์ž**: Codex -**๊ด€๋ จ ํŒŒ์ผ**: `robeing/skill-rag-file/app/core/config.py`, `robeing/skill-rag-file/.gitea/workflows/deploy.yml`, `robeing/skill-embedding/config.py`, `robeing/robeing-monitor/.gitea/workflows/deploy.yml` +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ---- - -## ๋ฌธ์ œ ์ƒํ™ฉ -- 51124 ๋‹ค์šด ์ƒํƒœ์—์„œ 51123 ์ž„์‹œ์šด์˜ ์ค‘, ์ผ๋ถ€ ์Šคํ‚ฌ ๋ฐฐํฌ๊ฐ€ ๋ฐ˜๋ณต ์‹คํŒจํ–ˆ๋‹ค. -- `skill-rag-file`, `skill-embedding`์€ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋™ ์งํ›„ `ValidationError`๋กœ ํ—ฌ์Šค์ฒดํฌ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. -- `robeing-monitor`๋Š” ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ ๋‹จ๊ณ„์—์„œ ๊ถŒํ•œ ์˜ค๋ฅ˜๋กœ ์ค‘๋‹จ๋๋‹ค. - -## ํ™•์ธ๋œ ๊ทผ๋ณธ ์›์ธ -1. `skill-rag-file`/`skill-embedding` ์„ค์ • ๋ชจ๋ธ์ด `.env`์˜ ์ถ”๊ฐ€ ํ‚ค๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์•„ ๋Ÿฐํƒ€์ž„ ์‹œ์ž‘์ด ์‹คํŒจํ–ˆ๋‹ค. -2. ์›Œํฌํ”Œ๋กœ์šฐ์˜ ๋ฐฐํฌ ๊ฒฝ๋กœ๊ฐ€ ์„œ๋น„์Šค๋ณ„ ํ•˜๋“œ์ฝ”๋”ฉ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ด SSOT(`DEPLOY_PROJECT_DIR`)๊ฐ€ ๊นจ์ ธ ์žˆ์—ˆ๋‹ค. -3. `robeing-monitor` ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ์˜ `chmod 777 logs`๊ฐ€ ์‹ค์ œ ๊ถŒํ•œ ์ •์ฑ…๊ณผ ์ถฉ๋Œํ•ด ์ฆ‰์‹œ ์‹คํŒจํ–ˆ๋‹ค. - -## ํ•ด๊ฒฐ ๋ฐฉ์•ˆ -1. ์„ค์ • ํŒŒ์„œ ์ˆ˜์ •(์›์ธ ์ง์ ‘ ์ˆ˜์ •) -- `skill-rag-file/app/core/config.py`: `SettingsConfigDict(..., extra="ignore")` ์ ์šฉ. -- `skill-embedding/config.py`: `SettingsConfigDict(..., extra="ignore")` ์ ์šฉ. - -2. ๋ฐฐํฌ ๊ฒฝ๋กœ SSOT ์ •๋ฆฌ -- `skill-rag-file/.gitea/workflows/deploy.yml`: `cd /home/admin/...` ํ•˜๋“œ์ฝ”๋”ฉ ์ œ๊ฑฐ, `DEPLOY_PROJECT_DIR` ์‚ฌ์šฉ์œผ๋กœ ํ†ต์ผ. -- `robeing-monitor/.gitea/workflows/deploy.yml`: ํ•˜๋“œ์ฝ”๋”ฉ ๊ฒฝ๋กœ ์ œ๊ฑฐ, `DEPLOY_PROJECT_DIR` ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ต์ผ. - -3. ๊ถŒํ•œ ์ถฉ๋Œ ์ œ๊ฑฐ -- `robeing-monitor/.gitea/workflows/deploy.yml`: ์‹คํŒจ ์›์ธ์ธ `chmod 777 logs` ์ œ๊ฑฐ. - -## ๊ฒ€์ฆ ๊ฒฐ๊ณผ -- `skill-embedding` ์ตœ์‹  ์ปค๋ฐ‹ `f89109c` ์‹คํ–‰: Gitea Actions `task 2106` `Job succeeded`. -- `skill-rag-file` ์ตœ์‹  ์ปค๋ฐ‹ `ddc4693` ์‹คํ–‰: Gitea Actions `task 2107` `Job succeeded`. -- `robeing-monitor` ์ตœ์‹  ์ปค๋ฐ‹ `c62794c` ์‹คํ–‰: Gitea Actions `task 2108` `Job succeeded`. - -## ์šด์˜ ๊ฒฐ๋ก  -- 51123 ์ž„์‹œ์šด์˜ ๊ธฐ์ค€ ๋ฐฐํฌ ์‹คํŒจ ์ด์Šˆ๋Š” ํ•ด๊ฒฐ ์™„๋ฃŒ ์ƒํƒœ๋‹ค. -- 51124 ๋ณต๊ตฌ ์‹œ ์ฝ”๋“œ ์ˆ˜์ • ์—†์ด ๊ฐ ๋ ˆํฌ `.env.deploy`์˜ ๋ฐฐํฌ ๋Œ€์ƒ ๊ฐ’๋งŒ 24 ์„œ๋ฒ„ ๊ฐ’์œผ๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. - -## ๊ตํ›ˆ -- ๋ฐฐํฌ ์‹คํŒจ๋Š” ํด๋ฐฑ ์ถ”๊ฐ€๋ณด๋‹ค ์‹คํŒจ ์ง€์ ์˜ ๋‹จ์ผ ์›์ธ(์„ค์ •/๊ถŒํ•œ/๊ฒฝ๋กœ)์„ ์ง์ ‘ ์ˆ˜์ •ํ•ด์•ผ ์žฌ๋ฐœ์ด ์ค„์–ด๋“ ๋‹ค. -- ๋ฐฐํฌ ๊ฒฝ๋กœ๋Š” ์„œ๋น„์Šค๋ณ„ ํ•˜๋“œ์ฝ”๋”ฉ์ด ์•„๋‹ˆ๋ผ `DEPLOY_PROJECT_DIR` ๋‹จ์ผ ๊ธฐ์ค€์œผ๋กœ ์œ ์ง€ํ•ด์•ผ ์šด์˜ ์ „ํ™˜(23โ†”24)์ด ๋‹จ์ˆœํ•ด์ง„๋‹ค. +- ์ƒˆ ์œ„์น˜: `260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260306_51123_gitea_lfs_permission_denied_502_๋ณต๊ตฌ.md b/journey/troubleshooting/260306_51123_gitea_lfs_permission_denied_502_๋ณต๊ตฌ.md index 834b7ba..6260a13 100644 --- a/journey/troubleshooting/260306_51123_gitea_lfs_permission_denied_502_๋ณต๊ตฌ.md +++ b/journey/troubleshooting/260306_51123_gitea_lfs_permission_denied_502_๋ณต๊ตฌ.md @@ -1,44 +1,7 @@ -# 51123 Gitea LFS ๊ถŒํ•œ ์˜ค๋ฅ˜๋กœ ์ธํ•œ git.ro-being.com 502 ๋ณต๊ตฌ +# 260306_51123_gitea_lfs_permission_denied_502_๋ณต๊ตฌ -tags: [gitea, lfs, nas, recovery] +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -**๋‚ ์งœ**: 2026-03-06 -**์ž‘์„ฑ์ž**: admin -**๊ด€๋ จ ํŒŒ์ผ**: `/etc/gitea/app.ini`, `/etc/nginx/sites-enabled/default` - ---- - -## ๋ฌธ์ œ ์ƒํ™ฉ -- 2026-03-06 19:04 KST ์ „ํ›„ `https://git.ro-being.com/` ์ ‘์† ์‹œ `HTTP/2 502` ๋ฐœ์ƒ. -- nginx๋Š” `git.ro-being.com`์„ `http://localhost:3000/`์œผ๋กœ ํ”„๋ก์‹œ ์ค‘์ด์—ˆ๊ณ , upstream์ธ gitea๊ฐ€ ๋น„์ •์ƒ ์ƒํƒœ์˜€์Œ. - -## ์›์ธ ํ™•์ธ -1. ์„œ๋น„์Šค ์ƒํƒœ -- `systemctl status gitea`์—์„œ `failed (Result: exit-code)` ํ™•์ธ. - -2. gitea ๋กœ๊ทธ -- `journalctl -u gitea`์—์„œ ์•„๋ž˜ ์น˜๋ช… ์˜ค๋ฅ˜ ๋ฐ˜๋ณต ํ™•์ธ: - - `storage.Init failed: mkdir /mnt/nas/gitea-lfs: permission denied` -- 19:04:28~19:04:31 KST ์‚ฌ์ด ์žฌ์‹œ์ž‘ ๋ฐ˜๋ณต ํ›„ `Failed to start Gitea` ์ƒํƒœ ์ง„์ž…. - -3. ์„ค์ • ๊ฒฝ๋กœ -- `/etc/gitea/app.ini`์—์„œ LFS ์ €์žฅ ๊ฒฝ๋กœ๊ฐ€ `/mnt/nas/gitea-lfs`๋กœ ์„ค์ •๋จ. - -## ๋ณต๊ตฌ ์ƒํƒœ ํ™•์ธ -- 2026-03-06 19:21:08 KST: `Started Gitea` ๋กœ๊ทธ ํ™•์ธ. -- ํ˜„์žฌ `gitea.service`๋Š” `active (running)` ์ƒํƒœ. -- ์™ธ๋ถ€ ๊ฒ€์ฆ: `curl -I https://git.ro-being.com/` ๊ฒฐ๊ณผ `HTTP/2 200`. - -## ์ถ”๊ฐ€ ๊ด€์ฐฐ ์‚ฌํ•ญ -- ํ˜„์žฌ ์‹œ์  ํ™•์ธ ๊ฒฐ๊ณผ: - - `/mnt/nas`๋Š” `findmnt /mnt/nas` ๊ธฐ์ค€ `not-mounted` - - ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ถŒํ•œ์€ `/mnt/nas`(root:root), `/mnt/nas/gitea-lfs`(git:git) ์ƒํƒœ -- ์ฆ‰, gitea๋Š” ํ˜„์žฌ ๊ฒฝ๋กœ ์ ‘๊ทผ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ NAS ๋งˆ์šดํŠธ ์ƒํƒœ์™€ ์‹ค์ œ ์ €์žฅ ์œ„์น˜ ์ผ์น˜ ์—ฌ๋ถ€๋Š” ๋ณ„๋„ ์šด์˜ ์ ๊ฒ€์ด ํ•„์š”ํ•จ. - -## ๊ตํ›ˆ -- Gitea LFS๊ฐ€ NAS ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์„œ๋น„์Šค ๊ธฐ๋™ ์ „ `๋งˆ์šดํŠธ ์ƒํƒœ + ๋Œ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ ์†Œ์œ ๊ถŒ`์ด ๋™์‹œ์— ๋งŒ์กฑ๋˜์–ด์•ผ ํ•จ. -- `502`๋งŒ ๋ณด๊ณ  nginx ๋ฌธ์ œ๋กœ ๋‹จ์ •ํ•˜๋ฉด ์˜คํŒ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ณ , ๋ฐ˜๋“œ์‹œ `nginx(upstream) + systemd(gitea) + journal`์„ ๊ฐ™์€ ์‹œ๊ฐ๋Œ€๋กœ ๊ต์ฐจ ํ™•์ธํ•ด์•ผ ํ•จ. -- ์Šคํ† ๋ฆฌ์ง€ ๊ฒฝ๋กœ๊ฐ€ ๋งˆ์šดํŠธ ์˜์กด์ผ ๋•Œ๋Š” ๋งˆ์šดํŠธ ํ•ด์ œ/๊ถŒํ•œ ๋ณ€๋™ ๊ฐ์‹œ๋ฅผ ์šด์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ํฌํ•จํ•ด์•ผ ํ•จ. - -## ํ›„์† ๋ฌธ์„œ -- ๋‹ค์Œ ๋‹จ๊ณ„: [260307_Gitea_LFS_NAS_๊ถŒํ•œ์ •๋ ฌ_๋ฐ_์‹ค์—…๋กœ๋“œ_๊ฒ€์ฆ](./260307_Gitea_LFS_NAS_๊ถŒํ•œ์ •๋ ฌ_๋ฐ_์‹ค์—…๋กœ๋“œ_๊ฒ€์ฆ.md) +- ์ƒˆ ์œ„์น˜: `260306_51123_gitea_lfs_permission_denied_502_๋ณต๊ตฌ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260307_51123_์„ฑ์ˆ˜์ด์ „_๋„คํŠธ์›Œํฌ๋ณ€๊ฒฝ_์šด์˜๊ธฐ๋ก.md b/journey/troubleshooting/260307_51123_์„ฑ์ˆ˜์ด์ „_๋„คํŠธ์›Œํฌ๋ณ€๊ฒฝ_์šด์˜๊ธฐ๋ก.md index d4d4b32..6219ce7 100644 --- a/journey/troubleshooting/260307_51123_์„ฑ์ˆ˜์ด์ „_๋„คํŠธ์›Œํฌ๋ณ€๊ฒฝ_์šด์˜๊ธฐ๋ก.md +++ b/journey/troubleshooting/260307_51123_์„ฑ์ˆ˜์ด์ „_๋„คํŠธ์›Œํฌ๋ณ€๊ฒฝ_์šด์˜๊ธฐ๋ก.md @@ -1,18 +1,7 @@ -# 260307 51123 ์„œ๋ฒ„ ์„ฑ์ˆ˜ ์ด์ „ ๋„คํŠธ์›Œํฌ ๋ณ€๊ฒฝ ์šด์˜๊ธฐ๋ก +# 260307_51123_์„ฑ์ˆ˜์ด์ „_๋„คํŠธ์›Œํฌ๋ณ€๊ฒฝ_์šด์˜๊ธฐ๋ก -## 1. ๋ฐฐ๊ฒฝ -- 51123 ์„œ๋ฒ„ ์šด์˜ ์œ„์น˜๊ฐ€ ์„œ์šธ ์–‘์žฌ์—์„œ ์„ฑ์ˆ˜๋กœ ์ด์ „๋จ. -- ์ด์ „ ๊ณผ์ •์—์„œ ๊ณต์ธ IP, ๊ณต์œ ๊ธฐ, ๋‚ด๋ถ€ ์‚ฌ์„ค IP ๋Œ€์—ญ์ด ๋ณ€๊ฒฝ๋จ. -- DNS ์„ค์ •์€ ์™„๋ฃŒํ–ˆ๊ณ , ๋‚ด๋ถ€ ์‚ฌ์„ค IP ์ •๋ฆฌ ์ž‘์—…์„ ์ง„ํ–‰ ์ค‘์ž„. +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## 2. ํ˜„์žฌ ๊ธฐ์ค€ ์ฃผ์†Œ(์šด์˜ ์‚ฌ์‹ค) -- 51123 ์ž„์‹œ ์šด์šฉ ์„œ๋ฒ„ ๋‚ด๋ถ€ ์‚ฌ์„ค IP: `192.168.0.100` -- NAS ๋‚ด๋ถ€ ์‚ฌ์„ค IP: `192.168.0.101` - -## 3. ์šด์˜ ๋ฐ˜์˜ ๋ฉ”๋ชจ -- ๊ธฐ์กด `192.168.219.x` ๊ธฐ์ค€ ๋ฌธ์„œ/ํ™˜๊ฒฝ๋ณ€์ˆ˜/ํ”„๋ก์‹œ/ํ—ฌ์Šค์ฒดํฌ ๊ฒฝ๋กœ๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ `192.168.0.x` ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌ ํ•„์š”. -- gateway ๋ฐ ์—ฐ๊ณ„ ์„œ๋น„์Šค์˜ upstream ๋Œ€์ƒ ์ฃผ์†Œ๋Š” ์‹ค์ œ ๋ฐ”์ธ๋”ฉ/๋…ธ์ถœ ํฌํŠธ์™€ ํ•จ๊ป˜ ์žฌ๊ฒ€์ฆ ํ•„์š”. -- NAS ๋งˆ์šดํŠธ/๋ฐฑ์—… ๊ฒฝ๋กœ๋Š” `192.168.0.101` ๊ธฐ์ค€์œผ๋กœ ์žฌ์ ๊ฒ€ ํ•„์š”. - -## 4. ๊ธฐ๋ก ์ถœ์ฒ˜ -- 2026-03-07 ์‚ฌ์šฉ์ž ์ „๋‹ฌ ์‚ฌ์‹ค ๊ธฐ๋ฐ˜ ์šด์˜ ๊ธฐ๋ก. +- ์ƒˆ ์œ„์น˜: `260307_51123_์„ฑ์ˆ˜์ด์ „_๋„คํŠธ์›Œํฌ๋ณ€๊ฒฝ_์šด์˜๊ธฐ๋ก.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260307_Gitea_LFS_NAS_๊ถŒํ•œ์ •๋ ฌ_๋ฐ_์‹ค์—…๋กœ๋“œ_๊ฒ€์ฆ.md b/journey/troubleshooting/260307_Gitea_LFS_NAS_๊ถŒํ•œ์ •๋ ฌ_๋ฐ_์‹ค์—…๋กœ๋“œ_๊ฒ€์ฆ.md index 423d460..9d60f96 100644 --- a/journey/troubleshooting/260307_Gitea_LFS_NAS_๊ถŒํ•œ์ •๋ ฌ_๋ฐ_์‹ค์—…๋กœ๋“œ_๊ฒ€์ฆ.md +++ b/journey/troubleshooting/260307_Gitea_LFS_NAS_๊ถŒํ•œ์ •๋ ฌ_๋ฐ_์‹ค์—…๋กœ๋“œ_๊ฒ€์ฆ.md @@ -1,73 +1,7 @@ -# 260307 Gitea LFS NAS ๊ถŒํ•œ์ •๋ ฌ ๋ฐ ์‹ค์—…๋กœ๋“œ ๊ฒ€์ฆ +# 260307_Gitea_LFS_NAS_๊ถŒํ•œ์ •๋ ฌ_๋ฐ_์‹ค์—…๋กœ๋“œ_๊ฒ€์ฆ -tags: [gitea, lfs, nas, cifs, ssot] +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -**๋‚ ์งœ**: 2026-03-07 -**์ž‘์„ฑ์ž**: admin -**๊ด€๋ จ ํŒŒ์ผ**: `/etc/gitea/app.ini`, `/usr/local/bin/mount-nas-ssot.sh`, `/etc/systemd/system/mount-nas-ssot.service`, `/home/admin/infra-config/runtime.env`, `/home/admin/infra-config/secrets.env` - ---- - -## ๋ฌธ์ œ ์ƒํ™ฉ -- Gitea๋Š” ๊ธฐ๋™ ์ค‘์ด์—ˆ๊ณ  `git.ro-being.com` ์ผ๋ฐ˜ Git push/pull๋„ ์ •์ƒ ๋™์ž‘ํ–ˆ๋‹ค. -- ํ•˜์ง€๋งŒ ์‹ค์ œ `git lfs push` ๊ฒ€์ฆ์—์„œ๋Š” `500 Internal Server Error`๋กœ ์‹คํŒจํ–ˆ๋‹ค. -- ์ฆ‰ "LFS ๊ฒฝ๋กœ๊ฐ€ ์„ค์ •๋ผ ์žˆ๋‹ค"์™€ "์‹ค์ œ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์—…๋กœ๋“œ๊ฐ€ ๋œ๋‹ค"๊ฐ€ ๋ถ„๋ฆฌ๋œ ์ƒํƒœ์˜€๋‹ค. - -## ๊ฒ€์ฆ์œผ๋กœ ํ™•์ธํ•œ ์‚ฌ์‹ค -1. ์ผ๋ฐ˜ Git ๊ฒฝ๋กœ๋Š” ์ •์ƒ -- `git push`, `git pull`์€ ์ •์ƒ - -2. LFS ๊ฒฝ๋กœ๋Š” ๋น„์ •์ƒ -- ์‹ค์ œ `git lfs` ์—…๋กœ๋“œ ํ…Œ์ŠคํŠธ์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ `500` ๋ฐœ์ƒ -- `journalctl -u gitea` ๊ธฐ์ค€ ์‹คํŒจ ์‹œ๊ฐ(2026-03-07 09:35 KST) ๋กœ๊ทธ: - - `mkdir /mnt/nas/gitea-lfs/18: permission denied` - -3. ๊ทผ๋ณธ ์›์ธ -- `gitea.service`๋Š” `git:git (uid=131 gid=138)`๋กœ ์‹คํ–‰ -- NAS CIFS ๋งˆ์šดํŠธ๋Š” `uid=1001,gid=1000,file_mode=0755,dir_mode=0755` ๊ธฐ์ค€ -- ๊ฒฐ๊ณผ์ ์œผ๋กœ `/mnt/nas/gitea-lfs`๋Š” `admin:xusers` ์†Œ์œ ์ฒ˜๋Ÿผ ๋ณด์˜€๊ณ , `git` ์‚ฌ์šฉ์ž๋Š” ์“ฐ๊ธฐ ๋ถˆ๊ฐ€ - -## ์‹ค์ œ ์กฐ์น˜ -### 1. ๋งˆ์šดํŠธ ๊ถŒํ•œ ์ •๋ ฌ -- `/usr/local/bin/mount-nas-ssot.sh`์˜ CIFS ์˜ต์…˜์„ ์•„๋ž˜ ๊ธฐ์ค€์œผ๋กœ ์กฐ์ • - - `uid=1001` - - `gid=1000` - - `forceuid,forcegid` - - `file_mode=0664` - - `dir_mode=0775` - -### 2. Gitea ์‹คํ–‰ ์‚ฌ์šฉ์ž ๊ทธ๋ฃน ์ •๋ ฌ -- `git` ์‚ฌ์šฉ์ž๋ฅผ `xusers` ๊ทธ๋ฃน์— ์ถ”๊ฐ€ -- ๊ฒฐ๊ณผ: `git` ์‚ฌ์šฉ์ž๊ฐ€ `/mnt/nas/gitea-lfs`์— ๊ทธ๋ฃน ์“ฐ๊ธฐ ๊ฐ€๋Šฅ - -### 3. ์„œ๋น„์Šค ๋ฐ˜์˜ -- NAS ์žฌ๋งˆ์šดํŠธ ์‹คํ–‰ -- `gitea.service` ์žฌ์‹œ์ž‘ -- `sudo -u git` ๊ธฐ์ค€ ์ง์ ‘ ์“ฐ๊ธฐ ํ…Œ์ŠคํŠธ ์„ฑ๊ณต - -## ์žฌ๊ฒ€์ฆ ๊ฒฐ๊ณผ -1. ๊ถŒํ•œ -- `id git` -> `groups=138(git),1000(xusers)` -- `/mnt/nas/gitea-lfs` -> `drwxrwxr-x` - -2. ์‹ค์—…๋กœ๋“œ ๊ฒ€์ฆ -- `test-meta-skill` ์ €์žฅ์†Œ์— ์ž„์‹œ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ํ›„ 1MB ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ `git lfs`๋กœ push -- ์žฌํด๋ก  ํ›„ `git lfs pull` ์ˆ˜ํ–‰ -- ์›๋ณธ๊ณผ ์žฌ๋‹ค์šด๋กœ๋“œ ํŒŒ์ผ SHA256 ์ผ์น˜ - -3. NAS ์ €์žฅ ํ™•์ธ -- ์‹ค์ œ ์ƒ์„ฑ ๊ฒฝ๋กœ: - - `/mnt/nas/gitea-lfs/4a/22/ae83cbb68dcdcddb9e053fdce9466e63463881c981597bb6c797ca4a0f7b` -- ๊ฒ€์ฆ ์‹œ์  ๊ธฐ์ค€ LFS ํŒŒ์ผ ์ˆ˜: - - before=0 - - after_push=1 - - after_pull=1 - -## ๊ฒฐ๋ก  -- ํ˜„์žฌ Gitea LFS๋Š” ์„ค์ •์ƒ ์—ฐ๊ฒฐ๋œ ์ˆ˜์ค€์ด ์•„๋‹ˆ๋ผ, ์‹ค์ œ๋กœ NAS์— ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ์ƒํƒœ๊นŒ์ง€ ๊ฒ€์ฆ ์™„๋ฃŒ๋๋‹ค. -- ์ด๋ฒˆ ์กฐ์น˜๋กœ `git lfs push -> Gitea -> /mnt/nas/gitea-lfs` ๊ฒฝ๋กœ๊ฐ€ ์‹ค๋™์ž‘ํ•จ์„ ํ™•์ธํ–ˆ๋‹ค. -- ์ดํ›„ ๋™์ผ ๊ณ„์—ด ๋ฌธ์ œ ์žฌ๋ฐœ ์‹œ, `Gitea ์ƒํƒœ`๋ณด๋‹ค ๋จผ์ € `gitea ์‹คํ–‰ ์‚ฌ์šฉ์ž`์™€ `NAS ๋งˆ์šดํŠธ ๊ถŒํ•œ`์„ ํ•จ๊ป˜ ๋ด์•ผ ํ•œ๋‹ค. - -## ์ „ํ›„ ๊ด€๊ณ„ ๋ฌธ์„œ -- ์ด์ „: [260306_51123_gitea_lfs_permission_denied_502_๋ณต๊ตฌ](./260306_51123_gitea_lfs_permission_denied_502_๋ณต๊ตฌ.md) -- ๊ด€๋ จ: [260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ](./260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ.md) +- ์ƒˆ ์œ„์น˜: `260307_Gitea_LFS_NAS_๊ถŒํ•œ์ •๋ ฌ_๋ฐ_์‹ค์—…๋กœ๋“œ_๊ฒ€์ฆ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ.md b/journey/troubleshooting/260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ.md index fd4f074..dec3645 100644 --- a/journey/troubleshooting/260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ.md +++ b/journey/troubleshooting/260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ.md @@ -1,74 +1,7 @@ -# 260307 NAS(192.168.0.101) SSOT ์ „ํ™˜ ๋ฐ CIFS ์‹ค๋งˆ์šดํŠธ ๋ณต๊ตฌ +# 260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ -## ์‹œ๊ฐ„ -- ๊ธฐ์ค€์ผ: 2026-03-07 -- ์ž‘์—… ์‹œ๊ฐ: 2026-03-07 ์˜ค์ „ +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## ๋ฐฐ๊ฒฝ -- ์„œ๋ฒ„ ์ด์ „ ํ›„ NAS ๋‚ด๋ถ€ ์‚ฌ์„ค IP๊ฐ€ `192.168.219.51`์—์„œ `192.168.0.101`๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. -- 51123์€ ์ž„์‹œ์šด์˜ ์ƒํƒœ์—์„œ `/mnt/nas`๋ฅผ ๋‹ค์‹œ ์‹คNAS๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ–ˆ๊ณ , ๋™์‹œ์— SSOT ์›์น™์— ๋งž๊ฒŒ NAS ์„ค์ •์„ ์ •๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค. -- ๊ธฐ์กด `/mnt/nas`๋Š” ์‹ค์ œ ๋งˆ์šดํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ๋กœ์ปฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์ฒ˜๋Ÿผ ๋‚จ์•„ ์žˆ์—ˆ๊ณ , `weekly-backup.sh`๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” `/mnt/nas/backup/weekly`๋„ ์‹คNAS ๊ธฐ์ค€์œผ๋กœ๋Š” ์ •ํ•ฉ์„ฑ์ด ๊นจ์ ธ ์žˆ์—ˆ๋‹ค. - -## ํ™•์ธ๋œ ์‚ฌ์‹ค -1. `192.168.0.101`์€ ์‹ค์ œ ์‘๋‹ตํ•˜๋Š” NAS์˜€๋‹ค. -- `ping` ์ •์ƒ ์‘๋‹ต -- `22/80/443/139/445/5000/5001` ํฌํŠธ ์˜คํ”ˆ ํ™•์ธ -- `5000/5001` ์‘๋‹ต ๊ธฐ์ค€ Synology DSM ์žฅ๋น„ ํ™•์ธ - -2. NAS ๋‚ด๋ถ€์—๋Š” ๊ธฐ์กด ๋ฐฑ์—… ๊ตฌ์กฐ๊ฐ€ ๋‚จ์•„ ์žˆ์—ˆ๋‹ค. -- `home` ๊ณต์œ  ์ ‘๊ทผ ๊ฐ€๋Šฅ -- `backup/current/{robing,gitea,config}` ์กด์žฌ -- `gitea-lfs` ๋””๋ ‰ํ„ฐ๋ฆฌ ์กด์žฌ - -3. ์„œ๋ฒ„ ์ชฝ ๋งˆ์šดํŠธ ์„ค์ •์€ ๊ตฌ์‹ ๊ฐ’์ด ๋‚จ์•„ ์žˆ์—ˆ๋‹ค. -- `/etc/fstab`์— `//192.168.219.51/home /mnt/nas cifs username=admin,password=...` ํ˜•ํƒœ์˜ ํ‰๋ฌธ ์„ค์ • ์กด์žฌ -- ์ด๋Š” ์ด์ „ IP ๊ธฐ์ค€์ด๋ฉฐ, SSOT ์›์น™์—๋„ ๋งž์ง€ ์•Š์•˜๋‹ค. - -## ์‹ค์ œ ์กฐ์น˜ -### 1. NAS ์ ‘๊ทผ ํ™•์ธ -- `smbclient -L //192.168.0.101 -U admin%...` ๋กœ `home`, `homes` ๊ณต์œ  ํ™•์ธ -- `smbclient //192.168.0.101/home ...` ๋กœ `backup`, `gitea-lfs` ์‹ค์ œ ์กด์žฌ ํ™•์ธ - -### 2. SSOT ๋ฐ˜์˜ -- `/home/admin/infra-config/runtime.env` - - `NAS_HOST=192.168.0.101` - - `NAS_SMB_PORT=445` - - `NAS_SHARE=home` - - `NAS_MOUNT_PATH=/mnt/nas` -- `/home/admin/infra-config/secrets.env` - - `NAS_USERNAME=admin` - - `NAS_PASSWORD=...` - -### 3. ๋งˆ์šดํŠธ ๋ฐฉ์‹ ๊ต์ฒด -- `/etc/fstab`์˜ ํ‰๋ฌธ CIFS ํ•ญ๋ชฉ์€ ์ฃผ์„ ์ฒ˜๋ฆฌ -- `/usr/local/bin/mount-nas-ssot.sh` ์ƒ์„ฑ - - `runtime.env`, `secrets.env`๋ฅผ ์ฝ์–ด CIFS ๋งˆ์šดํŠธ ์ˆ˜ํ–‰ -- `/etc/systemd/system/mount-nas-ssot.service` ์ƒ์„ฑ ๋ฐ enable - - ๋ถ€ํŒ… ํ›„ SSOT ๊ธฐ์ค€์œผ๋กœ NAS ๋งˆ์šดํŠธ ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌ์„ฑ - -### 4. ๊ถŒํ•œ ์ •ํ•ฉํ™” -- ์ดˆ๊ธฐ ๋งˆ์šดํŠธ๋Š” `uid=1000` ๊ธฐ์ค€์ด๋ผ ํ˜„์žฌ ์‚ฌ์šฉ์ž `admin(uid=1001)`๊ฐ€ ์“ฐ๊ธฐ ๋ถˆ๊ฐ€ -- ๋งˆ์šดํŠธ ์˜ต์…˜์„ `uid=1001,gid=1000`์œผ๋กœ ๊ต์ • -- ์ดํ›„ `/mnt/nas/backup/weekly` ์ƒ์„ฑ ๋ฐ ์“ฐ๊ธฐ ๊ฐ€๋Šฅ ํ™•์ธ - -## ๊ฒ€์ฆ ๊ฒฐ๊ณผ -1. ๋งˆ์šดํŠธ ์ƒํƒœ -- `//192.168.0.101/home on /mnt/nas type cifs` ํ™•์ธ -- `df -h /mnt/nas` ๊ธฐ์ค€ 5.3T ๋งˆ์šดํŠธ ์ •์ƒ - -2. ๊ตฌ์กฐ ํ™•์ธ -- `/mnt/nas/backup/current` -- `/mnt/nas/backup/archives` -- `/mnt/nas/gitea-lfs` - -3. ์“ฐ๊ธฐ ํ™•์ธ -- `/mnt/nas/backup/weekly/latest.txt` ์ƒ์„ฑ ๋ฐ ๊ธฐ๋ก ์„ฑ๊ณต - -## ๊ฒฐ๋ก  -- 51123์˜ `/mnt/nas`๋Š” ๋‹ค์‹œ ์‹คNAS(`192.168.0.101`)๋ฅผ ๋ฐ”๋ผ๋ณด๋„๋ก ๋ณต๊ตฌ๋˜์—ˆ๋‹ค. -- NAS ์ ‘์† ์ •๋ณด๋Š” `infra-config/runtime.env` + `secrets.env` ๊ธฐ์ค€์œผ๋กœ SSOTํ™”๋˜์—ˆ๋‹ค. -- ๊ธฐ์กด `nas-fallback` ์ž„์‹œ ์šฐํšŒ ์ƒํƒœ์—์„œ ํ•œ ๋‹จ๊ณ„ ์ง„์ „ํ–ˆ์ง€๋งŒ, fallback ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ์—ฌ๋ถ€๋Š” ๋ณ„๋„ ์ ๊ฒ€์ด ํ•„์š”ํ•˜๋‹ค. - -## ์ „ํ›„ ๊ด€๊ณ„ ๋ฌธ์„œ -- ์ด์ „: [260226_NAS_192_168_219_51_์ ‘์†๋ถˆ๊ฐ€_์ž„์‹œ๋ฐฑ์—…๋ณต๊ตฌ](./260226_NAS_192_168_219_51_์ ‘์†๋ถˆ๊ฐ€_์ž„์‹œ๋ฐฑ์—…๋ณต๊ตฌ.md) -- ๊ด€๋ จ: [260307_51123_์„ฑ์ˆ˜์ด์ „_๋„คํŠธ์›Œํฌ๋ณ€๊ฒฝ_์šด์˜๊ธฐ๋ก](./260307_51123_์„ฑ์ˆ˜์ด์ „_๋„คํŠธ์›Œํฌ๋ณ€๊ฒฝ_์šด์˜๊ธฐ๋ก.md) +- ์ƒˆ ์œ„์น˜: `260307_NAS_192_168_0_101_SSOT_์ „ํ™˜_๋ฐ_CIFS_์‹ค๋งˆ์šดํŠธ_๋ณต๊ตฌ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260307_gateway_SSOT_runtime_secrets_๋ถ„๋ฆฌ_์ ์šฉ_๋ฐ_๊ฒ€์ฆ.md b/journey/troubleshooting/260307_gateway_SSOT_runtime_secrets_๋ถ„๋ฆฌ_์ ์šฉ_๋ฐ_๊ฒ€์ฆ.md index ebad0b2..8f5b540 100644 --- a/journey/troubleshooting/260307_gateway_SSOT_runtime_secrets_๋ถ„๋ฆฌ_์ ์šฉ_๋ฐ_๊ฒ€์ฆ.md +++ b/journey/troubleshooting/260307_gateway_SSOT_runtime_secrets_๋ถ„๋ฆฌ_์ ์šฉ_๋ฐ_๊ฒ€์ฆ.md @@ -1,76 +1,7 @@ -# 260307 gateway SSOT(runtime/secrets) ๋ถ„๋ฆฌ ์ ์šฉ ๋ฐ ๊ฒ€์ฆ +# 260307_gateway_SSOT_runtime_secrets_๋ถ„๋ฆฌ_์ ์šฉ_๋ฐ_๊ฒ€์ฆ -## 1. ๋ชฉ์  -- 51123 ์ž„์‹œ ์šด์šฉ ํ™˜๊ฒฝ์—์„œ ๋ถ„์‚ฐ๋œ ์„ค์ •๊ฐ’์„ 1์ฐจ ์ •๋ฆฌํ•œ๋‹ค. -- ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ `robeing-gateway`๋ถ€ํ„ฐ `runtime.env`(๋น„๋ฏผ๊ฐ)์™€ `secrets.env`(๋ฏผ๊ฐ)๋กœ ๋ถ„๋ฆฌ ์ ์šฉํ•œ๋‹ค. +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## 2. ๋ณ€๊ฒฝ ์‚ฌํ•ญ -### 2.1 SSOT ํŒŒ์ผ ์‹ ์„ค -- `/home/admin/infra-config/runtime.env` ์ƒ์„ฑ - - ์šด์˜ ๋น„๋ฏผ๊ฐ๊ฐ’(์˜ˆ: `HOST_51123`, `NAS_HOST`, `ROBEING_DEFAULT_HOST`, `MONITOR_URL`) ๊ด€๋ฆฌ -- `/home/admin/infra-config/secrets.env` ์ƒ์„ฑ - - ๋ฏผ๊ฐ๊ฐ’(์˜ˆ: `DATABASE_URL`, `JWT_SECRET_KEY`) ๊ด€๋ฆฌ - -### 2.2 ๊ถŒํ•œ ์ ์šฉ -- `runtime.env`: `640` -- `secrets.env`: `600` -- ๋””๋ ‰ํ„ฐ๋ฆฌ `/home/admin/infra-config`: `750` - -### 2.3 ๊ฒŒ์ดํŠธ์›จ์ด ์ฐธ์กฐ ๊ฒฝ๋กœ ๋ณ€๊ฒฝ -- ๋Œ€์ƒ: `/home/admin/robeing-gateway/docker-compose.yml` -- `env_file` ์ˆœ์„œ: - 1. `/home/admin/infra-config/runtime.env` - 2. `/home/admin/infra-config/secrets.env` - 3. `.env` (์ž„์‹œ ์˜ค๋ฒ„๋ผ์ด๋“œ ์ „์šฉ) - -### 2.4 ๊ธฐ์กด ๊ฒŒ์ดํŠธ์›จ์ด `.env` ์ •๋ฆฌ -- ๋Œ€์ƒ: `/home/admin/robeing-gateway/.env` -- ์‹ค๊ฐ’ ์ œ๊ฑฐ ํ›„, โ€œ๋กœ์ปฌ ์˜ค๋ฒ„๋ผ์ด๋“œ ์ „์šฉโ€ ์•ˆ๋‚ด๋งŒ ์œ ์ง€ - -## 3. ๊ฒ€์ฆ ๊ฒฐ๊ณผ -### 3.1 ์„ค์ • ํŒŒ์‹ฑ ๊ฒ€์ฆ -- `docker compose -f /home/admin/robeing-gateway/docker-compose.yml config` ์„ฑ๊ณต - -### 3.2 ์žฌ๊ฐ€๋™ ๊ฒ€์ฆ -- ์‹คํ–‰: `docker compose down && docker compose up -d --build` -- ๊ฒฐ๊ณผ: `robeing-gateway` `Up (healthy)` ํ™•์ธ - -### 3.3 ๊ธฐ๋Šฅ ๊ฒ€์ฆ -- `GET http://127.0.0.1:8100/healthz` -> `200` -- ๋„๋ฉ”์ธ ๊ฒฝ์œ  `/gateway/api/config` -> ๋ฏธ์ธ์ฆ ์š”์ฒญ `401` (์ •์ƒ ์ธ์ฆ ๊ฒฝ๊ณ„) -- `gateway -> 192.168.0.100:8001/health` -> `200` -- `gateway -> 192.168.0.100:9024/healthz` -> `200` - -## 4. ๊ฒฐ๋ก  -- ๊ธฐ์กด ๋ฌด์‘๋‹ต ํ•ต์‹ฌ ์›์ธ์ด์—ˆ๋˜ ์—ฐ๊ฒฐ ๋‹จ์ ˆ ์ƒํƒœ๋Š” ํ•ด์†Œ๋จ. -- ํ˜„์žฌ `/api/message` ์‘๋‹ต ๊ฒฝ๊ณ„๋Š” ์—ฐ๊ฒฐ ์‹คํŒจ๊ฐ€ ์•„๋‹ˆ๋ผ ์ธ์ฆ(`401`) ๋‹จ๊ณ„๋กœ ์ •์ƒ ์ „ํ™˜๋จ. -- SSOT ๋ถ„๋ฆฌ๋Š” `robeing-gateway`์— 1์ฐจ ์ ์šฉ ์™„๋ฃŒ, ๋‚˜๋จธ์ง€ ์„œ๋น„์Šค๋Š” ๋™์ผ ํŒจํ„ด์œผ๋กœ ์ˆœ์ฐจ ์ด์ „ ํ•„์š”. - -## 5. ํ›„์† ์ ์šฉ: robeing-monitor SSOT ๋ถ„๋ฆฌ ๋ฐ 9024 ๋ณต๊ตฌ -### 5.1 ๋ณ€๊ฒฝ ์‚ฌํ•ญ -- ๋Œ€์ƒ: `/home/admin/robeing/robeing-monitor` -- `docker-compose.yml`์ด `/home/admin/infra-config/runtime.env`, `/home/admin/infra-config/secrets.env`๋ฅผ ์šฐ์„  ์ฐธ์กฐํ•˜๋„๋ก ๋ณ€๊ฒฝ -- ๊ธฐ์กด `.env`๋Š” ๋กœ์ปฌ ์˜ค๋ฒ„๋ผ์ด๋“œ ์ „์šฉ ์•ˆ๋‚ด๋งŒ ์œ ์ง€ -- `app/core/config.py` ๊ธฐ๋ณธ DB ํ˜ธ์ŠคํŠธ๋ฅผ ํ˜„์žฌ ์šด์˜ ๊ธฐ์ค€ `192.168.0.100`์œผ๋กœ ๊ต์ • -- `infra-config`์— ์•„๋ž˜ ๊ฐ’์„ ์ถ”๊ฐ€ - - `ROBEING_MONITOR_PORT` - - `ROBEING_MONITOR_LOG_LEVEL` - - `ROBEING_MONITOR_DATABASE_URL` - - `ROBEING_URLS` - - `SKILL_URLS` - -### 5.2 ์ฆ์ƒ -- ์ ์šฉ ์ „ `robeing_monitor` ์ปจํ…Œ์ด๋„ˆ๋Š” `unhealthy` -- `curl http://127.0.0.1:9024/healthz` ํƒ€์ž„์•„์›ƒ -- Docker healthcheck๋„ ๋™์ผํ•˜๊ฒŒ `Health check exceeded timeout (10s)` ๋ฐ˜๋ณต - -### 5.3 ๊ฒ€์ฆ ๊ฒฐ๊ณผ -- `docker compose -f /home/admin/robeing/robeing-monitor/docker-compose.yml config` ์„ฑ๊ณต -- ์‹คํ–‰: `docker compose down && docker compose up -d --build` -- ๊ฒฐ๊ณผ: `robeing_monitor` `Up (healthy)` ํ™•์ธ -- `GET http://127.0.0.1:9024/healthz` -> `200` - -### 5.4 ๊ฒฐ๋ก  -- `robeing-monitor`๋„ SSOT ๊ธฐ๋ฐ˜์œผ๋กœ 1์ฐจ ์ด์ „ ์™„๋ฃŒ -- 9024 ์‘๋‹ต ์ •์ง€ ์ƒํƒœ๋Š” ํ•ด์†Œ๋๊ณ , ํ˜„์žฌ ํ—ฌ์Šค์ฒดํฌ ์ •์ƒ -- 51123 ์ž„์‹œ ์šด์šฉ ํ•ต์‹ฌ ๊ฒฝ๋กœ๋Š” `gateway`, `rb8001`, `robeing-monitor`๊นŒ์ง€ ์ •์ƒ ์‘๋‹ต ๊ธฐ์ค€์œผ๋กœ ๋ณต๊ตฌ๋จ +- ์ƒˆ ์œ„์น˜: `260307_gateway_SSOT_runtime_secrets_๋ถ„๋ฆฌ_์ ์šฉ_๋ฐ_๊ฒ€์ฆ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24/NAS, ๊ฒŒ์ดํŠธ์›จ์ด, ๋ฐฐํฌ, ๋„คํŠธ์›Œํฌ, ๋ฐฑ์—…, ๋งˆ์šดํŠธ ๋“ฑ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/README.md b/journey/troubleshooting/README.md index e9074e3..c85cd8f 100644 --- a/journey/troubleshooting/README.md +++ b/journey/troubleshooting/README.md @@ -18,6 +18,12 @@ - ์ธ์ฆ/๋ณด์•ˆ: `*_auth_*`, `*_JWT_*` - ์Šคํ‚ฌ๋ณ„: `skill-*` ์ ‘๋‘์‚ฌ์˜ ๋ฌธ์„œ +## ์ธํ”„๋ผ ๋ฌธ์„œ ์ด๊ด€ ์›์น™ + +- `23/24/NAS`, ๊ฒŒ์ดํŠธ์›จ์ด, ๋„คํŠธ์›Œํฌ, ๋ฐฐํฌ SSOT, ๋ฐฑ์—…, ๋งˆ์šดํŠธ, Gitea/LFS ๊ฐ™์€ ๊ณตํ†ต ์ธํ”„๋ผ ์‚ฌ์‹ค์€ `infra/DOCS`๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ด…๋‹ˆ๋‹ค. +- ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‚จ์•„ ์žˆ๋Š” ๋™์ผ ์ œ๋ชฉ ๋ฌธ์„œ๋Š” ์‚ญ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๊ด€ ์•ˆ๋‚ด์šฉ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋ฌธ์„œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- ์ตœ์‹  ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ๋Š” `https://git.ro-being.com/ivada-infra/DOCS/src/branch/main/journey/troubleshooting/` ์•„๋ž˜๋ฅผ ์šฐ์„  ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. + ## ํ•„์ˆ˜ ์ฐธ์กฐ ๋ฌธ์„œ | ์ฃผ์ œ | ๋ฌธ์„œ | ๋น„๊ณ  |