Monitoring

The architecture of Prometheus and some of its ecosystem components

Fig. 21 The architecture of Prometheus and some of its ecosystem components.

The available Prometheus endpoints for monitoring Krill Manager components can be determined using the krillmanager status command:

# krillmanager status
...
...
...
  - Prometheus monitoring endponts:
    - Krill         : http://<YOUR DOMAIN>:9657/metrics
    - NGINX         : http://<YOUR DOMAIN>:9113/metrics
    - Docker        : http://<YOUR DOMAIN>:9323/metrics
    - O/S           : http://<YOUR DOMAIN>:9100/metrics
    ...

Note

Fluentd metrics are available from Krill Manager v0.2.2.

Note

In cluster mode the per-node metrics should be queried on the node you are interested in, Krill Manager does NOT aggregate cluster metrics for you.

Tip

Krill metrics can be queried on any cluster node, NGINX will fetch them from Krill on whichever cluster node the single Krill instance is running.

Visualisation

To visualise the monitoring endpoint metrics deploy your own Prometheus and Grafana servers, e.g. using these DigitalOcean Marketplace Apps:

Alternatively, if you don’t mind losing your monitoring and alerting if your server has problems, you could deploy Prometheus and Grafana on your Krill server like this.

Add stanzas like the following to the scrape_configs section of the prometheus.yml file on the Prometheus server and restart Prometheus:

scrape_configs:
  ...
  ...
  ...
  - job_name: 'krill'
    static_configs:
    - targets: ['<YOUR DOMAIN>:9657']

  - job_name: 'nginx'
    static_configs:
    - targets: ['<YOUR DOMAIN>:9113']

Add http://<PROMETHEUS DOMAIN OR IP>:9090 as a datasource to Grafana.

Then import Grafana Dashboards by ID, e.g.:

Alerting

Grafana can be configured to send notifications to a variety of destination types when alert conditions are met.