EATON Brightlayer Image Server User Guide

EATON-LOGO

EATON Brightlayer Image Server

EATON-Brightlayer-Image-Server-product

Image Server

The purpose of this section is to provide technical information for the installation and configuration of the Brightlayer Image Server. This application feature is designed to capture images from IP Cameras and display them within the Brightlayer application. Almost all IP Cameras support uploading images via the FTP protocol. Brightlayer Image Server creates a central repository for the images uploaded by multiple IP cameras. The Brightlayer Web Server fetches up-to-date images from its Image Server to deliver real time images to the end user.

 Architecture
The Brightlayer Image Server (BLIS) is a standalone server instance which is installed using a standalone BLIS Installer. It must be installed on a separate server. The following figure illustrates the high-level architecture. EATON-Brightlayer-Image-Server- (1)

The main concern of such architecture is that the network and server performance impact caused by the perpetual camera image uploading data traffic. Assuming each camera image is 100K in size and each camera is uploading 1 image per second, 100 of such cameras will consume 80Mbits/second network throughput. Such an impact on the network throughput is permanent since the data uploading is perpetual. It is highly recommended to install multiple network interfaces on the BLIS server so that the IP Camera data traffic stays on its own subnet without degrading the network throughout for everything. Also, each camera will consume 8GB+ hard drive space per day. Thus, the retention policy must be designed properly according to the available physical hard drive space.

Server Requirements
The image server installation package checks the operating system version before installation. Currently, the following operating systems are supported:

  • Oracle Linux Server release 9.6, 9.7
  • Red Hat Enterprise Linux release 9.6, 9.7
  1. System Capacity Limits:
    • The Brightlayer 8.1 Image Server is designed to accommodate up to 40 cameras, with image size up to 400k each. Each camera uploads images at a rate of 1 frame per second and supports 5 end users viewing the camera studio in the Brightlayer UI. A maximum of 6 cameras can be included per camera group.
    • It is crucial not to exceed this specification to maintain the system’s performance balance and avoid potential performance deterioration.
  2. Supported Environment:
    • All Brightlayer system specifications have been meticulously benchmarked and validated.
    • Installation or operation of third-party applications, especially containerized apps, is strictly prohibited. Doing so may violate our support policy and compromise our ability to provide predictable, reliable support.
  3. Critical Performance Factors:
    • To maintain system integrity, the following requirements must be met for the Brightlayer 8.1 Image Server on a server with 8 CPU cores and 8GB memory: –
      1. Number of Cameras and Upload Rate: The system can reliably support up to 40 cameras, each uploading 1 image per second.
      2. Disk Throughput: A minimum sustainable disk throughput of 400 Megabytes per second is required.
      3. Network Throughput: To calculate the network throughput of image server and web client. Please refer to the formula in the following system requirements table.
  4. System Requirements:
OS Red Hat Enterprise Linux / Oracle Linux Server 9.6, 9.7
CPU Minimum 8 Cores
Memory Minimum 8GB RAM
Disk IOPS Minimum 300
Disk Throughput Minimum 400 Megabytes/Sec
Web Client Network Throughput Formula: Network throughput per Web UI instance = Size of image * Number of cameras* Number of frames per camera per second
Example:
Assuming each image size is 400k and the rate is 1 frame per second:
  • When opening a camera group with 6 cameras, the throughput is 2.4 Megabytes/Sec per Web UI instance.
  •  When opening 1 camera, the throughput is 0.4 Megabytes/Sec per Web UI instance
Image Server Network Throughput To maintain the sustainable performance, please refer to the following formula to calculate the minimum required network throughput of image server.Network Throughput = Image server network inbound + Image server network outbound
  • Image server network outbound refer to the Web Client Network Throughput.
  • Image server network inbound = Size of image * Number of cameras* Number of frames per camera per second 

Example:
Assuming there are total 40 cameras, each image size is 400k and the rate is 1 frame per second:

  • The server network inbound is around 16 Megabytes/Sec.

The user must calculate how much disk space will be needed for all directories following the formula below:

Directory Size Comment
/opt/VDC 400MB Fixed Size
/opt/VDCIS Dynamic Size
  • Total number of images per day from 1 camera
    • Number of images per second * 60 * 60 * 24 = Number of images per day
  • Average image size – The average size of images from your camera based on your resolution settings
    • The quality of the images will be based on the resolution
    • The higher the resolution the better the image and the larger the image size
    • Size can be in kilobytes or megabytes
    • After calculating formula use a converter to determine how many gigabytes it equals
  • Number of days to keep images – This will be how far back you can scrub through the video images in the camera viewer
  • Number of cameras – This should be the final number of cameras you intend to install
  • Use the following formula to calculate how much disk space your image server should have.
  • VDCIS Required Disk Space = Total number of images per day from 1 camera
  • Average image size * Number of days to keep images * Number of cameras
/usr/local/pgsql Dynamic Size 1.125KB*Total number of images

 BLIS Installation
This Brightlayer Image Server 8.1 is only compatible with Brightlayer 8.1 and Brightlayer 8.1 is only compatible with BLIS 8.1. The Brightlayer Image Server can be installed prior to or after the Brightlayer Server has been installed.

  1. Upload the installer onto the server under /opt/install. Create the /opt/install
    mkdir /opt/install
  2. Login to the server as root user and change directory to /opt/install
    cd /opt/install
  3. Extract the package
    tar -xvf BLSS-Image_Server-8.1.0-GA-Extension-c51fcf2face2b277db12d3b717f2c628.tar
  4. Verify the number of cameras’ current disk space. The BLIS installer has an option for checking the current disk space and reporting how many cameras it can support. The tool presumes one image per second (86,400 per day). The other variables are entered when running the command as noted below.
    Once the installer package has been extracted, users should first switch to the BLSS-
    Image_Server-8.1.0-CI-Extension directory, and then proceed with running the command:
    # ./main -r [retention_days] -s [average_image_size in bytes]
    When the -s option is used, the installer will suggest the maximum number of IP cameras the current server’s hard disk can support and it does NOT install the application.
    For example: ./main -r 3 -s 100000
    Given the average size for each image is 100000 bytes, 3 retention days and available 183821444 KB available disk space under /opt/VDCIS/ftpserver/res/home/, this system can support at most 7 cameras (assuming each camera uploads 1 image per second).
    Note: This does NOT install the Image Server software.
  5. Install the Image Server Software with running the command:
    ./ main [OPERATION] -a <blss-master-ip> [OPTIONS]

Operations (choose one)

Operation Description
-i Install the Image Server (fresh installation)
-u Upgrade an existing Image Server installation
-U Uninstall the Image Server completely

Required Argument 

Argument Description Example
-a IP address of the BLSS Master Node -a 192.168.1.100

Optional Arguments (choose one)

Argument Description Example
-l lowercase “l” (L) Path to offline ISO archive (.tgz). If omitted, online installation is used. -l /tmp/image-server-deps.tgz
-p FTP server port (default: 21) -p 2121
-r Image retention period in days (default: 7) -r 14
-s Calculate maximum camera capacity based on average image size. Script exits after calculation. -s 50000
-y, –yes Auto-confirm upgrade/uninstall without prompting —
–skip-disk-check Skip disk space validation —
-h Display help message —

Usage Examples 

  • Install (online mode) with default settings
  • / main -i -a 192.168.1.100
  •  Install (online mode) with custom FTP port and 14-day retention
  • / main -i -a 192.168.1.100 -p 2121 -r 14
  • Install (offline mode) with default settings
  • / main -i -a 192.168.1.100 -l /tmp/image-server-deps.tgz
  • Upgrade
  • / main -u -a 192.168.1.100 -y
  • Uninstall (will prompt for confirmation)
  • / main -U

NOTES: 

  • Must run as root
  • Supported OS: RHEL / Oracle Linux 9.6, 9.7
  • Log file: /tmp/image-server-8.1.0-install-<timestamp>.log
  •  The server processes will be automatically started after the installation. No need to reboot.
  • To check for running BLIS, run this command there should be three processes related to the ftp server.
    ps -ef |grep ftp
  • The BLIS Home directory is /opt/VDCIS. Create ftp account on the BLIS server for each IP camera which will be managed. See details in the section below on managing ftp accounts on the BLIS server.
    /opt/VDCIS/bin/addftpuser ftpuser_id ftpuser_pwd
  • Login to the Admin Interface for each IP Camera to save the FTP settings and instruct the camera to upload images continuously. Note, these instructions are camera specific, but a reference is provided below for common practices used by cameras for managing this feature.

Managing BLIS FTP Accounts
Each camera to be managed by the BLIS server needs to have an FTP account created to establish communication and a dedicated file repository for that camera. The following instructions are provided to manage the FTP accounts on the BLIS server.

  1. Log in Image Server as root user
  2. Run: cd /opt/VDCIS/bin
  3. Run to view files in bin (BLIS tools): ls
  4. There are six available BLIS tool commands:
    • addftpuser
    • deleteftpuser
    • updateftpuser
    • vdcisconf
    • vdcismon
    • viewftpuser
    • Usage:EATON-Brightlayer-Image-Server- (2)
    • Below is a sample path to check the incoming image files updates for an FTP user RackCam: /opt/VDCIS/ftpserver/res/home/RackCam/2017/5/18/9

IP Camera FTP Settings
Each camera manufacturer will have a different menu item to configure and manage the FTP settings and the event triggers to deliver the images to the BLIS server. The goal for our integration is to configure the cameras to use the FTP account created above to deliver camera images to the BLIS system so they can be displayed in the Brightlayer application.
The instructions below are for an Axis IP Camera device. The general process to configure IP Cameras is similar to what is documented below, but please consult the manufacturer documentation to configure specific IP Addresses.

Configure the FTP Connection to BLIS

  • Access the web interface for the camera
  • Enter the Setup configuration page for the cameraEATON-Brightlayer-Image-Server- (3)
  • Configure the FTP connection using the BLIS IP Address, the BLIS FTP Port number (default is 21) and the FTP user created on the BLIS system for this camera. EATON-Brightlayer-Image-Server- (4)
  • Click the Test button to confirm the camera image can be delivered to the FTP server configured. The Test feature is a common tool used with most major IP Camera manufacturers.

Configure Event Triggers
After the FTP Connection is successfully defined an Event Trigger needs to be defined to deliver the camera images to the BLIS FTP server. In general, we recommend events no more frequent than 1 frame per second be sent to the BLIS system. This frequency will help manage the bandwidth, disk space, etc of the overall architecture so there are no negative impacts of camera management to the overall system. The event shown below has these key parameters to trigger the frame capture and delivery to the BLIS system:

  • Schedule is set to Always to allow for perpetual delivery of images to the BLIS system.
  • Image Frequency is set to 1 Frame per second.
  • The Upload protocol is set to FTP so we can select the FTP server defined in the section above.
  • The Primary server is the FTP server connection defined in the section above.

EATON-Brightlayer-Image-Server- (5)Brightlayer Camera Settings
The server and camera configurations above will result in the successful delivery of images from the FTP camera to the BLIS server. Confirm that images are received by checking the path to the previously created ftp user as described in the ” Managing BLIS FTP Accounts” section. Next the Brightlayer devices need to be configured to display the images stored in the BLIS system.

  • Create a device in Brightlayer with the Device Type = Camera.
  • Fill the IP Address of the device. EATON-Brightlayer-Image-Server- (6)
  • Click the verify button and the image will be displayed. EATON-Brightlayer-Image-Server- (7)
  • The application supports creating camera groups to manage the cameras.
  • From the Security Control menu group Select the Camera menu item.
  • Click on the New button to add a new camera group.
  •  Fill in the camera group information and add the camera to the camera group.

EATON-Brightlayer-Image-Server- (8)

Changing Image Retention Days After Install
The retention rate is the number of days that the image server will keep images from the cameras. This is also the number of total days of footage that the user can scrub through in the camera studio. The retention rate is set to a specific number of days when the image server is installed. This value can be changed after installation using the steps below.

  1. In the configuration file In the configuration file /opt/VDCIS/.conf there is a setting: RETENTION_DAYS@ftpserver/common/classes/config.properties=7
  2. Change the number after the “=” to the desired number of days. In this example it is changed from 7 to 10 days:
    RETENTION_DAYS@ftpserver/common/classes/config.properties=10
  3. Next run the following commands as root to initiate the change:
    Refresh the vdcisconf file: /opt/VDCIS/bin/vdcisconf
    Restart the ftp server:
    /opt/VDCIS/ftpserver/bin/shutdown.sh /opt/VDCIS/ftpserver/bin/startup.sh

Troubleshooting
When troubleshooting issues during installation, upgrade, or runtime, reviewing the system log files is often the most effective way to identify the root cause. The following table lists the key log files used by image server components, including their locations and purposes. Users can refer to these logs whenever an error occurs or when additional diagnostic information is required.

Log File Location Purpose
Installation Log /tmp/vdcis_install.log Complete installation/upgrade/uninstall logs
PostgreSQL Log /usr/local/pgsql/data/log/postgresql-*.log Database server logs
HTTPD Error Log /var/log/httpd/error_log Apache web server errors
HTTPD Access Log /var/log/httpd/access_log HTTP/HTTPS access logs
systemd Journal journalctl -u vdcis.service Image Server service logs

This section lists frequently encountered issues during installation, upgrade, or runtime, along with their possible causes and recommended solutions.

Installation Fails with “Command Not Found”

Symptom:

  • Error: initdb: command not found
  • Error: pg_ctl: command not found

Cause:
PostgreSQL binaries are not in the system PATH.

Solution:
The installer uses full paths (${PG_BIN_DIR}/initdb).
If the error persists, verify that the PostgreSQL tarball was extracted correctly:

  • ls -la /usr/local/pgsql/bin/

 Checksum Verification Failure

Symptom:

  • Error: Checksum mismatch for ftpserver.tar
  • Expected: 1234567890
  • Actual: 9876543210

Cause:
The downloaded package is corrupted or has been tampered with.

Solution:

  • Re-download the Extension package.
  • Verify package integrity from the MinIO source.
  • Contact the build team if the issue continues.

PostgreSQL Fails to Start

Symptom:

  • Error: PostgreSQL failed to start

Cause:
Port conflict, permission issues, or corrupted data directory.

Solution:

  • Check if port 5432 is already in use netstat -tulpn | grep 5432
  • Check PostgreSQL logs tail -f /usr/local/pgsql/data/log/postgresql-*.log
  • Verify data directory permissions
  • ls -ld /usr/local/pgsql/data
  • Should be: drwx—— postgres vdc
  • Try starting manually su – postgres -c “/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /tmp/pg_logfile start”

 SELinux Denials

Symptom:

  • Error: Permission denied (SELinux)
  • AVC denial messages in /var/log/audit/audit.log

Cause:
SELinux policies not applied or incorrect file contexts.

Solution:

  • # Check SELinux mode

getenforce

  • # Check audit log for denials
  • ausearch -m AVC -ts recent
  • # Apply SELinux policies
  • setsebool -P httpd_can_network_connect 1
  • chcon -R -t public_content_rw_t /opt/VDCIS/ftpserver
  • chcon -R -t httpd_sys_content_t /opt/VDCIS/imageservice
  • # Verify contexts
  • ls -Z /opt/VDCIS/

 Timescale DB Extension Error

Symptom:

  • Error: pg_config: not found
  • ERROR: extension “timescaledb” is not available

Cause:
TimescaleDB was not compiled correctly or not loaded by PostgreSQL.

Solution:

  • # Verify TimescaleDB installation
  • ls -la /usr/local/pgsql/lib/timescaledb*.so
  • ls -la /usr/local/pgsql/share/extension/timescaledb*
  • # Check PostgreSQL configuration
  • grep shared_preload_libraries /usr/local/pgsql/data/postgresql.conf
  • # Should contain: timescaledb
  • # Restart PostgreSQL
  • su – postgres -c “/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data restart”
  • # Verify extension in database
  • su – postgres -c “/usr/local/pgsql/bin/psql -d vdc_is -c ‘SELECT * FROM pg_extension;'”

Firewall Blocks Connections

Symptom:

  • Cannot access Image Server at https://<IP>
  • FTP connection refused

Cause:
Firewall rules not applied.

Solution:

EATON-Brightlayer-Image-Server- (1)

 ISO Fails to Mount (Offline Mode)

Symptom:

EATON-Brightlayer-Image-Server- (2)

ls -la /tmp/vdcis_iso/Packages/

Service Fails to Start
Symptom: Error: vdcis.service failed to start Job for vdcis.service failed

Cause:
Missing dependencies, permission issues, or configuration errors.
Solution: # Check service status systemctl status vdcis.service # Check journal logs journalctl -u vdcis.service -n 50 # Verify service file cat /etc/systemd/system/vdcis.service # Check binary permissions ls -la /opt/VDCIS/imageservice/image-service

Camera Issues
The following notes will assist with troubleshooting efforts to resolve camera configuration problems.

  • Verify the server firewall is not blocking communication from the BLIS server to the cameras or to the Brightlayer server.
  • Images from cameras are saved into the following location on the BLIS server. Check this location for current images to ensure the camera is successfully connecting to the FTP server and depositing images.
  • /opt/VDCIS/ftpserver/res/home/{USER}/{YEAR}/{MONTH}/{DAY}/{HOUR}
  • BLIS server communicates with the IP camera via port 20 and 21. The IP Camera must be able to connect to BLIS port 20 and 21.
  • Use the following command on the BLIS server to check if port 21 is open. LISTEN means the server is listening for a connection at this port. ESTABLISHED means a connection is established at this port. Results of this command must have  LISTEN and at least 1 ESTABLISHED in the result. EATON-Brightlayer-Image-Server- (9)
  • The BLIS server is configured to work with a single instance of Brightlayer, and a single Brightlayer server can support only one BLIS server. The BLIS server hosts file includes the following entry where the IP Address would be for the Brightlayer Master Server.

<Brightlayer Master Server IP> vdchost-server

EATON-Brightlayer-Image-Server- (10)

To change the Brightlayer server used by the BLIS images perform the following steps: 

  1. Update the vdchost-server setting in the BLIS server hosts file to use the IP Address of the Master server for Brightlayer.
  2. Restart the BLIS process on the BLIS server:
    • systemctl restart vdcis.service
    • If the FTP user commands to add, delete, update or view return error messages then make sure the FTP server is running on the BLIS server. The vdcis process must run for the commands to run correctly:
    • systemctl start vdcis.service systemctl status vdcis.service
    • The Brightlayer server communicates with the BLIS server port 80.
      Use the following command on the Brightlayer server to check if it can reach the BLIS server.

telnet blssis-server ip address 80
Use the following command on BLIS server to check if port 80 is open. LISTEN means the server is listening for a connection at this port. ESTABLISHED with source Brightlayer server means the connection with BLIS server is established at this port.
netstat -anp | grep “:80”

Contact Support
For your convenience Eaton provides one site where you can access the information that you need for our enterprise products. You can access the resources listed below by going to https://eaton.my.site.com.

  • Online and telephone contact information for technical assistance and customer services
  • Product and documentation downloads
  • Other helpful resources appropriate for your product

Proprietary and Confidential www.Eaton.com/VCOM LEGAL NOTICE
Copyright © 1999–2026. Eaton All rights reserved. The contents of this document constitute valuable proprietary and confidential property of Eaton and are provided subject to specific obligations of confidentiality set forth in one or more binding legal agreements. Any use of this material is limited strictly to the uses specifically authorized in the applicable license agreement(s) pursuant to which such material has been furnished. Any use or disclosure of all or any part of this material not specifically authorized in writing by Eaton is strictly prohibited.

Documents / Resources

PDF thumbnailBrightlayer Image Server
User Guide · Brightlayer Image Server, Image Server

References

Ask a Question

Use this section to ask about setup, compatibility, troubleshooting, or anything missing from this manual.

Ask a Question

Ask about setup, compatibility, troubleshooting, or anything missing from this manual. Name and email are optional.