juju controller

Description

In order to add subordinate charms such as nrpe, we need to have a primary
unit to relate them to. This charm provides that primary.


Overview

This charm provides a principal Juju unit so that we relate things like nrpe,
landscape-client, etc., to service the Juju controllers in a controller model.
Typically we want to do this when we have Nagios in a separate model and wish
to use cross model relations to allow monitoring and updates of the controller
machines.

Usage

In order to monitor a controller on machine 0 in a model named 'controller':

juju switch controller
juju deploy cs:~xavpaice/juju-controller --to 0 juju-controller
juju deploy cs:nrpe nrpe-controller
juju add-relation nrpe-controller juju-controller
juju config nrpe-controller nagios_host_context=mysitename
juju offer nrpe-controller:monitors
  Application "nrpe" endpoints [monitors] available at "admin/controller.nrpe-controller"

juju switch $nagiosmodel
juju add-relation nagios admin/controller.nrpe-controller

You can alternately use this as a bundle, for example:

applications:
  juju-controller:
    charm: cs:~xavpaice/juju-controller
    num_units: 1
    to:
      - 0
  nrpe-controller:
    charm: cs:nrpe
    options:
      nagios_host_context: my_sitename
  ntp:
    charm: cs:ntp
  landscape-client-controller:
    charm: cs:landscape-client-30
    options:
      account-name: standalone
      disable-unattended-upgrades: true
      origin: ppa:landscape/17.03
  telegraf-controller:
    charm: cs:telegraf
  filebeat-controller:
    charm: cs:filebeat

machines:
  '0':
    series: xenial

relations:
- - nrpe-controller:nrpe-external-master
  - juju-controller:nrpe-external-master
- - juju-controller:juju-info
  - ntp:juju-info
- - juju-controller:juju-info
  - filebeat-controller:beats-host
- - juju-controller:juju-info
  - landscape-client-controller:container
- - juju-controller:juju-info
  - telegraf-controller:juju-info

To get the offers for other apps, try:

$ juju offer filebeat-controller:logstash
Application "filebeat-controller" endpoints [logstash] available at "admin/controller.filebeat-controller"
$ juju offer telegraf-controller:prometheus-client
Application "telegraf-controller" endpoints [prometheus-client] available at "admin/controller.telegraf-controller"
$ juju offer landscape-client-controller:registration
Application "landscape-client-controller" endpoints [registration] available at "admin/controller.landscape-client-controller"
juju switch $model
juju add-relation prometheus:target admin/controller.telegraf-controller
juju add-relation graylog admin/controller.filebeat-controller

Bugs

https://bugs.launchpad.net/charm-juju-controller

Configuration

nagios_servicegroups
(string) A comma-separated list of nagios servicegroups. If left empty, the nagios_context will be used as the servicegroup
nagios_context
(string) Used by the nrpe subordinate charms. A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like: juju-myservice-0 If you're running multiple environments with the same services in them this allows you to differentiate between them.
juju