Giter Club home page Giter Club logo

puppet-graphite's Introduction

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.

puppet-graphite's People

Contributors

dwerder avatar adrianlzt avatar gposton avatar aarontheape avatar thijsferyn avatar oisinmulvihill avatar tombooth avatar dduvnjak avatar

Watchers

 avatar James Fan avatar Vladimir Giverts avatar Tejas R. Mandke avatar Stephane Rangaya avatar James Cloos avatar Kevin Tham avatar Evgueni Ratchev avatar Mohammad Sabah avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.