Sign inSign up

madmucho/netxms

By madmucho

Updated about 4 years ago

NetXMS is an enterprise grade open source network management and monitoring system

Image
6

2.7K

madmucho/netxms repository overview

https://www.netxms.org/

NetXMS 4.1 Debian 10 buster, SQLite db version under supervisord

New image based on latest available packages and methods. This container is watched by supervisord, you can update, restart and change configuration of any component at runtime with no obstacles.

Stop all services in running container use command
supervisorctl stop all 
Start all services in running container use command
supervisorctl start all

Environment Variables

  • NETXMS_UNLOCKONSTARTUP - Instruct to unlock database as part of initial docker configuration, default to 1
  • NETXMS_UPGRADEDB - Instruct to unlock and upgrade database as part of initial docker configuration, default to 1

Network

You want this ports to be available outside.

Expose port 4700/TCP Server connections.
Expose port 4701/TCP Management Console Client connections.
Expose port 4702/TCP Inter server communications.
Expose port 4703/TCP Agent Tunnels communications.
Expose port 4747/TCP Mobile agent connections.
Expose port 162/UDP SNMP Trap port

Time

After first run, please change time zone to fit your time using command

dpkg-reconfigure tzdata

This can be changed directly in running container. After change please stop and start container to change effect.

Credentials

Default username using Management Console is admin and password is netxms you will be prompted to change it after first use.

Upgrading binaries in image

Using these steps you can upgrade netxms to the latest version anytime.

1 stop all running services
supervisorctl stop all 
2 upgrade binaries from official repository.
apt-get update 
apt-get upgrade
3 unlock database for manipulation and upgrade db schema
nxdbmgr unlock
nxdbmgr upgrade
4 start all services again.
supervisorctl start all

Do not forget to upgrade your Management console. Management Console can be downloaded from https://www.netxms.org/download .

Default db and configuration files is on this locations, recommended is persist them outside container for backup, it contains your data:

/etc/nxagentd.conf                   > local nxagent config file
/etc/netxmsd.conf                    > netxms service config file, there is db connection information.
/opt/netxmsdb/netxms.db     > contains default SQLite db which this docker image uses by default.
/var/lib/netxms                         > contains custom files, images, icons, mibs, server keys etc.
/etc/supervisor.conf                > contains main service config
/etc/supervisor/conf.d            > directory contains netxmsd and nxagent service config files.
/healthcheck.sh                        > healthcheck script to report state of services.

Database Change

If you are ok with SQLite you may consider migrating your data to any other supported databases, SQLite is for basic usage only and has its limit. database migration is done using nxdbmgr tool please take a look at wiki > https://wiki.netxms.org/wiki/How_to_migrate_to_another_database To use this image in production I recommend using MariaDB database, image is minimal you need to install required netxms db driver using

Install db driver.
apt-get update
apt-get install netxms-dbdrv-mariadb

Examples

Example 1 I want begin fast, with no additional steps just run and use.

docker run -d \
--name=netxms \
--restart always \
madmucho/netxms:latest 

Example 2 I want use container with presistent configuration files, with static ip adddress and mac.

docker run -d \
--name=netxms \
-p 0.0.0.0:4747:4747/tcp -p 0.0.0.0:4702:4702/tcp -p 0.0.0.0:4701:4701/tcp -p 0.0.0.0:4700:4700/tcp -p 0.0.0.0:162:162/udp \
--mac-address="xx:xx:xx:xx:xx:xx" --ip="xxx.xxx.xxx.xxx" \
--restart always \
-v /opt/netxms/conf/netxmsd.conf:/etc/netxmsd.conf madmucho/netxms:latest  

Real experience

SQLite stable for db size to ~3gb then migrate to other db using export command, change config and import back. MariaDB is ok but his demands will grow with your data, it is your responsibility to tune up MariaDB config over time. Use UTF-8 for netxms database encoding. With nxdbmgr you can even migrate data to another server, but this process take a lot of time in offline state.

I personally use this image on Synology NAS x86 box inside docker package from the Synology market, working ok for even 6 years and on portainer, with no issue.

#Migrate data from my older docker image

When you migrate from my older legacy docker image based on Debian Jessie, please backup your database, stop all services. In latest docker image use your old config file values and same db driver and then Then run

nxdbmgr upgrade   #to upgrade database schema
nxdbmgr check       #to read data and check consistency

Start all services using supervisorctl start all Check possible problems in container logs.

Healthcheck

Docker container healthcheck script monitor avalibility of TCP port 4701. If you want change monitor logic you can edit script healthcheck.sh inside in container.

Support me

If this image is useful to You you can support me with a cup of coffee at

Tag summary

Content type

Image

Digest

Size

117.3 MB

Last updated

about 4 years ago

docker pull madmucho/netxms