Skip to content

Latest commit

 

History

History
166 lines (138 loc) · 4.98 KB

README.md

File metadata and controls

166 lines (138 loc) · 4.98 KB

Module graphite

This module installs and makes basic configs for graphite, with carbon and whisper.

Tested on

RHEL/CentOS/Scientific 6+ Debian 6+ Ubunutu 10.04 and newer

Requirements

Configure conf files as you need:

Only if you want to use memcached, carbon-link clusters or ldap you should edit:
templates/opt/graphite/webapp/graphite/local_settings.py.erb

Modules needed:

stdlib by puppetlabs

Software versions needed:

facter > 1.6.2 puppet > 2.6.2

On Redhat distributions you need the EPEL or RPMforge repository, because Graphite needs packages, which are not part of the default repos.

Parameters

The descriptions are short and their are more variables to tweak your graphite if needed. For further information take a look at the file templates/opt/graphite/conf/carbon.conf.erb

ParameterDefaultDescription
gr_user its empty The user who runs graphite. If this is empty carbon runs as the user that invokes it.
gr_max_cache_sizeinfLimit the size of the cache to avoid swapping or becoming CPU bound. Use the value "inf" (infinity) for an unlimited cache size.
gr_max_updates_per_second500Limits the number of whisper update_many() calls per second, which effectively means the number of write requests sent to the disk.
gr_max_creates_per_minute50Softly limits the number of whisper files that get created each minute.
gr_line_receiver_interface0.0.0.0Interface the line receiver listens
gr_line_receiver_port2003Port of line receiver
gr_enable_udp_listenerFalseSet this to True to enable the UDP listener.
gr_udp_receiver_interface0.0.0.0Its clear, isnt it?
gr_udp_receiver_port2003Self explaining
gr_pickle_receiver_interface0.0.0.0Pickle is a special receiver who handle tuples of data.
gr_pickle_receiver_port2004Self explaining
gr_use_insecure_unpicklerFalseSet this to True to revert to the old-fashioned insecure unpickler.
gr_cache_query_interface0.0.0.0Interface to send cache queries to.
gr_cache_query_port7002Self explaining.
gr_timezoneGMTTimezone for graphite to be used.
gr_storage_schemas
[
  {
    name       => "default",
    pattern    => ".*",
    retentions => "1s:30m,1m:1d,5m:2y"
  }
]
The storage schemas.
gr_web_serverapacheThe web server to use. Valid values are 'apache' and 'nginx'. 'nginx' is only supported on Debian-like systems.
gr_web_cors_allow_from_allfalseInclude CORS Headers for all hosts (*) in web server config.
gr_apache_port80The HTTP port apache will use.
gr_apache_port_https443The HTTPS port apache will use.
gr_django_1_4_or_lessfalseDjango settings style.
gr_django_db_xxxsqlite3 settingsDjango database settings. (engine|name|user|password|host|port)
secret_keyUNSAFE_DEFAULTCHANGE IT! Secret used as salt for things like hashes, cookies, sessions etc. Has to be the same on all nodes of a graphite cluster.
nginx_htpasswdundefThe user and salted SHA-1 (SSHA) password for Nginx authentication. If set, Nginx will be configured to use HTTP Basic authentication with the given user & password.

Sample usage:

Out of the box graphite installation

node "graphite.my.domain" {
	include graphite
}

Tuned graphite installation

# This carbon cache will accept TCP and UDP datas and
# the cachesize is limited to 256mb
node "graphite.my.domain" {
	class {'graphite':
		gr_max_cache_size => 256,
		gr_enable_udp_listener => True
	}
}

Optional

Move Apache to alternative ports:

The default puppet set up won't work if you have an existing web server in place. In my case this was Nginx. For me moving apache off to another port was good enough. To allow this you do

  # Move apache to alternate HTTP/HTTPS ports:
node "graphite.my.domain" {
    class {'graphite':
        gr_apache_port => 2080,
        gr_apache_port_https => 2443,
    }
}

Author

written by Daniel Werdermann [email protected]

Contributers

  • Oisin Mulvihill, oisin dot mulvihill at gmail dot com.