NiFi Registry 가 떠 있는지 확인하는 방법, NiFi 에 Registry Client 를 등록해 Process Group 을 버전 관리하는 절차, Registry 가 쓰는 저장소(DB 와 Flow Persistence Provider) 를 정리한다. NiFi Registry 는 폐기(deprecated) 가 결정돼 NiFi 3.0 에서 제거되므로 신규 구축에는 채택하지 않는다.
./bin/nifi-registry.sh status # "currently running, listening to ... with PID"
ps -ef | grep nifi-registry | grep -v grep
ss -tlnp | grep 18080 # 기본 HTTP 18080, HTTPS 는 보통 18443
curl -s http://<host>:18080/nifi-registry-api/access
curl -s http://<host>:18080/nifi-registry-api/buckets # JSON 배열이면 정상
tail -f ./logs/nifi-registry-app.log # "NiFi Registry has started"
UI 는 http://<host>:18080/nifi-registry 다. 인증이 켜져 있으면 API 호출에 토큰이 필요하다. NiFi 와 Registry 의 버전 호환, 방화벽의 18080 개방, 클러스터라면 모든 노드에서 Registry 접근 가능 여부를 확인한다.
NiFi UI 우측 상단 메뉴 → Controller Settings → Registry Clients 탭 → + 로 추가한다.
| 항목 | 값 |
|---|---|
| Name | 임의 이름 |
| Type | NiFiRegistryFlowRegistryClient |
| URL | http://<registry-host>:18080 (HTTPS 는 https://<host>:18443 + 인증서 설정) |
HTTPS 환경은 nifi-registry.properties 에 keystore · truststore 를 지정한다.
nifi.registry.security.keystore=/path/to/keystore.jks
nifi.registry.security.keystoreType=JKS
nifi.registry.security.truststore=/path/to/truststore.jks
nifi.registry.security.truststoreType=JKS
| 아이콘 | 의미 |
|---|---|
| 초록 ✓ | 최신 버전과 동일 |
| 노랑 * | 로컬 변경 있음 |
| 빨강 ! | Registry 에 더 새 버전 존재 |
| 회색 ? | Registry 연결 불가 |
메타데이터(버킷 · 플로우 정보 · 정책) 는 관계형 DB 에 저장된다. 기본은 H2 임베디드(database/ 디렉터리) 이며 운영에서는 PostgreSQL 또는 MySQL 로 바꾼다.
nifi.registry.db.url=jdbc:postgresql://<host>:5432/nifireg
nifi.registry.db.driver.class=org.postgresql.Driver
nifi.registry.db.driver.directory=./lib/jdbc
nifi.registry.db.username=<user>
nifi.registry.db.password=${PASSWORD}
실제 플로우 버전 콘텐츠(스냅샷) 는 DB 가 아니라 Flow Persistence Provider 가 담당한다. 기본은 파일시스템 기반이고 Git 기반 provider 로 설정하는 경우가 많다.