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 inventory grouping
- Fine grained control over dynamic client configurations
- Remote plugin deployment
- Automatic generation and dynamic deployment of SSL certs for secure communication between your clients and servers
- Highly configurable
Along with deploying the Sensu Server, API and clients, this role can deploy a full stack: RabbitMQ, redis, and the Uchiwa dashboard.
However, if you want to rely on other roles/management methods to deploy/manage these services, it's nice and easy to integrate this role.
Read the full documentation for a comprehensive overview of this role and its powerful features.
This role requires:
- Ansible 2.0
- The
dynamic_data_store
variable to be set: see Dynamic Data Store - If
sensu_include_plugins
is true (the default), thestatic_data_store
variable needs to be set: see Check Deployment
- SmartOS - base-64 15.x.x
- CentOS - 7
- Amazon Linux - only client side support is tested
- Debian - 8 (Jessie)
- Ubuntu - 15.04 (Vivid Vervet)
- FreeBSD - 10.2 (64-bit only)
- OpenBSD
- NetBSD
All variables have sensible defaults, which can be found in defaults/main.yml
.
The current version includes the following variables:
Name | Default Value | Description |
---|---|---|
sensu_deploy_rabbitmq |
true |
Determines whether or not to use this role to deploy/configure RabbitMQ |
sensu_deploy_redis |
true |
Determines whether or not to use this role to deploy/configure redis |
Note: The above options are intended to provide users with flexibility. This allows the use of other roles for deployment of these services. |
Name | Default Value | Description |
---|---|---|
rabbitmq_config_path |
/etc/rabbitmq |
Path to the RabbitMQ configuration directory |
rabbitmq_config_template |
rabbitmq.config.j2 |
The template to use for the RabbitMQ service configuration |
rabbitmq_host |
"{{ groups\['rabbitmq_servers']\[0] }}" |
The hostname/IP address of the RabbitMQ node |
rabbitmq_port |
5671 | The transmission port for RabbitMQ communications |
rabbitmq_pkg_state |
present | The state of the RabbitMQ package (should be set to present or latest ) |
rabbitmq_server |
false |
Determines whether to include the deployment of RabbitMQ |
rabbitmq_service_name |
rabbitmq-server | The name of the RabbitMQ service |
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 |
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_pkg_repo |
undefined | The PPA to use for installing redis from (specific to Debian flavored systems) |
redis_service_name |
redis | The name of the redis service |
redis_pkg_name |
redis | The name of the redis package to install |
redis_pkg_state |
present | The state of the redis package (should be set to present or latest ) |
redis_port |
6379 | The transmission port for redis communications |
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_rabbitmq_config |
rabbitmq.json.j2 |
Jinja2 template to use for RabbitMQ configuration |
sensu_config_path |
/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 |
sensu_remote_plugins |
undefined | A list of plugins to install via sensu-install (Ruby Gems) |
sensu_ssl_gen_certs: true
sensu_master_config_path: "{{ hostvars[groups['sensu_masters'][0]]['sensu_config_path'] }}"
sensu_ssl_tool_base_path: "{{ dynamic_data_store }}/{{ groups['sensu_masters'][0] }}{{ sensu_master_config_path }}/ssl_generation/sensu_ssl_tool"
sensu_ssl_client_cert: "{{ sensu_ssl_tool_base_path }}/client/cert.pem"
sensu_ssl_client_key: "{{ sensu_ssl_tool_base_path }}/client/key.pem"
sensu_ssl_server_cacert: "{{ sensu_ssl_tool_base_path }}/sensu_ca/cacert.pem"
sensu_ssl_server_cert: "{{ sensu_ssl_tool_base_path }}/server/cert.pem"
sensu_ssl_server_key: "{{ sensu_ssl_tool_base_path }}/server/key.pem"
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_users |
[{username: admin, password: admin}] | The users 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 |
uchiwa_pkg_download_sha256sum |
undefined | The SHA256 hash sum to use for verification of the Uchiwa package being fetched (specific to Linux systems) |
uchiwa_pkg_download_path |
undefined | The path to fetch the Uchiwa package to (specific to Linux systems) |
uchiwa_pkg_version |
undefined | The version of the Uchiwa package to fetch (specific to Linux systems) |
uchiwa_pkg_download_url |
undefined | The URL of the Uchiwa package to fetch (specific to Linux systems) |
Name | Default Value | Description |
---|---|---|
redis_pkg_repo |
'ppa:rwky/redis' |
The PPA to use for installing redis from |
Name | Default Value | Description |
---|---|---|
sensu_user_name |
root | The name of the Sensu service user |
sensu_group_name |
root | The name of the Sensu service user's primary group |
uchiwa_pkg_download_sha256sum |
See vars/Ubuntu.yml |
The SHA256 hash sum to use for verification of the Uchiwa package being fetched |
uchiwa_pkg_download_path |
/root/uchiwa_latest.deb |
The path to fetch the Uchiwa package to |
uchiwa_pkg_version |
See vars/Ubuntu.yml |
The version of the Uchiwa package to fetch (specific to Linux systems) |
uchiwa_pkg_download_url |
See vars/Ubuntu.yml |
The URL of the Uchiwa package to fetch |
Name | Default Value | Description |
---|---|---|
redis_pkg_repo |
'ppa:rwky/redis' |
The PPA to use for installing redis from |
redis_service_name |
redis-server | The name of the redis service |
Name | Default Value | Description |
---|---|---|
sensu_user_name |
root | The name of the Sensu service user |
sensu_group_name |
root | The name of the Sensu service user's primary group |
uchiwa_pkg_download_sha256sum |
See vars/Debian.yml |
The SHA256 hash sum to use for verification of the Uchiwa package being fetched |
uchiwa_pkg_download_path |
/root/uchiwa_latest.deb |
The path to fetch the Uchiwa package to |
uchiwa_pkg_version |
See vars/Debian.yml |
The version of the Uchiwa package to fetch (specific to Linux systems) |
uchiwa_pkg_download_url |
See vars/Debian.yml |
The URL of the Uchiwa package to fetch |
Name | Default Value | Description |
---|---|---|
sensu_user_name |
root | The name of the Sensu service user |
sensu_group_name |
root | The name of the Sensu service user's primary group |
uchiwa_pkg_version |
See vars/CentOS.yml |
The version of the Uchiwa package to fetch (specific to Linux systems) |
uchiwa_pkg_download_url |
See vars/CentOS.yml |
The URL of the Uchiwa package to fetch |
Name | Default Value | Description |
---|---|---|
rabbitmq_config_path |
/opt/local/etc/rabbitmq |
Path to the RabbitMQ configuration directory |
rabbitmq_service_name |
rabbitmq | The name of the RabbitMQ service |
Name | Default Value | Description |
---|---|---|
sensu_config_path |
/opt/local/etc/sensu |
Path to the Sensu configuration directory |
Name | Default Value | Description |
---|---|---|
sensu_config_path |
/usr/local/etc/sensu |
Path to the Sensu configuration directory |
sensu_pkg_version |
0.25.3_1 |
Version of Sensu to download and install |
sensu_pkg_download_url |
http://sensu.global.ssl.fastly.net/freebsd/10.0/amd64/sensu-{{ sensu_pkg_version }}.txz |
URL to download Sensu from |
sensu_pkg_download_path |
/root/sensu_latest.txz |
Path to store package file to |
Name | Default Value | Description |
---|---|---|
rabbitmq_service_name |
rabbitmq |
The name of the RabbitMQ service |
rabbitmq_config_path |
/usr/local/etc/rabbitmq |
Path to the RabbitMQ configuration directory |
- 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
Stephen Muth - (@smuth4)
Feel free to:
Contact me - @calumacrae, mailto:calum0macrae@gmail.com
Raise an issue
Contribute