146 lines
4.2 KiB
Markdown
146 lines
4.2 KiB
Markdown
---
|
|
title: Monitoring
|
|
content_template: templates/task
|
|
---
|
|
|
|
{{% capture overview %}}
|
|
This page shows how to connect various logging solutions to a Juju deployed cluster.
|
|
{{% /capture %}}
|
|
|
|
{{% capture prerequisites %}}
|
|
This page assumes you have a working Juju deployed cluster.
|
|
{{% /capture %}}
|
|
|
|
{{% capture steps %}}
|
|
## Connecting Datadog
|
|
|
|
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
|
|
```
|
|
|
|
### Installation of 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
|
|
```
|
|
|
|
## Connecting Elastic stack
|
|
|
|
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
|
|
```
|
|
|
|
### New install of ElasticSearch
|
|
|
|
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
|
|
```
|
|
|
|
### Existing ElasticSearch cluster
|
|
|
|
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.
|
|
|
|
|
|
## Connecting Nagios
|
|
|
|
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.
|
|
|
|
### New install of Nagios
|
|
|
|
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
|
|
```
|
|
|
|
### Existing install of Nagios
|
|
|
|
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.
|
|
{{% /capture %}}
|
|
|
|
|