This page shows how to connect various logging solutions to a Juju deployed cluster.
This page assumes you have a working Juju deployed cluster.
Datadog is a SaaS offering which includes support for a range of integrations, including Kubernetes and ETCD. While the solution is SAAS/Commercial, they include a Free tier which is supported with the following method. To deploy a full Kubernetes stack with Datadog out of the box, do:
juju deploy canonical-kubernetes-datadog
To start, deploy the latest version Datadog from the Charm Store:
juju deploy datadog
Configure Datadog with your api-key, found in the [Datadog dashboard](). Replace XXXX
with your API key.
juju configure datadog api-key=XXXX
Finally, attach datadog
to all applications you wish to monitor. For example, kubernetes-master, kubernetes-worker, and etcd:
juju add-relation datadog kubernetes-worker
juju add-relation datadog kubernetes-master
juju add-relation datadog etcd
The Elastic stack, formally “ELK” stack, refers to Elastic Search and the suite of tools to facilitate log aggregation, monitoring, and dashboarding. To deploy a full Kubernetes stack with elastic out of the box, do:
juju deploy canonical-kubernetes-elastic
To start, deploy the latest version of ElasticSearch, Kibana, Filebeat, and Topbeat from the Charm Store:
This can be done in one command as:
juju deploy beats-core
However, if you wish to customize the deployment, or proceed manually, the following commands can be issued:
juju deploy elasticsearch
juju deploy kibana
juju deploy filebeat
juju deploy topbeat
juju add-relation elasticsearch kibana
juju add-relation elasticsearch topbeat
juju add-relation elasticsearch filebeat
Finally, connect filebeat and topbeat to all applications you wish to monitor. For example, kubernetes-master and kubernetes-worker:
juju add-relation kubernetes-master topbeat
juju add-relation kubernetes-master filebeat
juju add-relation kubernetes-worker topbeat
juju add-relation kubernetes-worker filebeat
In the event an ElasticSearch cluster already exists, the following can be used to connect and leverage it instead of creating a new, separate, cluster. First deploy the two beats, filebeat and topbeat
juju deploy filebeat
juju deploy topbeat
Configure both filebeat and topbeat to connect to your ElasticSearch cluster, replacing 255.255.255.255
with the IP address in your setup.
juju configure filebeat elasticsearch=255.255.255.255
juju configure topbeat elasticsearch=255.255.255.255
Follow the above instructions on connect topbeat and filebeat to the applications you wish to monitor.
Nagios utilizes the Nagios Remote Plugin Executor protocol (NRPE protocol) as an agent on each node to derive machine level details of the health and applications.
To start, deploy the latest version of the Nagios and NRPE charms from the store:
juju deploy nagios
juju deploy nrpe
Connect Nagios to NRPE
juju add-relation nagios nrpe
Finally, add NRPE to all applications deployed that you wish to monitor, for example kubernetes-master
, kubernetes-worker
, etcd
, easyrsa
, and kubeapi-load-balancer
.
juju add-relation nrpe kubernetes-master
juju add-relation nrpe kubernetes-worker
juju add-relation nrpe etcd
juju add-relation nrpe easyrsa
juju add-relation nrpe kubeapi-load-balancer
If you already have an existing Nagios installation, the nrpe-external-master
charm can be used instead. This will allow you to supply configuration options that map your existing external Nagios installation to NRPE. Replace 255.255.255.255
with the IP address of the nagios instance.
juju deploy nrpe-external-master
juju configure nrpe-external-master nagios_master=255.255.255.255
Once configured, connect nrpe-external-master as outlined above.