Skip to content

pepabo/puppet-mackerel_agent

 
 

Repository files navigation

Puppet module for mackerel-agent

Puppet Forge Dependency Status Build Status

Table of Contents

  1. Overview - What is the mackerel_agent module?
  2. Setup - The basics of getting started
  3. Usage - How to use the module
  4. Limitations - OS compatibility, etc.
  5. Development - Guide for contributing to the module

Overview

This Puppet module install and configure mackerel-agent.

Setup

Install via Puppet Forge:

$ puppet module install tomohiro-mackerel_agent

Usage

class { 'mackerel_agent':
  apikey              => 'Your API Key',
  roles               => ['service:web', 'service:database'],
  host_status         => {
    on_start => 'working',
    on_stop  => 'poweroff'
  },
  ignore_filesystems  => '/dev/ram.*',
  use_metrics_plugins => true,
  use_check_plugins   => true,
  metrics_plugins     => {
    apache2     => '/usr/local/bin/mackerel-plugin-apache2',
    php-opcache => '/usr/local/bin/mackerel-plugin-php-opcache'
  },
  check_plugins       => {
    access_log => '/usr/local/bin/check-log --file /var/log/access.log --pattern FATAL',
    check_cron => '/usr/local/bin/check-procs -p crond'
    check_ssh  => {
      command               => 'ruby /path/to/check-ssh.rb',
      notification_interval => '60',
      max_check_attempts    => '3',
      check_interval        => '5'
    }
  },
  mkr_plugins         => {
    'mackerel-plugin-sample' => {},
    'mackerel-plugin-json' => {}
  }
}

Hiera

mackerel_agent::apikey: 'Your API Key'
mackerel_agent::roles:
  - 'service:web'
  - 'service:database'
mackerel_agent::host_status:
  on_start: working
  on_stop: poweroff
mackerel_agent::ignore_filesystems: '/dev/ram.*'
mackerel_agent::use_metrics_plugins: true
mackerel_agent::use_check_plugins: true
mackerel_agent::metrics_plugins:
  apache2: '/usr/local/bin/mackerel-plugin-apache2'
  php-opcache: '/usr/local/bin/mackerel-plugin-php-opcache'
mackerel_agent::check_plugins:
  access_log: '/usr/local/bin/check-log --file /var/log/access.log --pattern FATAL'
  check_cron: '/usr/local/bin/check-procs -p crond'
  ssh:
    command: 'ruby /path/to/check-ssh.rb'
    notification_interval: '60'
    max_check_attempts: '3'
    check_interval: '5'
mackerel_agent::mkr_plugins:
  mackerel-plugin-sample: {}
  mackerel-plugin-json: {}

Limitations

These operation systems are supported.

  • RHEL 6
  • CentOS 6
  • Debian 7
  • Ubuntu 14.04

The person who want to add an operating system to supported list should implement it himself.

Development

Requirements

  • Puppet 3.7 or later
  • librarian-puppet

Setup development environments

Install dependencies:

$ bundle install --path vendor/bundle
$ bundle exec librarian-puppet install

You can run smoke tests:

$ export MACKEREL_API_KEY="your api key" # Export a your mackerel API key
$ vagrant up
$ vagrant provision

Testing

Unit tests:

$ bundle exec rake spec

Acceptance tests:

$ export DOCKER_HOST=tcp://your-docker-host-ip:port
$ BEAKER_set=centos-6-x64 bundle exec rake beaker

Contributing

See CONTRIBUTING guideline.

LICENSE

© 2014 - 2016 Tomohiro TAIRA.

This project is licensed under the Apache License, Version 2.0. See LICENSE for details.