Private Locations FAQ

1. How to remove a ship from Harbor (Uninstall)?

Stop the supervisord service using the the standard service command:

$ sudo service supervisord stop

And then, remove the supervisor package from the system: 

$ sudo apt-get remove -y supervisor

2. How to move a ship from one Harbor to another?

Each ship uses a JSON configuration file: /etc/blazemeter/config.json with defines what resource to use on the Blazemeter webapp. The ship resource cannot be moved from one harbor to another but the same server could be used as another ship by changing the relevant details in the configuration file.

Using the BlazeMeter Web UI one can create an empty ship resource and then replace the HARBOR_ID and SHIP_ID strings in the configuration file to match the ship in the other harbor.

Before changing the configuration file I recommended on stopping the supervisor service by running 

$ sudo service supervisord stop

and after the change starting the service again by 

$ sudo service supervisord start

3. What is the purpose of disable/enable on ships? What happens to the ship status?

Disabling a ship reduces the available pool of ships from the harbor to be used as load generators. The ship status will not be affected by disabling it. The number of engines that are available for a load generators test will be affected by that.


4. Sometimes i see error in the status? How do we reset the instance to connect again? Is there any log or error type available?

To reset the instance you can reset the supervisor service by running:

$ sudo service supervisord start

The supervisor services is used to supervise two long running processes that are needed for a healthy ship setup: opcd and aegir.

opcd is the service that controls the ship communication with the docker daemon and the BlazeMeter web app. It must be on and working in order receive commands from the BlazeMeter web app. 

aegir is the autoupdate software that is used for downloading the latest docker images that are used for the load generators. It must be on to receive the latest JMeter software with the latest plugins that are needed for several new features like the pause resume or the RPS control. 

Each process that is managed by the supervisor service has a separate configuration file on the /etc/supervisor/conf.d/ directory. For example the ocpd daemon uses a configuration file located on /etc/supervisor/conf.d/opcd.conf  

Each such process can be managed individually by the supervisorctl command. For example to stop the opcd process use the following command:

$ sudo supervisorctl stop opcd


5. Any troubleshooting on the instance to see logs or standard checks to check on the instance?

Both opcd and aegir uses log files that are stored on /var/log/blazemeter.

  • The opcd log file path is: /var/log/blazemeter/opcd.log
  • The aegir log file path is: /var/log/blazemeter/aegir.log

To raise the verbosity of the log file the VERBOSE field must be defined and set to the string "1" on the /etc/blazemeter/config.json

To check for connectivity to the BlazeMeter API servers from inside a container use the following command:

$ sudo docker run -it blazemeter:latest curl

It should result in a JSON output:

    "error": {
        "code": 401,
        "message": "Unauthorized"
    "api_version": 2,
    "result": null

6. Docker was already installed on the machine before running the ship installation script

TASK [ensure docker is locked with exact version] ******************************
fatal: [localhost]: FAILED! => {"changed": true, "cmd": ["bash", "-c", "apt-get install docker-engine=1.12.0-0~`lsb_release -cs`"], "delta": "0:00:00.546016", "end": "2016-08-19 21:21:23.927763", "failed": true, "rc": 1, "start": "2016-08-19 21:21:23.381747", "stderr": "", "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following packages will be DOWNGRADED:\n docker-engine\n0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 26 not upgraded.\nNeed to get 19.4 MB of archives.\nAfter this operation, 118 kB disk space will be freed.\nDo you want to continue? [Y/n] Abort.", "stdout_lines": ["Reading package lists...", "Building dependency tree...", "Reading state information...", "The following packages will be DOWNGRADED:", " docker-engine", "0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 26 not upgraded.", "Need to get 19.4 MB of archives.", "After this operation, 118 kB disk space will be freed.", "Do you want to continue? [Y/n] Abort."], "warnings": []}

It seems like docker was already installed on the machine with a newer version and the script tried to downgrade the docker version and failed.

1. Please try to remove the docker with the following command:
apt-get purge docker-engine

2. Please try to run the ship installation script again.

Regarding the "NO MORE HOSTS LEFT" - this is a message from Ansible saying it can't finish the job on this host due to the above failure, it is trying to move on to the next host but there is no more hosts on the list so it displays NO MORE HOSTS LEFT. This has nothing to do with the number of ships you are allowed to install.
Have more questions? Submit a request


Article is closed for comments.