Nifi Setup And Configuration Guide With Complete Reference For Apache Nifi Installation And Management

NiFi Setup & Configuration Guide

πŸš€ NiFi Setup & Configuration Guide

Complete reference for Apache NiFi 1.25.0 installation and management

βš™οΈ Basic Commands

Service Management

cd /mnt/c/nifi-1.25.0

# Start NiFi
./bin/nifi.sh start

# Stop NiFi
./bin/nifi.sh stop

# Check status
./bin/nifi.sh status

# Restart NiFi
./bin/nifi.sh restart

Password Management

# Find generated password
cat logs/nifi-app.log | grep Generated
grep -i 'password\|initial security' logs/nifi-app.log

# Set custom credentials
./bin/nifi.sh set-single-user-credentials admin MyPassword123!

Monitoring

# Monitor startup logs
tail -f logs/nifi-app.log

# Check if port 8443 is open
sudo netstat -tulpn | grep 8443

Configuration File Management

# Open properties file
nano conf/nifi.properties

# Navigation within nano:
# Ctrl+W: Search
# Ctrl+O: Save
# Ctrl+X: Exit

Backup Flow Files

# Backup existing flows
mv conf/flow.xml.gz conf/flow.xml.gz.backup 2>/dev/null
mv conf/flow.json.gz conf/flow.json.gz.backup 2>/dev/null

πŸ”§ Configuration Profiles

Profile 1: HTTP Development Mode

No Authentication
Port 8080
Local Development

Access URL: http://localhost:8080/nifi

Use Case: Local development, testing, quick prototyping

Web Properties (Lines ~127-135)

# ENABLE HTTP
nifi.web.http.host=0.0.0.0
nifi.web.http.port=8080

# DISABLE HTTPS
#nifi.web.https.host=
#nifi.web.https.port=

Security Properties (Lines ~170-180)

# COMMENT OUT keystore/truststore settings
# nifi.security.keystore=./conf/keystore.jks
# nifi.security.keystoreType=JKS
# nifi.security.keystorePasswd=changeit
# nifi.security.keyPasswd=changeit
# nifi.security.truststore=./conf/truststore.jks
# nifi.security.truststoreType=JKS
# nifi.security.truststorePasswd=changeit

# DISABLE Authentication
nifi.security.user.authorizer=
nifi.security.allow.anonymous.authentication=false
nifi.security.user.login.identity.provider=

Profile 2: HTTPS Production Mode

With Authentication
Port 8443
Secure Access

Access URL: https://localhost:8443/nifi

Credentials: Username: admin / Password: MyPassword123!

Use Case: Production, secure environments, multi-user access

Web Properties (Lines ~127-135)

# DISABLE HTTP
#nifi.web.http.host=
#nifi.web.http.port=

# ENABLE HTTPS
nifi.web.https.host=0.0.0.0
nifi.web.https.port=8443

Security Properties (Lines ~170-180)

# ENABLE keystore/truststore settings
nifi.security.keystore=./conf/keystore.jks
nifi.security.keystoreType=JKS
nifi.security.keystorePasswd=changeit
nifi.security.keyPasswd=changeit
nifi.security.truststore=./conf/truststore.jks
nifi.security.truststoreType=JKS
nifi.security.truststorePasswd=changeit

# ENABLE Authentication
nifi.security.user.authorizer=single-user-authorizer
nifi.security.allow.anonymous.authentication=false
nifi.security.user.login.identity.provider=single-user-provider

🎯 Initial Setup

βœ… Quick Start (HTTP Development Mode)
cd /mnt/c/nifi-1.25.0
./bin/nifi.sh start
tail -f logs/nifi-app.log
# Wait for: "NiFi has started. The UI is available at the following URLs:"
# Access: http://localhost:8080/nifi

πŸ”’ HTTPS Configuration

Step 1: Stop NiFi

cd /mnt/c/nifi-1.25.0
./bin/nifi.sh stop

Step 2: Generate SSL Certificates

# Generate keystore
keytool -genkeypair -alias nifi-key -keyalg RSA -keysize 2048 \
  -keystore conf/keystore.jks -storepass changeit -keypass changeit \
  -dname "CN=localhost, OU=NiFi, O=Apache, L=Melbourne, ST=VIC, C=AU" \
  -validity 365

# Export certificate
keytool -exportcert -alias nifi-key -keystore conf/keystore.jks \
  -storepass changeit -file conf/nifi-cert.pem

# Create truststore and import certificate
keytool -importcert -alias nifi-cert -file conf/nifi-cert.pem \
  -keystore conf/truststore.jks -storepass changeit -noprompt

# Verify certificates created
ls -la conf/*.jks conf/*.pem

Step 3: Configure nifi.properties

nano conf/nifi.properties
# Apply Profile 2 (HTTPS) configuration
# Save: Ctrl+O, Enter
# Exit: Ctrl+X

Step 4: Set User Credentials

./bin/nifi.sh set-single-user-credentials admin MyPassword123!

Step 5: Start NiFi

./bin/nifi.sh start
tail -f logs/nifi-app.log
# Wait for startup message

Step 6: Access Secure NiFi

  1. Open browser: https://localhost:8443/nifi
  2. Accept security warning (Advanced β†’ Proceed to localhost)
  3. Login with: admin / MyPassword123!

πŸ”„ Switching Between Configurations

Method 1: Manual Edit

cd /mnt/c/nifi-1.25.0

# Stop NiFi
./bin/nifi.sh stop

# Edit configuration
nano conf/nifi.properties
# Apply desired profile settings

# Start NiFi
./bin/nifi.sh start

Method 2: Configuration Backup Files (Recommended)

πŸ’‘ Create Backup Files First
cd /mnt/c/nifi-1.25.0/conf

# Save HTTP development config
cp nifi.properties nifi.properties.http-dev

# Save HTTPS production config
cp nifi.properties nifi.properties.https-prod
✨ Switch Configurations Quickly
cd /mnt/c/nifi-1.25.0

# Stop NiFi
./bin/nifi.sh stop

# Switch to HTTP Development
cp conf/nifi.properties.http-dev conf/nifi.properties

# OR Switch to HTTPS Production
cp conf/nifi.properties.https-prod conf/nifi.properties

# Start NiFi
./bin/nifi.sh start

πŸ” Troubleshooting

Check NiFi Status

./bin/nifi.sh status

View Logs

# View full log
cat logs/nifi-app.log

# Monitor live logs
tail -f logs/nifi-app.log

# Search for errors
grep -i error logs/nifi-app.log

# Find password in logs
grep -i 'password\|initial security' logs/nifi-app.log

Port Verification

# Check if HTTP port 8080 is listening
sudo netstat -tulpn | grep 8080

# Check if HTTPS port 8443 is listening
sudo netstat -tulpn | grep 8443

Reset Flow Configuration

cd /mnt/c/nifi-1.25.0

# Stop NiFi
./bin/nifi.sh stop

# Backup current flows
mv conf/flow.xml.gz conf/flow.xml.gz.backup 2>/dev/null
mv conf/flow.json.gz conf/flow.json.gz.backup 2>/dev/null

# Start with clean state
./bin/nifi.sh start

Common Issues

Issue: Cannot connect to NiFi
βœ“ Solution: Check if NiFi is running: ./bin/nifi.sh status
βœ“ Solution: Verify correct URL for your configuration (HTTP vs HTTPS)
Issue: SSL certificate warning
βœ“ Solution: This is expected with self-signed certificates. Click "Advanced" β†’ "Proceed to localhost"
Issue: Login credentials not working
βœ“ Solution: Reset credentials: ./bin/nifi.sh set-single-user-credentials admin MyPassword123!
Issue: Port already in use
βœ“ Solution: Check what's using the port: sudo netstat -tulpn | grep 8443
βœ“ Solution: Stop NiFi and start again: ./bin/nifi.sh stop && ./bin/nifi.sh start

πŸ“‹ Quick Reference

Action Command
Start NiFi ./bin/nifi.sh start
Stop NiFi ./bin/nifi.sh stop
Check Status ./bin/nifi.sh status
Monitor Logs tail -f logs/nifi-app.log
HTTP URL http://localhost:8080/nifi
HTTPS URL https://localhost:8443/nifi
Default User admin
Default Password MyPassword123!
↑

View

Nifi Setup And Configuration Guide With Complete Reference For Apache Nifi Installation And Management