This role deploys a full Sensu stack, a modern, open source monitoring framework.
- Deploy a full Sensu stack, including RabbitMQ, Redis, and the Uchiwa dashboard
- Tight integration with the Ansible inventory - deployment of monitoring checks based on role defined in your inventory
- Automatic generation and dynamic deployment of SSL certs for secure communication between your clients and servers
- Highly configurable
Read the full documentation for a comprehensive overview of this role and its powerful features.
In this initial release SmartOS will be the only supported platform. However, I am dedicating a lot of time to this role and will be adding support for all major BSD & Linux platforms.
- OpenBSD
- FreeBSD
- NetBSD
- EL
- Ubuntu / Debian
All variables have sensible defaults, which can be found in defaults/main.yml
.
The current version includes the following variables:
RabbitMQ Server Properties - Sensu RabbitMQ documentation
Name | Default Value | Description |
---|---|---|
rabbitmq_config_path | /opt/local/etc/rabbitmq | Path to the RabbitMQ configuration directory |
rabbitmq_host | "{{ groups['rabbitmq_servers'][0] }}" | The hostname/IP address of the RabbitMQ node |
rabbitmq_port | 5671 | The transmission port for RabbitMQ communications |
rabbitmq_server | false | Determines whether to include the deployment of RabbitMQ |
rabbitmq_sensu_user_name | sensu | Username for authentication with the RabbitMQ vhost |
rabbitmq_sensu_password | sensu | Password for authentication with the RabbitMQ vhost |
rabbitmq_sensu_vhost | /sensu | Name of the RabbitMQ Sensu vhost |
Redis Server Properties - Sensu Redis documentation
Name | Default Value | Description |
---|---|---|
redis_host | "{{ groups['redis_servers'][0] }}" | Hostname/IP address of the Redis node |
redis_server | false | Determines whether to include the deployment of Redis |
redis_port | 6379 | The transmission port for Redis communications |
Sensu Properties - Sensu services documentation
Name | Default Value | Description |
---|---|---|
sensu_api_host | "{{ groups['sensu_masters'][0] }}" | Hostname/IP address of the node running the Sensu API |
sensu_api_port | 4567 | Transmission port for Sensu API communications |
sensu_api_ssl | "false" | Determines whether to use SSL for Sensu API communications |
sensu_api_user_name | admin | Username for authentication with the Sensu API |
sensu_api_password | secret | Password for authentication with the Sensu API |
sensu_api_uchiwa_path | '' | Path to append to the Sensu API URI for Uchiwa communications |
sensu_api_timeout | 5000 | Value to set for the Sensu API timeout |
sensu_client_config | client.json.j2 | Jinja2 template to use for node configuration of the Sensu Client service |
sensu_config_path | /opt/local/etc/sensu | Path to the Sensu configuration directory |
sensu_gem_state | present | State of the Sensu gem - can be set to latest to keep Sensu updated |
sensu_plugin_gem_state | present | State of the Sensu Plugins gem - can be set to latest to keep Sensu Plugins updated |
sensu_group_name | sensu | The name of the Sensu service user's primary group |
sensu_include_plugins | true | Determines whether to include the sensu-plugins gem |
sensu_include_dashboard | false | Determines whether to deploy the Uchiwa dashboard |
sensu_master | false | Determines if a node is to act as the Sensu "master" node |
sensu_user_name | sensu | The name of the Sensu service user |
Uchiwa Properties - Uchiwa documentation
Name | Default Value | Description |
---|---|---|
uchiwa_dc_name | undefined | Datacenter name for Uchiwa instance |
uchiwa_path | /opt/uchiwa | Path to the Uchiwa configuration directory |
uchiwa_redis_use_ssl | false | Determines whether to use SSL for Redis communication |
uchiwa_user_name | admin | The user-name to log into Uchiwa |
uchiwa_password | admin | The password to log into Uchiwa |
uchiwa_port | 3000 | The TCP port to bind the Uchiwa web service to |
uchiwa_refresh | 5 | The interval to pull the Sensu APIs in seconds |
Note: A few of these defaults will be moving tovars
in the near future due to the addition of other OS support
- hosts: all
roles:
- role: cmacrae.sensu
Or, passing parameter values:
- hosts: sensu_masters
roles:
- { role: cmacrae.sensu, sensu_master: true, sensu_include_dashboard: true }
MIT
Created by Calum MacRae
Feel free to:
Contact me - @calumacrae, mailto:calum0macrae@gmail.com
Raise an issue
Contribute