Code Monkey home page Code Monkey logo

ansible-sensu's Introduction

Sensu Ansible Galaxy

Join the chat at https://gitter.im/cmacrae/ansible-sensu

This role deploys a full Sensu stack, a modern, open source monitoring framework.

Features

  • 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

Batteries included, but not imposed

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.

Documentation Documentation

Read the full documentation for a comprehensive overview of this role and its powerful features.

Requirements

This role requires Ansible 2.0

Supported Platforms

Current Release

Future Releases

  • OpenBSD
  • NetBSD

Role Variables

All variables have sensible defaults, which can be found in defaults/main.yml. The current version includes the following variables:

Defaults

Service Deployment Options

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_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/RabbitMQ SSL certificate properties

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_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
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)

Ubuntu

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

Debian

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

CentOS

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

SmartOS

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

FreeBSD

Name Default Value Description
sensu_config_path /usr/local/etc/sensu Path to the Sensu configuration directory
sensu_pkg_version 0.23.0_1 Version of Sensu to download and install
sensu_pkg_download_url http://core.sensuapp.com/freebsd-unstable/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

Example Playbook

  - hosts: all
    roles:
      - role: cmacrae.sensu

Or, passing parameter values:

  - hosts: sensu_masters
    roles:
	  - { role: cmacrae.sensu, sensu_master: true, sensu_include_dashboard: true  }

License

MIT

Author Information

Created by Calum MacRae

Contributors

Stephen Muth - (@smuth4)

Feel free to:
Contact me - @calumacrae, mailto:[email protected]
Raise an issue
Contribute

ansible-sensu's People

Contributors

gitter-badger avatar jaredledvina avatar lukyanov avatar smuth4 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.