Splunk Completes Acquisition of Plumbr Learn more

Installing Plumbr Server

On Premises Plumbr installation consists of two artifacts:

  • Plumbr Agent(s) gathering data from within the JVM(s) and sending collected data to Plumbr Server
  • Plumbr Server, responsible for collecting data from Agents and processing the data.

Notice that installing Plumbr Server is only necessary when your company policy restricts sending data from your JVMs to external SaaS services. Installing Plumbr Server on your premises is a way to ensure that no information leaves your network perimeter. In case your company policy does allow using external SaaS services, we recommend to install only the Plumbr Agent and connect to our SaaS server instead.

Plumbr Server embeds several different infrastructure elements (Kafka, Druid, Jetty, MySQL, etc). To simplify the installation & update of the infrastructure we have built the Server installation on top of Docker containers. Installing the containers is done via a single Docker Compose file.

So, installing the Plumbr Server consists of preparing the environment to run Docker containers and launching Docker Compose project supplied by Plumbr.

System requirements

Hardware

In default installation mode all components of the Plumbr Server are running on the same physical or virtual server. This server has to satisfy the following hardware requirements:

  • CPU. Plumbr Server can run on any modern server class machine. Performance comparable to Amazon EC2 R4.xlarge or M5.xlarge instance with 4 vCPUs would be adequate.
  • Memory. Plumbr Server requires a machine with at least 20G of RAM. 24G is recommended for larger installations.
  • Disk storage. Depends on the number of monitored JVMs and their activity. The more traffic for Plumbr to monitor the more storage will be needed. On moderately active JVM up to 16GB per JVM per month or, taking into account the 90-day data retention, around 50GB per JVM per year.

Also, please make sure Plumbr Server is deployed into a dedicated machine. Do not install Plumbr Server to any workstations/laptops or next to any other machines deployed on the same (virtual) machine.

Software

Plumbr Server has no special software requirements apart from the ability to run Docker Community Edition (CE) and Docker Compose. Please consult their respective documentation for further information: https://docs.docker.com/engine/installation/ and https://docs.docker.com/compose/install/. You will need at least Docker version 1.12 and Docker Compose version 1.10. The most tested and recommended OS is Ubuntu Linux 16.04.

Installation

To install Plumbr Server you will download and run several Docker images using the supplied Docker Compose file. Please follow these steps:

  • Get root access to a Linux machine corresponding to system requirements above
  • Install Docker and Docker Compose, using the installation guides on Docker site:
  • Download Plumbr Server distribution zip file from the Plumbr Download Center
  • Unzip received plumbr-server.zip file in the machine Plumbr Server is going to be installed.
  • You should now have the following directory structure:
    • plumbr-server
      • data
      • docker-compose.yml
      • docker-entrypoint-initdb.d
      • README.txt
    • Change the active directory into “plumbr-server” folder. We will refer to this folder as PLUMBR_SERVER_HOME for the rest of this document.
    • Launch the Docker Compose project by executing the following command:
      • docker-compose up -d
    • This will download the required versions of all Docker images for various parts of the Plumbr Server and then will launch the corresponding Docker containers. The first run can take around 10 minutes to have all components up and running. During this time, the Plumbr Server might already be accessible, but not functioning correctly.
    • The process is finished when
    • Plumbr Server is now fully functional. You can now proceed in installing the Agents to JVMs you wish to monitor and making sure the Agents are connecting to the Server you just installed (specified in plumbr.properties file next to the Agent).

Description of Plumbr Server constituents

Plumbr Server installation consists of the following Docker containers, each being described in the subsequent sections:

  • MySQL database
  • Zookeeper
  • Several Druid containers: Coordinator, Broker, Historical, Overlord and MiddleManager
  • Kafka
  • Probe Data Receiver
  • Browser Data Receiver
  • Probe Data Processor
  • Transaction Assembler
  • Plumbr Portal
  • Lookup service

MySQL DB

Plumbr Server uses MySQL database to store reference data, such as user information, alert policies and individual root causes detected in your applications.

Druid and Kafka

Plumbr Server uses Apache Kafka to store probe data that Plumbr Agents monitoring your JVMs collect and send to the Server. The same Kafka instance is used for various inter-process communication between Plumbr Server parts.

Plumbr uses Druid data store to aggregate time-series information to present to you in Plumbr Portal.

Lookup service is a supporting service for querying data from Druid.

Zookeeper

Apache Zookeeper is used by Kafka and Druid to coordinate their job.

Data Receivers

These 2 component receive monitoring data sent by Plumbr JVM Agents and by Plumbr Browser Agents and stores them into Kafka

Probe Data Processor and Transaction Assembler

They perform a 2-staged processing of data received from Plumbr Agents to extract root causes, evaluate their impact and prepare data to be displayed in Portals’ UI.

Plumbr Portal

This is a web application that you will use the most to browse the data from all monitored JVMs and browsers and to see the details of the unhealthy transactions detected by Plumbr Agents.

Troubleshooting

If you have any problems running Plumbr Server or any of its component then please consult the following log files:

  • Kafka: $PLUMBR_SERVER_HOME/data/kafka/logs/server.log
  • Data Receiver: $PLUMBR_SERVER_HOME/data/pdr/pdr.log
  • Plumbr Portal: $PLUMBR_SERVER_HOME/data/plumbr/logs/plumbr-server.log