Installs the monit package from (http://mmonit.com/monit/).
The following platforms are supported by this cookbook, meaning that the recipes run on these platforms without error:
- Ubuntu
- Debian
- RedHat
- CentOS
- Scientific
- Fedora
- SUSE
- Amazon
monit- The default recipe. Sets up the service definition and default checks.
The following will create a monitrc configuration:
monit_monitrc"ssh"dovariables({category: "system"})endThe name parameter must match a file located in your templates directory. In the example above, this would be ssh.monitrc.erb.
The variables option within the block is optional, and can contain a list of key-value pairs to assign within your template.
This cookbook installs the monit components if not present, and pulls updates if they are installed on the system.
# Delay the start of polling when the service is starteddefault["monit"]["start_delay"]=0# How frequently the monit daemon polls for changes.default["monit"]["polling_frequency"]=20# Use syslog for logging instead of a logfile.default["monit"]["use_syslog"]=true# If not using syslog, the log file that monit will use.default["monit"]["logfile"]="/var/log/monit.log"# Where Monit stores unique Monit instance iddefault["monit"]["idfile"]="/var/.monit.id"# Where Monit stores Monit state filedefault["monit"]["statefile"]="/var/lib/monit/state"# Enable emails for internal monit alertsdefault["monit"]["mail_alerts"]=true# Ignore alerts for specific events# Possible events include: action, checksum, connection, content, data, exec, fsflags, gid, icmp, instance, invalid, nonexist, permission, pid, ppid, resource, size, status, timeout, timestamp, uid, uptime.default["monit"]["alert_ignore_events"]=[]# Email address that will be notified of events.default["monit"]["alert_email"]="root@localhost"# Enable the web interface and define credentials.default["monit"]["web_interface"]={enable: true,port: 2812,address: "localhost",allow: ["localhost","admin:b1gbr0th3r"]}# Email settings that will be used for notification of events.default["monit"]["mail"]={hostname: "localhost",port: 25,username: nil,password: nil,encrypted_credentials: nil,encrypted_credentials_data_bag: "credentials",from: "monit@$HOST",subject: "$SERVICE $EVENT at $DATE",message: "Monit $ACTION $SERVICE at $DATE on $HOST,\n\n$DESCRIPTION\n\nDutifully,\nMonit",security: nil,# 'SSLV2'|'SSLV3'|'TLSV1'timeout: 30}casenode["platform_family"]when"rhel","fedora","suse"default["monit"]["main_config_path"]="/etc/monit.conf"default["monit"]["includes_dir"]="/etc/monit.d"elsedefault["monit"]["main_config_path"]="/etc/monit/monitrc"default["monit"]["includes_dir"]="/etc/monit/conf.d"end# The monit::default recipe will load these monit_monitrc resources automatically# NOTE setting this attribute at the default level will append values to the arraydefault["monit"]["default_monitrc_configs"]=%w[loadssh]# Whether the monit service should be reloaded when a configuration changesdefault["monit"]["reload_on_change"]=true# `MONIT_OPTS` for /etc/default/monitdefault["monit"]["init_opts"]=""# specify a particular version of the monit package you want installed,# otherwise it will install the default. this value is ignored when performing a# source install.default["monit"]["version"]=nil# source install specificsdefault["monit"]["source_install"]=falsedefault["monit"]["source"]["version"]="5.7"default["monit"]["source"]["prefix"]="/usr/local"default["monit"]["source"]["url"]="https://mmonit.com/monit/dist/monit-5.7.tar.gz"default["monit"]["source"]["checksum"]="bb250ab011d805b5693972afdf95509e79bb3b390caa763275c9501f74b598a2"default["monit"]["source"]["pam_support"]=truedefault["monit"]["source"]["ssl_support"]=truedefault["monit"]["source"]["large_file_support"]=truedefault["monit"]["source"]["compiler_optimized"]=trueMany thanks go to the following contributors who have helped to make this cookbook even better:
- @werdan
- add support for redhat-flavored systems
- @auser
- add missing metadata
- @arrowcircle
- update syntax to be Ruby 1.8-compatible
- @dwradcliffe
- typo fix for README
- fix logging logic
- whyrun support for monitrc provider
- support for reloading monit without restart
- don't render 'use address' if no address is provided
- fix attribute comments
- @tjwallace
- load default monitrc configs from an attribute
- @tomdz
- Ruby 1.8.x compatibility fix
- add support for templates in different cookbooks
- @alexism
- support other security protocols
- @fixlr
- add
mail_alertsattribute
- add
- @darron
- add descriptions to email notifications
- @claco
- add startup delay option to monit daemon config
- restart on default monitrc configs change
- restart monit service if the monit config changes
- fix platform family logic
- @maciejgalkiewicz
- fix logging logic
- @pauloricardomg
- add
alert_ignore_eventsattribute - add
reload_on_changeattribute
- add
- @drywheat
- support encrypted data bag for smtp credentials
- add support for installation from source vs. package
- @esigler
- allow either style of monit startup flag to work
- @evan2645
- fix bug in which monit is not started during bootstrap
- @mvdkleijn
- add settings for idfile and statefile
- @mbanton
- fix
statefileattribute inmonitrctemplate
- fix
- @foxycoder
- add support for binary install
- @ijin
- add
using_hostnameattribute - better ssh support for Amazon Linux
- add
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Added some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
chef-monit
- Freely distributable and licensed under the MIT license.
- Copyright (c) 2011-2014 Phil Cohen (github@phlippers.net)
- http://phlippers.net/



