Problem symptom
The UI service on one management node cannot be started.
How to confirm
- The Redis-backed UI service cannot come up on the affected node, breaking login and management.
Applicable environment
- Product: ZCF
- Version: 4.8.x.
- Component: ZStack Cloud
- Deployment form: multi-management-node (zsha2).
Possible causes
/var/loghas been moved, deleted, or lost its execute (search) permission, which causes the Redis unit to fail to open its log files.
Solution
1. Rule out platform-level Redis hardening
- Check: confirm that no 6379-related security hardening was performed on the affected node.
- Command/UI:
iptables -nvL | grep 6379
iptables -nvL -t mangle
Review the output of both commands for any DROP or REJECT rule that matches port 6379, in either the filter table or the mangle table. Also review platform change records for any recent 6379-related hardening change.
- Expected result: no
DROP/REJECTrule matching port 6379 in either table, and no recent 6379 hardening change in the change records. - If abnormal: roll back the hardening change (or remove the matching rule) first.
2. Try to start Redis manually
- Check: run
redis-servermanually to see whether it starts outside of systemd, optionally with a copy of the working node'sredis.conf.
- Command/UI:
# Basic: start redis-server with its built-in default config
redis-server
# start redis-server with a copy of the healthy node's redis.conf
redis-server /etc/redis.conf
For the Custom Config form, first copy /etc/redis.conf (or the platform's default path) from the healthy node to the affected node.
- Expected result: Redis starts successfully with either form.
- If abnormal: continue to Step 3.
3. Check system resources and existing Redis processes
- Check: confirm memory is sufficient and no zombie process is starving the system.
- Command/UI:
free -h
top
ps -ef | grep -i redis
- Expected result: memory is sufficient, no zombie processes, no stray
redisprocesses holding state. - If abnormal: free memory or kill stray processes; otherwise continue to Step 4.
4. Inspect the zstack-ui log
- Check: confirm the failure mode in the
zstack-uilog. - Command/UI: tail the
zstack-uilog at/usr/local/zstack/apache-tomcat/logs/zstack-ui.log; look for connection failures to port 6379. - Expected result: the log shows
connection refusedor a similar "cannot connect to 6379" error. - If abnormal: continue to Step 5.
5. Inspect the systemd journal for Redis
- Check: capture the exact startup error for the Redis unit.
- Command/UI:
journalctl -xe -u redis
- Expected result: lines such as "unable to open file ... Permission denied" point to a filesystem/permission problem.
- If abnormal: continue to Step 6.
6. Verify /var/log directory state
- Check: confirm whether
/var/logexists, whether expected subdirectories exist, and whether the directory has been moved. - Command/UI:
ls -ld /var/log
ls /var/log
ll /var/log
- Expected result:
/var/logexists with the same set of subdirectories and permissions as the other management node. - If abnormal: identify when
/var/logwas relocated or had its permissions changed (checkhistory, change records).
7. Restore /var/log and fix permissions
- Check: move
/var/logback to its original location (if it was relocated) and grant the+xpermission on/var/logso Redis can traverse it. - Command/UI:
# If /var/log was relocated to a non-standard mount,
# confirm the target path with the customer's change records first, then restore.
# Replace <new-log-path> with the actual relocated path.
rsync -a <new-log-path>/ /var/log/ # copy contents back
chmod +x /var/log
systemctl start redis
systemctl start zstack-ui
- Expected result: Redis starts cleanly;
zstack-uiconnects to 6379 successfully and the UI becomes available on this management node.
Verification
systemctl status redisreportsactive (running)on the affected node.systemctl status zstack-uireportsactive (running).
Collection of supporting information
- Log bundle:
journalctl -xe -u redisoutput andzstack-uilog from the affected node. - Timestamps: the date
/var/logwas relocated (fromhistory), the time Redis started failing, and the time the UI service failed. - Scope and impacted objects: which management node failed, the host IPs of both management nodes, and the global HA status at the time of failure.
Additional information
- Best practice: do not relocate
/var/logto other directories on management nodes. If space is tight, free space by removing old collected logs and monitoring logs.
