Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

RSS

monit-ng (31) Versions 1.8.0

Installs and configures monit

Berkshelf/Librarian
Policyfile
Knife
cookbook 'monit-ng', '= 1.8.0'
cookbook 'monit-ng', '= 1.8.0', :supermarket
knife cookbook site install monit-ng
knife cookbook site download monit-ng
README
Dependencies
Changelog
Quality 100%

Chef monit cookbook Build Status

Installs and configures Monit, with a resource provider for managing additional monit checks.

Recipes

  • monit::default: installs and optionally configures monit
  • monit::repo: installs monit from a package repository
  • monit::source: installs monit from source
  • monit::config: configures monit
  • monit::{crond,ntpd,postfix,rsyslog,sshd}: install common service checks

Dependencies

  • yum-epel (on rhel hosts)
  • ubuntu (on ubuntu hosts)
  • apt (on debian hosts)
  • build-essential (if installing from source)

Attributes

  • default['monit']['install_method'] (default: repo): whether to install using repository or source, options: repo, source

  • default['monit']['configure'] (default: true): should we setup the global config

  • default['monit']['conf_file'] (default: calculated): monit configuration file

  • default['monit']['conf_dir'] (default: calculated): .monitrc configuration files directory

  • default['monit']['init_style'] (default: calculated): monit service init style

  • default['monit']['config']['mmonit_url'] (default: nil): mmonit url

  • default['monit']['config']['poll_freq'] (default: 60): how often should monit poll

  • default['monit']['config']['start_delay'] (default: 5): configure a delay before beginning polling after service start

  • default['monit']['config']['eventqueue_dir'] (default: /var/tmp): where to queue events if mail server unavailable

  • default['monit']['config']['eventqueue_slots'] (default: 100): events backlog queue size

  • default['monit']['config']['log_file'] (default: /var/log/monit.log): monit log file location

  • default['monit']['config']['id_file'] (default: /var/lib/monit.id): monit system id file location

  • default['monit']['config']['state_file'] (default: /var/run/monit.state): where to save state between startups

  • default['monit']['config']['port'] (default: 2812): monit web interface listener port

  • default['monit']['config']['listen'] (default: 127.0.0.1): monit web interface listener address

  • default['monit']['config']['allow'] (default: localhost): list of permitted control port accessors (host, basic-auth, pam, htpasswd)

  • default['monit']['config']['mail_from'] (default: node fqdn | localhost): email notification from address

  • default['monit']['config']['mail_subject'] (default: $SERVICE $EVENT at $DATE): notification email subject

  • default['monit']['config']['mail_message'] (default: text): email notification body

  • default['monit']['config']['alert'] (default: []): this attributes configures set alert config option for each Hash element with attribute name and optional event filters

Documentation for event filters can be found at https://mmonit.com/monit/documentation/monit.html#Setting-an-event-filter

      "default_attributes": {
        "monit": {
          "config": {
            "alert": [
              {
                "name": "root@localhost",
                "but_not_on": [ "nonexist" ]
              },
              {
                "name": "netadmin@localhost",
                "only_on": [ "nonexist", "timeout", "icmp", "connection"]
              },
              {
                "name": "iwantall@localhost",
              }
            ]
          }
        }
      }
  • default['monit']['config']['mail_servers'] (default: []): this attributes configures set mailserver config option for each Hash element (mail server) with below attributes:
      "default_attributes": {
        "monit": {
          "config": {
            "mail_servers": [
              {
                "hostname": "localhost",
                "port": 25,
                "username": null,
                "password": null,
                "security": null,
                "timeout": "30 seconds"
              }
            ]
          }
        }
      }

monit_check resource examples

External Service Check
monit_check 'facebook_api' do
  check_type  'host'
  check_id    'api.facebook.com'
  group       'external'
  tests [
    {
      'condition' => 'failed port 80 proto http',
      'action'    => 'alert'
    },
    {
      'condition' => 'failed port 443 type tcpSSL proto http',
      'action'    => 'alert'
    },
  ]
end
SSHD
monit_check 'sshd' do
  check_id  '/var/run/sshd.pid'
  group     'system'
  start     '/etc/init.d/ssh start'
  stop      '/etc/init.d/ssh stop'
  tests [
    {
      'condition' => "failed port #{node.openssh.server.port} proto ssh for 3 cycles",
      'action'    => 'restart'
    },
    {
      'condition' => '3 restarts within 5 cycles',
      'action'    => 'alert'
    },
  ]
end
Postfix
monit_check 'postfix' do
  check_id  '/var/spool/postfix/pid/master.pid'
  group     'system'
  start     '/etc/init.d/postfix start'
  stop      '/etc/init.d/postfix stop'
  tests [
    {
      'condition' => 'failed port 25 proto smtp',
      'action'    => 'restart'
    },
    {
      'condition' => '3 restarts within 5 cycles',
      'action'    => 'alert'
    },
  ]
end
Nginx
monit_check 'nginx' do
  check_id  '/var/run/nginx.pid'
  group     'app'
  start     '/etc/init.d/nginx start'
  stop      '/etc/init.d/nginx stop'
  tests [
    {
      'condition' => 'failed port 80',
      'action'    => 'restart'
    },
    {
      'condition' => '3 restarts within 5 cycles',
      'action'    => 'alert'
    }
  ]
end
Memcache
monit_check 'memcache' do
  check_id  '/var/run/memcached.pid'
  group     'app'
  start     '/etc/init.d/memcached start'
  stop      '/etc/init.d/memcached stop'
  tests [
    {
      'condition' => 'failed port 11211 proto memcache',
      'action'    => 'restart'
    },
    {
      'condition' => '3 restarts within 15 cycles',
      'action'    => 'alert'
    },
  ]
end
Redis
monit_check 'redis' do
  check_id  '/var/run/redis/redis-server.pid'
  group     'database'
  start     '/etc/init.d/redis-server start'
  stop      '/etc/init.d/redis-server stop'
  tests [
    {
      'condition' => 'failed host 127.0.0.1 port 6379
                     send "SET MONIT-TEST value\r\n" expect "OK"
                     send "EXISTS MONIT-TEST\r\n" expect ":1"',
      'action'    => 'restart'
    },
    {
      'condition' => '3 restarts within 5 cycles',
      'action'    => 'alert'
    },
  ]
end
Solr
monit_check 'solr' do
  check_id  '/var/run/tomcat6.pid'
  group     'app'
  start     '/etc/init.d/tomcat6 start'
  stop      '/etc/init.d/tomcat6 stop'
  tests [
    {
      'condition' => 'failed port 8080 proto http and request "/solr/admin/ping" for 2 cycles',
      'action'    => 'restart'
    },
    {
      'condition' => '3 restarts within 5 cycles',
      'action'    => 'timeout'
    },
  ]
end
MongoDB
monit_check 'mongo' do
  check_id  "#{node.mongodb.dbpath}/mongod.lock"
  group     'database'
  start     '/etc/init.d/mongodb start'
  stop      '/etc/init.d/mongodb stop'
  tests [
    {
      'condition' => "failed port #{node.mongodb.port} proto http for 2 cycles",
      'action'    => 'restart with timeout 60 seconds'
    },
    {
      'condition' => '3 restarts within 10 cycles',
      'action'    => 'timeout'
    },
  ]
end

Contributing

  1. Fork the repository on Github
  2. Create a named feature branch (like add_component_x)
  3. Write your change
  4. Write tests for your change (if applicable)
  5. Run the tests (rake), ensuring they all pass
  6. Write new resource/attribute description to README.md
  7. Write description about changes to PR
  8. Submit a Pull Request using Github

Authors:: Nathan Williams and Contributors

<pre> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </pre>

1.8.0 / 2015-06-11

  • better version comparison for old SSL bug
  • fix check_id attribute to support check_type "system". thanks @jorhett!
  • update proactive reload ruby_block naming for clarity
  • permit disabling proactive reloads

1.7.0 / 2015-06-05

  • add alert, but_not_on, alert_events attributes for per-check alert event control (thanks @cpakman!)

1.6.4 / 2015-05-15

  • fix upstart service name for postfix (thanks @szymonpk!)
  • use verify attribute on control file templates when using Chef >= 12

1.6.3 / 2015-05-06

  • update to latest monit release

1.6.2 / 2015-04-16

  • start monit service later to enable chef run to cleanup busted LWRP includes that cause service start failures (thanks @vkhatri!)

1.6.1 / 2015-03-26

  • bugfix: correct stop_as/stop_as_group var map for check template (thanks @mattadair!)

1.6.0 / 2015-03-23

  • adding gid support for start_as and stop_as (start_as_group, stop_as_group attributes) (thanks @mattadair!)
  • update to version 5.12.2

1.5.2 / 2015-03-15

  • add stop_as support

1.5.1 / 2015-03-09

  • update to latest monit version

1.5.0 / 2015-03-02

Features/Fixes: * use latest monit (5.12) for source install * skip yum-epel setup on amazon linux (thanks @vkhatri!) * enforce upcased mailserver security values (thanks @vkhatri!) * better reflect upstream configuration defaults by not specifying default mailservers/subscribers list (thanks @vkhatri!) * improved documentation (thanks @vkhatri!) * update global config template to support multiple or empty mail_servers config

Known Issues: * Monit 5.12 may segfault on some platforms when system hostname resolving fails

1.4.1 / 2015-01-04

  • testing updates
  • documentation updates/corrections (thanks NinjaTux!)
  • add quote-wrapping of smtp username/password (thanks alappe!)
  • update to monit release 5.11

1.4.0 / 2014-11-04

  • updated to monit 5.10 for source-install
  • better support for multiple init systems
  • improved support for reloading service if monit_check resources updated during the run

1.3.1 / 2014-10-29

  • update bundle and fix up foodcritic, rubocop, chefspec
  • add chefspec coverage reporting to list uncovered resources
  • move service provider selection into attributes to facilitate wrapper cookbooks choosing preference

1.3.0 / 2014-10-29

  • consolidate suite runlist into setup
  • bugfix: correct service check start/stop commands under systemd
  • bugfix: fix duplicate service notifications from monit_check resources
  • remove snmpd recipe
  • update the setup recipe to: install all needed services, set up non-pid-having services under systemd to have a pid, include all core-service recipes
  • expand integration testing to cover all core-service checks, rootfs check

1.2.1 / 2014-10-23

  • tidies up 1.2.0, simplifies service provider selection, fixes foodcritic warnings

1.2.0 / 2014-10-23

  • update source package to 5.9
  • prefer upstart init on ubuntu >= 12.04
  • prefer systemd init on centos >= 7.0
  • unwind sysv init on upstart/systemd platforms to help migrate from pre-1.2.0 cookbook (to be removed in 1.3)
  • spec updates for serverspec 2.0
  • bug-fix: correct LSB headers in sysv script to fix debian support
  • add debian to test platforms
  • use cookbook_name when loading our own recipes

1.1.5 / 2014-10-11

  • update check_pairs to support multiple id_types for a check (thanks @vkhatri!)
  • add matching id_type for process checks (thanks @vkhatri!)

1.1.4 / 2014-09-10

  • add start config for /etc/default/monit in Ubuntu 14.04 (thanks @kevit!)

1.1.3 / 2014-09-05

  • update source install to 5.8.1

1.1.2 / 2014-09-05

  • rename to monit-ng

1.1.0 / 2014-04-26

  • fix default overriding instance args

1.0.2 / 2014-04-26

  • code cleanup
  • cleaner attributes

1.0.0 / 2014-04-25

  • release version 1.0.0

Foodcritic Metric
            

1.8.0 passed this metric