cookbook 'zabbix-ruby-client', '= 0.0.10'
zabbix-ruby-client (5) Versions 0.0.10 Follow1
Installs/Configures Zabbix-ruby-client
cookbook 'zabbix-ruby-client', '= 0.0.10', :supermarket
knife supermarket install zabbix-ruby-client
knife supermarket download zabbix-ruby-client
Zabbix Ruby Client Cookbook
This cookbook is designed for installing zabbix-ruby-client on an Ubuntu server, with zabbix-sender v2.2. It's based on the version 0.1.0 of zabbix-ruby-client (called zrc for short).
The principle of it is to use the chef client embedded ruby from /opt/chef/embedded/bin
so there is no need to install a system or versionned ruby on all servers just for that.
Tested in the kitchen on
- Ubuntu 12.04
- Ubuntu 14.04
- CentOs 5.10
- CentOs 6.5
It should also work on RHEL 5 and 6, Oracle Linux 5 and 6, Debian 6 and 7.
It will install:
- the zabbix source list for ubuntu
- the zabbix-sender package
- the zabbix-ruby-client from rubygems (or from github if node.zrc.development = true) using the chef embedded
gem
command - a
/etc/default/zrc
with a flag to run it or not - config.yml and tasks (minutely.yml) in
/etc/zrc/
- a
zrc
system user with a home in/var/lib/zrc
- a data dir at
/var/cache/zrc
- a log dir at
/var/log/zrc
- a rotatelog config to rotate the logs every week
- a bash wrapper in
/usr/bin/zrc_send
that launches zrc using the chef embedded ruby version - a cronfile gathering the triggering of all tasks at
/etc/cron.d/zabbix
Attributes
Attribute | Default | Description |
---|---|---|
zrc.version | "0.1.0" | Version of the zabbix-ruby-client to install (if development is false) |
zrc.enabled | true | If not enabled the cronjob is disabled |
zrc.admin_email | "root" | email or unix account used in the .forward in the home of the zrc user |
zrc.ruby_bin | "/opt/chef/embedded/bin/ruby" | path to the ruby used by zrc |
zrc.gem_bin | "/opt/chef/embedded/bin/gem" | path to the gem command used to install zrc |
zrc.binpath | "/opt/chef/embedded/bin/zrc" | path where the zrc command will be installed |
zrc.zrc_send | "1" | if set to "0" disables the sending of data |
zrc.development | false | if set to true, use github master branch rather than the published gem version |
zrc.repo_url | "https://github.com/eduvo/zabbix-ruby-client.git" | if zrc.development is true, this repo will be used for getting the gem source |
zrc.repo_branch | "master" | if zrc.development is true, this branch will be used for getting the gem source |
zrc.server.host | "localhost" | url of the zabbix server |
zrc.server.port | "10051" | port of the trapper daemon on the zabbix server |
zrc.schedule | see below | schedule object used to build the tasks files and cron file |
Default schedule
{ "minutely": { "cron": "* * * * *", "tasks": [ { "name": "load" }, { "name": "memory" }, { "name": "cpu" } ] }, "hourly": { "cron": "0 * * * *", "tasks": [ { "name": "apt" } ] }, "monthly": { "cron": "0 0 1 * *", "tasks": [ { "name": "sysinfo" } ] } }
if you want to add values to the schedule, use default_attribute
in a role file. For example I have a zrc-linode.json
, which adds disk and network interface to the minutely task role with:
{ "name": "zrc-linode", "chef_type": "role", "json_class": "Chef::Role", "description": "ZRC linode eth and disks", "default_attributes": { "zrc": { "schedule": { "minutely": { "tasks": [ { "name": "disk", "args": "[ xvda, /, xvda ]" }, { "name": "network", "args": "[ eth0 ]" } ] } } } } }
If you need to overwrite the default values, you can use overwrite_attributes
.
Debugging
By setting zrc.zrc_send
to '0', the cronjobs still run but they are not passed to zabbix_sender, they are sent to output, then sent to the admin_email, so you can check if the values are collected properly.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Contributors
- @mose - author
License
Copyright 2013 Faria Systems - MIT license - created by mose at mose.com
Dependent cookbooks
logrotate ~> 1.6.0 |
git ~> 4.0.2 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Zabbix Ruby Client Cookbook CHANGELOG
This file is used to list changes made in each version of the zabbix-ruby-client cookbook.
0.0.10 - 2014-08-24
- [mose] fix on the
zrc.enable
syntax
0.0.9 - 2014-08-24
- [mose] add a
zrc.enabled
attribute to inhibit cron job - [mose] ass a
zrc.repo_url
for development so a fork can be used for zabbix-ruby-client - [mose] ass a
zrc.repo_branch
for development so an arbitrary branch can be used for zabbix-ruby-client
0.0.8 - 2014-08-23
- [mose] write tests using kitchen-docker
- [mose] make tests work on mac when using docker-osx
- [mose] refactor for centos compatibility
- [mose] first publication on the Supermarket
0.0.1 - 2014-08-20
- [mose] Initial preparation of the cookbook