You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Monitor and instrument Kowabunga services
4
4
weight: 2
5
5
---
6
+
7
+
Kowabunga comes with bundled support for metrology and instrumentation. No one would ever deploy and maintain a blackbox infrastructure and support it empty handed.
8
+
9
+
If you're SysAdmin (or DevOps, whatever the name now), and are willing care about monitoring, you'e got 2 options:
10
+
11
+
- Use you're already existing and in-place monitoring stack and tools.
12
+
- Rely on Kowabunga-bundled ones.
13
+
14
+
In the second option, **Kowabunga** optionnally comes bundled with:
15
+
16
+
-[Grafana](https://grafana.com/oss/grafana/), [VictoriaMetrics](https://victoriametrics.com/products/open-source/) and [VictoriaLogs](https://victoriametrics.com/products/victorialogs/), hosted on **Kahuna** server, providing logs and metrics TimeSeries database storage and observability dashboards.
17
+
-[Grafana Alloy](https://grafana.com/oss/alloy-opentelemetry-collector/) agent, hosted on **Kahuna**, **Kiwi** and **Kaktus** nodes, collecting data and streaming to **Kahuna**.
18
+
19
+
## DNS Configuration
20
+
21
+
Let's start by defining two new public endpoints for metrics and logs collection. We'll expose them over HTTPS on **Kahuna** so that all infrastructure nodes will be shipping data to.
22
+
23
+
In our example, we'll use **metrics.acme.com** and **logs.acme.com** as new receiving endpoint. Note that both endpoints will be filtered by HTTPS Basic Authentication so only genuine infrastructure nodes can push to. We'll also be using **grafana.acme.com** as the monitoring instance. Please make sure to configure your DNS registrar accordingly (manually or through TF or such), so these subdomains match your **Kahuna** public IP address.
24
+
25
+
## Client-Side Enablement
26
+
27
+
Next, we'll extend our infrastructure's declarations in Ansible. For that, we'll:
28
+
29
+
- globally enabled metrology capability.
30
+
- enable agent's deployment on all infrastructure instances.
31
+
- declare the public metrics and logs receiving endpoints.
32
+
- set secure credentials for client/server data shipment and collection.
33
+
34
+
As to do so, extend your platform's **ansible/inventories/group_vars/all/main.yml** file with the following:
and apply for changes on all **Kiwi** and **Kaktus** instances:
52
+
53
+
```sh
54
+
$ kobra ansible deploy -p kowabunga.cloud.kiwi
55
+
$ kobra ansible deploy -p kowabunga.cloud.kaktus
56
+
```
57
+
58
+
Once done, all your private instances should now have a running **Grafana Alloy** agent, collecting the various local metrics (CPU usage, memory, network, disk, libvirt, Ceph ...) and associated logs an pushing them to **Kahuna** remote endpoint.
59
+
60
+
## Server-Side Enablement
61
+
62
+
It's now time to handle server-side counter part. Let's enable these into **Kahuna**'s configuration by extending the **ansible/inventories/group_vars/kahuna/main.yml** file:
Note that in our example, we've limited metrics and logs retention server-side to 7 days. We'll free to define different persistence duration that suits your needs.
81
+
82
+
Following [Ansible collection documentation](https://ansible.kowabunga.cloud/kowabunga/cloud/metrology_role.html#ansible-collections-kowabunga-cloud-metrology-role), you can also pre-configure addidtional Grafana users for your organization, e.g:
83
+
84
+
```yaml
85
+
kowabunga_metrology_dashboard_extra_users:
86
+
- name: John Doe
87
+
login: jdoe
88
+
email: jdoe@acme.com
89
+
password: A_STRONG_ONE
90
+
```
91
+
92
+
Again, apply for changes on all **Kahuna** instance:
93
+
94
+
```sh
95
+
$ kobra ansible deploy -p kowabunga.cloud.kahuna
96
+
```
97
+
98
+
Once done, **Kahuna** will then starts collecting data from all infrastructure node (push, not pull) and **Grafana** will be ready to be consumed.
99
+
100
+
## Provisioning Grafana dashboards
101
+
102
+
This stage unfortunately cannot be automated at the moment ;-(
103
+
104
+
Kowabunga comes bundled with ready-to-be-consumed dashboards. They are maintained in a dedicated [GitHub repository](https://github.com/kowabunga-cloud/grafana-dashboards) and, if you're familiar with Grafana, can't be simply copy/pasted or imported.
105
+
106
+
Best option however is to take profit of [Grafana v12 Git Sync feature](https://grafana.com/docs/grafana/latest/observability-as-code/provision-resources/git-sync-setup/). It allows you to seamlessly connect your Grafana instance to our (or yours forked one) [GitHub dashboard repository](https://github.com/kowabunga-cloud/grafana-dashboards).
107
+
108
+
Once configured, Grafana will automatically pull for any changes (so you're always up-to-date) and any edition you'd make would automatically trigger a pull-request on save.
109
+
110
+
Setup can be performed (manually only) through **Administration / Provisioning** menu, as detailed below:
You'll need to first setup a [GitHub Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) (or PAT) to Kowabunga' repository (or yours, for convenience).
0 commit comments