This example implementation provides a starting point for a monitoring stack that can be used to monitor the status of your Anbox Cloud cluster using Nagios, a tool that is widely used for monitoring networks, servers and applications. Using the Nagios Remote Plugin Executor (NRPE) on each node, it can monitor your cluster with machine-level detail.
This reference implementation is provided for demonstration purposes only. It does not cover all aspects that you should consider for a production-level solution (for example, high availability). It cannot be used with the Anbox Cloud Appliance.
In this setup, Anbox Cloud integrates with Nagios and allows you to monitor the status of its services to be alerted when something goes wrong.
Nagios monitors the following services:
- AMS
- LXD
- AMS Node Controller
- Anbox Stream Gateway
- Anbox Stream Agent
- Coturn
Deploy the solution
The monitoring stack is provided as an overlay file that you use when deploying Anbox Cloud.
The overlay installs Nagios on one machine and the Nagios Remote Plugin Executor (NRPE) on all machines. In addition, it creates the required relations.
Complete the following steps to deploy Anbox Cloud with the reference monitoring stack:
-
Create a
nagios.yaml
file with the following content, depending on which Juju bundle you want to deploy:For the `anbox-cloud-core` bundle
applications: nagios: charm: 'nagios' expose: true num_units: 1 to: - '2' nrpe: charm: 'nrpe' relations: - ['ams', 'nrpe:nrpe-external-master'] - ['lxd', 'nrpe:nrpe-external-master'] - ['ams-node-controller', 'nrpe:nrpe-external-master'] - ['nrpe', 'nagios'] machines: '0': series: jammy constraints: "cpu-cores=4 mem=4G root-disk=40G" '1': series: jammy constraints: "cpu-cores=8 mem=16G root-disk=50G" '2': series: jammy constraints: "cpu-cores=2 mem=8G root-disk=10G"
For the `anbox-cloud` bundle
applications: nagios: charm: 'nagios' expose: true num_units: 1 to: - '2' nrpe: charm: 'nrpe' relations: - ['ams', 'nrpe:nrpe-external-master'] - ['lxd', 'nrpe:nrpe-external-master'] - ['ams-node-controller', 'nrpe:nrpe-external-master'] - ['nrpe', 'nagios'] - ['anbox-stream-gateway', 'nrpe:nrpe-external-master'] - ['anbox-stream-agent', 'nrpe:nrpe-external-master'] - ['coturn', 'nrpe:nrpe-external-master'] machines: '0': series: jammy constraints: "cpu-cores=4 mem=4G root-disk=40G" '1': series: jammy constraints: "cpu-cores=8 mem=16G root-disk=50G" '2': series: jammy constraints: "cpu-cores=2 mem=8G root-disk=10G"
-
Deploy Anbox Cloud with the overlay file.
-
For the
anbox-cloud-core
bundle:juju deploy anbox-cloud-core --overlay nagios.yaml
-
For the
anbox-cloud
bundle:juju deploy anbox-cloud --overlay nagios.yaml
Note:You can use the same command if you already deployed Anbox Cloud. In this case, Juju checks the existing deployment and only deploys new components.
-
-
Wait until all added units are in
active
state.
Use an existing Nagios service
If you already have an existing Nagios installation, adapt the overlay file to only install the NRPE charm on all machines.
After deployment, configure the NRPE charm to work with your existing Nagios installation:
juju config nrpe export_nagios_definitions=true
juju config nrpe nagios_master=<ip-address-of-nagios>
See the External Nagios section of the NRPE charm README for more information.
Access Nagios
To access the Nagios web interface, go to http://<IP_address>/
in your browser.
Replace <IP_address>
with the IP address of the machine on which you deployed Nagios. If you don’t know the address, run the following command:
juju status --format yaml nagios/0 | grep public-address
If you have deployed more than one Nagios unit, you might need to replace the 0
in nagios/0
with the suitable unit ID. Check juju status
if you are in doubt.
You must enter your user name and password to log in. The user name is nagiosadmin
. You can determine the password by running the following command (note that you might need to replace the 0
as mentioned above):
juju ssh nagios/0 sudo cat /var/lib/juju/nagios.passwd