cookbook 'shinken', '= 1.5.0'
shinken
(17) Versions
1.5.0
-
Follow5
Installs/Configures shinken
cookbook 'shinken', '= 1.5.0', :supermarket
knife supermarket install shinken
knife supermarket download shinken
shinken-cookbook
Set up the Shinken Monitor Server and its built in Web UI module.
Supported Platforms
Currently only tested on Ubuntu (and almost certainly will not work on RedHat).
Data Bags (Required)
These define the access credentials, email addresses, and phone numbers of the users for your Shinken system. You will need two data bag items, one encrypted and one unencrypted:
Users (this one's unencrypted)
Ideally this data bag is based on the structure from the Chef Users Cookbook, but all that's really required is that you create a data bag called users
with one user per item, and the user items should look (at minimum) like this:
{ "id": "testuser", "shinken": { "email": "testuser@domain.com", "phone": "6175551212", "is_admin": "1" } }
…with is_admin
being optional.
Credentials
This one can be anywhere you want. It's location is defined by these attributes:
node['shinken']['webui']['credentials_data_bag']
node['shinken']['webui']['credentials_data_bag_item']
…and its structure should look like this:
{ "id": "example_credentials_data_bag_item", "shinken": { "testuser": "PASSWORD" } }
Note that only the shinken
key is sourced, so it does not have to be in its own data bag.
Attributes
All attributes live under the node['shinken']
key. Attributes fall into two basic groups, global configuration and resource definitions
Currently only services and hostgroups resources can be defined. Everything else is automatically populated.
Global Configuration
-
user
- String - User to run Shinken (and all plugins) as (and own all of its config files). -
group
- String - Group to run Shinken (and all plugins) as.
The following will be parsed into their respective resource definition as such:
['key'] = 'value'
becomes key value
…so you can pretty much add any key detailed in the linked configuration and expect it to end up in the config files.
-
global_defaults
- Hash - Subkeys to this key will appear in resource definitions for all hosts and services. -
service_defaults
- Hash - Defaults for services (detailed here) -
host_defaults
- Hash - Defaults for hosts (detailed here)
Resource Definitions
-
hostgroups
- Hostgroups can either be defined with a search, e.g.:
json
{
"shinken": {
"hostgroups": {
"my-hostgroup": {
"search_str": "recipes:important-recipe\\:\\:default"
"conf": {
"alias": "My HostGroup"
}
}
}
}
}
…or they can be defined with an array of server names:
{ "shinken": { "hostgroups": { "my-hostgroup": { "members": [ "server-1", "server-2" ] "conf": { "alias": "My HostGroup" } } } } }
either way,
conf
defines the other keys in the resource, all of which are detailed in the Shinken docs.hostgroup_name
in the above example will automatically be set to "my-hostgroup". -
services
- Defined exactly according to the Shinken docs with little automation, e.g.:
json
{
"shinken": {
"services": {
"my-service": {
"hostgroup_name": "my-hostgroup",
"service_description": "My Service Check",
"check_command": "some_check_command",
"contact_groups": "admins"
}
}
}
}
key/value pairs are parsed directly into the resource definition file with defaults (defined above) automatically being merged in.
Usage
shinken::default
Include shinken
in a wrapper cookbook (or a node run list):
include_recipe 'shinken::default' include_recipe 'shinken::webui' include_recipe 'shinken::broker'
Contributing
- Fork the repository on Github
- Create a named feature branch (i.e.
add-new-recipe
) - Write your change
- Write tests for your change (if applicable)
- Run the tests, ensuring they all pass
- Submit a Pull Request
License and Authors
Author:: EverTrue, Inc. (devops@evertrue.com)
Dependent cookbooks
ark >= 0.0.0 |
apt >= 0.0.0 |
python >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
CHANGELOG
1.5.0
- Move different definition types into their own recipies
- Update install sources and associated checksums
- Delete old services and hostgroups
v1.4.0
- Add RuboCop config (#3)
- Fix convergence by removing nonexistent user from test-data cookbook (#3)
- Clean up unused files
- Clean up README
- Add Rakefile with test tasks
- Fix up some Foodcritic violations
- Fix up some RuboCop violations
- Add integration testing on Ubuntu 14.04
- Other misc. fixes to configs
v1.3.0
- Update source-based install URLs to point to more recent copies of Shinken & its Web UI
- Add install of cherrypy library as per Shinken’s
pip install
instruction
v1.2.1
- Forgot super-important "map" method call
v1.2.0
- Delete hosts and hostgroups if they no longer exist in the environment
- Replace references to /etc/shinken with an attribute
- Switch to rspec3 test syntax
v1.1.2
- Add attribute for shinken agent user
v1.1.1
- Add private key install code so that we can use check_by_ssh
v1.1.0
- Add a "from source" install method and include a way to differentiate between that and "from package"
v1.0.6
- Fix command name in check_http_content (to make it reflect the file name)
v1.0.5
- Add command: check_http_content
v1.0.4
- Attribute-ize host search string
v1.0.3
- Move definitions to earlier in the process
v1.0.2
- Add check_http command
v1.0.1
Initial release of shinken
-
Enhancements
- an enhancement
-
Bug Fixes
- a bug fix
Foodcritic Metric
1.5.0 failed this metric
FC003: Check whether you are running with chef server before using server-specific features: /tmp/cook/4c2e73990969c5d783fe9fc2/shinken/recipes/_hostgroups.rb:22
FC003: Check whether you are running with chef server before using server-specific features: /tmp/cook/4c2e73990969c5d783fe9fc2/shinken/recipes/_hosts.rb:1
FC003: Check whether you are running with chef server before using server-specific features: /tmp/cook/4c2e73990969c5d783fe9fc2/shinken/recipes/_users.rb:8
FC031: Cookbook without metadata file: /tmp/cook/4c2e73990969c5d783fe9fc2/shinken/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/4c2e73990969c5d783fe9fc2/shinken/metadata.rb:1
1.5.0 failed this metric
FC003: Check whether you are running with chef server before using server-specific features: /tmp/cook/4c2e73990969c5d783fe9fc2/shinken/recipes/_hosts.rb:1
FC003: Check whether you are running with chef server before using server-specific features: /tmp/cook/4c2e73990969c5d783fe9fc2/shinken/recipes/_users.rb:8
FC031: Cookbook without metadata file: /tmp/cook/4c2e73990969c5d783fe9fc2/shinken/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/4c2e73990969c5d783fe9fc2/shinken/metadata.rb:1