- crowdsecurity/whitelists 파서 설치 (192.168.9.1 false positive 해결)
- custom/tailscale-whitelist 추가 (100.64.0.0/10)
- custom/apisix-logs 파서 추가 (서울 APISIX 비표준 nginx 포맷)
- crowdsecurity/traefik collection 설치
- 버전 v1.7.7 확인
Verified removed across all 3 sites:
- K3s APISIX: no http-logger plugin in global_rules/routes/services/plugin_configs
- CrowdSec: no apisix-logs HTTP acquisition file, :8085 not listening
- Osaka APISIX: http-logger exists but targets VictoriaLogs (vector.inouter.com), not legacy
Runtime verification via cs_parser_hits metrics: only source is
https://vl.inouter.com/ (victorialogs type).
Split detailed findings to history/2026-04-15-apisix-http-logger-removal.md.
- infra/vault.md MCP 서버 섹션 전체 재작성: K3s Deployment 아니라 Pod 없는 리버스 프록시 파사드, 세 접근 경로 모두 jp1 Incus vault 컨테이너(10.253.101.58)로 수렴
- 과거 오류 정정 callout 추가: vault-active.vault.svc.cluster.local 경로 실존 안 함, hcv/mcp URL은 Vault UI로 307 (올바른 MCP 경로는 vault-mcp.inouter.com/mcp)
- history/2026-04-15-vault-mcp-duplicate-investigation.md 인시던트 기록
근거: Heimdall 조사 (Outline 5b6ddffa) + kappa 로컬 확인 (jp1 systemd active + 활성 트래픽)
- hp2 NAS 연결 상태 갱신 (미연결 → 192.168.205.134로 정상 참여)
- nfs-provisioner nodeAffinity 실제값 반영 (제약 없음)
- iSCSI ScsiTarget on-demand 동작 설명 추가
- 2026-04-14 iSCSI smoke test 결과 기록
- eth2 USB NIC watchdog 섹션 신설 (LPM exit latency 이슈 대응)
- dev/obsidian-schema.md: type별 frontmatter 규약 문서화
- infra/hosts/{incus-hp2,incus-kr1,zlambda}.md: 구조화된 필드로 파일럿 3개
- infra/hosts.base: Bases 쿼리 (전체/서울/K3s/유료/Critical 뷰)
기존 infra-hosts.md 본문은 그대로 유지. 파일럿 검증 후 나머지 호스트 확장 예정.
- 오사카 APISIX에 Vector(Docker) 추가, VictoriaLogs ES bulk API로 로그 전송
- CrowdSec에 victorialogs acquisition (tail 모드) 추가, 서울+오사카 통합 수신
- anomaly-detect 설명에 오사카 포함 반영
- 기존 http-logger 직접 push는 레거시로 병행 유지 (추후 제거)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
15개 정본 문서에서 날짜별 변경이력, 인시던트 기록, 폐기된 구현 상세를
history/ 디렉토리로 분리. 정본은 현재 상태만 기술하는 백서 형태로 정리.
각 정본에 history 위키링크 추가.
분리된 history 파일 12건:
- apisix git push 500, k3s postgresql migration, apisix→traefik 전환
- netbis DDoS 공격, gitea 이전/분리, usb 2.5g hang + NFS hard mount
- supabase→patroni, apisix etcd 통합/분리, anomaly-detect 재설계
- patroni failover incident, zlambda nixos migration, ops-agents setup
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- /etc/cron.d/cf-zone-sync 파일 삭제
- /usr/local/bin/auto-add-cf-zones.sh → .disabled.20260410-incident archive (chmod 600)
- 신규 zone 추가는 cfb-manager POST /domains 또는 수동 yaml edit
- bouncer 정상 running 확인 (PID 371770 uptime 1h28min)
- infra/cloudflare.md: Worker 라우트 / Turnstile 위젯 표를 cleanup-2 후 상태로 갱신. inouter/anvil 라우트 + 6개 옛 bouncer-managed widget sitekey 폐기 표시. 신규 inouter-bunny-middleware (0x4AAAAAAC3otPWhldI96Aks) 추가, freeze 보장 근거 명시. Turnstile 토큰 권한 사실 (Vault api_token read-only vs bouncer 토큰 read+write). 인시던트 이력 섹션 추가 + 인시던트 doc 8f5c43f8 링크.
- infra/crowdsec-safeline.md: cs-cf-worker-bouncer 보호 zone 4개로 갱신, 제거된 zone 와 freeze widget 명시.
- services/bunnycdn-security.md: 미들웨어 64811 Turnstile sitekey 변경 이력표 (옛/삭제/신규 3행). sitekey gap 항목을 신규 위젯 기준으로 갱신, nas.inouter.com 정리 완료 표시.
cf-audit-cleanup-2 인시던트 + 복구 상세는 Outline doc 8f5c43f8 의 "## 복구 완료" 섹션 참조.
3건 DNS 레코드 삭제 (CF API 200, kappa 승인):
- nas.inouter.com CNAME actions.b-cdn.net (dead 풀존 참조, Synology LAN 전용)
- ironclad.jp.inouter.com A 10.19.228.193 (사설 IP 공개 노출)
- k8s.jp.inouter.com A 10.253.103.124 (사설 IP 공개 노출)
infra/cloudflare.md 의 inouter.com DNS 표에서 해당 행 제거.
특이사항 섹션의 dead reference / 사설 IP 노출 항목을 정리 이력으로 변경.
servidor.it.com zone 은 'death 도메인 아님' 판정으로 유지.
- infra/cloudflare.md 전면 재작성: zone 6개(actions/anvil/inouter/ironclad/keepanker/servidor) 전수, DNS 레코드 zone별 핵심, Workers 9개 + 라우트, Turnstile 위젯 8개. dead reference (nas.inouter.com / *.actions.it.com → actions.b-cdn.net), servidor.it.com orphan zone, 사설 IP 노출, CF proxy on/off 함의 등 특이사항 정리. 옛 jarvis/n8n/vault → actions.b-cdn.net 기록 폐기.
- services/bunnycdn-security.md: 5개 풀존 전수표, 17개 호스트네임 인벤토리, 미들웨어 64811 attach 매트릭스, bouncer.py 동기화 흐름. cfb-manager 가 BunnyCDN 미들웨어를 갱신한다는 옛 오기록 정정 (cfb-manager 는 CF Worker bouncer 전용).
- 두 문서 모두 Outline 감사 doc 51b963c3 링크.
kappa 피드백 + kubectl 실측 기반 정정. 이전 기록의 "SafeLine WAF 전용 리버스
프록시" 또는 "SafeLine WAF 전용" 표현은 오해의 소지가 있음.
실측 사실 (2026-04-10 kubectl get svc + ApisixRoute + HTTPRoute):
- APISIX (svc apisix-gateway): MetalLB VIP 192.168.9.50, gateway 80/443 +
admin 9180. 독립 LoadBalancer. Deployment replica 2.
ApisixRoute 1건: juiceshop/juiceshop → juiceshop.keepanker.cv → juiceshop
svc (chaitin-waf plugin 으로 SafeLine 통합 테스트)
- Traefik (svc traefik): MetalLB VIP 192.168.9.53, 80/443.
HTTPRoute 14건 (argocd/gitea/grafana/n8n/nocodb/sftpgo/openmemory/searxng/
kroki/safeline-mgt/vault-ui + api/namecheap + api/vultr + bunnycdn-mcp)
+ 5 legacy IngressRoute (vlogs/outline/vault-mcp/vault-mcp-http/bunnycdn-mcp)
→ **두 gateway 는 동등한 병렬 독립 LoadBalancer**. APISIX 는 Traefik 뒤의
리버스 프록시가 아니라 자체 MetalLB VIP 를 가진 별개 외부 인입 채널.
"SafeLine WAF 전용" 이 아니라, 2026-03-25 메인 라우팅이 Traefik 으로 이전된
이후 현재 APISIX route 가 SafeLine 테스트용 1건만 남은 상태일 뿐 — 범용
gateway 로 언제든 새 route 추가 가능.
정정 대상:
- infra/apisix.md — 서울 섹션 헤더/용도/축소 문구
- infra/infra-hosts.md — 게이트웨이 한 줄 요약
- infra/k3s-migration.md — 게이트웨이 열 + Phase 0 + Namespace 표
- infra/gateway-api.md — 전환 이력 2026-03-25 줄
- infra/crowdsec-safeline.md — waf-kr BunnyCDN Pull Zone 섹션 머리말
부수적으로 2026-04-10 에 발견된 heimdall kubectl 부재 문제 해결
(kubectl + helm + kubeconfig 복원) + tofu cloud-init 자동화 추가 —
commit bd5e4cb (ops-agents-tofu).