Architecture

Understanding the components

All components of DBmarlin run on a single server running Linux or Windows 64-bit OS.

https://d33wubrfki0l68.cloudfront.net/026387fc233f976281d183d3832651e8e7e9e963/5a997/img/dbmarlin-architecture.svg

DBmarlin Server

DBmarlin is made up of a DBmarlin server which runs the Agent, UI Server, Archiver and Repository

Agent

The Agent is the software installed with the DBmarlin server to collect data. The Agent is made up of a number of different types of sensor which gather different types of data such as activity, statistics or changes. A scheduler within the agent automatically starts the different Sensors depending as required.

Sensor

Sensors are the data collectors which run within an agent. There are 2 groups of sensor, (Database and Host) and within those groups there are different types of sensor for each technology type (E.g. MySQL, Oracle, Linux, Windows etc.). Each sensor makes a remote connection to a target database instance or host in order to measure it's performance.

UI Server

This is a web server (Nginx web server) which serves the user interface resources to the end-user's browser. The User Interface itself is is rendered in a browser as a Single Page App (SPA) built using the React framework. By default this UI server will run on TCP port 9090 but can be changed by running configure.sh.

Archiver

The Archiver manages all reads and writes to the DBMarlin Repository. It provides a REST API to both the Agents and UI. The Archiver is a Java application server (Tomcat). By default the API runs on TCP port 9080 but can be changed by running configure.sh. Connections to the archiver such as API requests are reverse proxied though the Nginx server on TCP port 9090 and so this port doesn't see to be opened externally.

Repository

This is where DBmarlin keeps all its data. This includes metadata about the databases which are monitored as well as the performance data and metrics gathered from the monitored databases. It is a PostgreSQL database which is bundled with DBmarlin and by default will listen on TCP port 9070.

DBmarlin UI

User Interface (Browser)

The UI can be accessed through any modern browser such as Chrome, Edge, Firefox or Safari. See full list of supported browsers.

In your browser enter the address of the DBmarlin server into the address bar. For example http://dbmarlin server:9090/

Firewall Requirements

Agent to target database instance

The Agent makes a connection to the target database instance using the host and port number specified when you added the target database on the Add Database screen. For example if the target is a MySQL instance running on 192.168.1.44 and TCP port 3306 then that port would need to be open between the DBmarlin server and the target database host in order for a connection to be made.

Browser to UI server & Archiver API

Your Browser makes a connection on port on TCP port 9090 to access both the UI Server and the Archiver API. That port needs to be open between all end users browsers and the DBmarlin server.