Graphite & Statsd can be complex to setup. This image will have you running & collecting stats in just a few minutes.
sudo docker run -d \
--name graphite \
-p 80:80 \
-p 2003:2003 \
-p 8125:8125/udp \
hopsoft/graphite-statsd
This starts a Docker container named: graphite
That's it, you're done ... almost.
| Host | Container | Service |
|---|---|---|
| 80 | 80 | nginx |
| 2003 | 2003 | carbon |
| 8125 | 8125 | statsd |
| Host | Container | Notes |
|---|---|---|
| DOCKER ASSIGNED | /opt/graphite | graphite config & stats storage |
| DOCKER ASSIGNED | /etc/nginx | nginx config |
| DOCKER ASSIGNED | /opt/statsd | statsd config |
| DOCKER ASSIGNED | /etc/logrotate.d | logrotate config |
| DOCKER ASSIGNED | /var/log | log files |
Built using Phusion's base image.
Let's fake some stats with a random counter to prove things are working.
while true
do
echo -n "example.statsd.counter.changed:$(((RANDOM % 10) + 1))|c" | nc -w 1 -u localhost 8125
done
<CTL-C>
Open Graphite in a browser at http://localhost/dashboard.
Update the default Django admin user account. The default is insecure.
First login at: http://localhost/account/login Then update the root user's profile at: http://localhost/admin/auth/user/1/
The image contains a set of default configuration files: https://github.com/hopsoft/docker-graphite-statsd/tree/master/conf
If we want to make changes to these configuration files, we have two options:
docker stop graphite.docker inspect graphite./conf-default and
not in the target destination (like /opt/graphite...)docker start graphite.Note: If you change settings in /opt/graphite/conf/storage-schemas.conf
be sure to delete the old whisper files under /opt/graphite/storage/whisper/.
The image contains a volume /conf-custom that will be scanned for configuration files. If files exist, they will replace any default files contained in the image. Note that the path of the file needs to correspond to the path of the default config files in the image (check out https://github.com/hopsoft/docker-graphite-statsd/tree/master/conf). An example:
mkdir /myConfmkdir /myConf/graphite; vi /myConf/graphite/storage-schemas.confsudo docker run -d --name graphite -v /myConf:/conf-custom hopsoft/graphite-statsdstorage-schemas.conf config file with our custom config fileCustom config files can also be changed (or added) for a running container. In this case, we need to restart the container: sudo docker restart graphite
Read up on Graphite's post-install tasks. Focus on the storage-schemas.conf
Important: Ensure your Statsd flush interval is at least as long as the highest-resolution retention.
For example, if /opt/statsd/config.js looks like this.
flushInterval: 10000
Ensure that storage-schemas.conf retentions are no finer grained than 10 seconds.
[all]
pattern = .*
retentions = 5s:12h # WRONG
retentions = 10s:12h # OK
retentions = 60s:12h # OK
If running this image on cloud infrastructure such as AWS,
you should consider mounting /opt/graphite & /var/log on a larger volume.
Configure the host to mount a large EBS volume.
Specify the volume mounts when starting the container.
sudo docker run -d \
--name graphite \
-v /path/to/ebs/graphite:/opt/graphite \
-v /path/to/ebs/log:/var/log \
-p 80:80 \
-p 2003:2003 \
-p 8125:8125/udp \
hopsoft/graphite-statsd
Build the image yourself.
git clone https://github.com/hopsoft/docker-graphite-statsd.gitcd docker-graphite-statsdvagrant upvagrant sshsudo docker build -t hopsoft/graphite-statsd /vagrantNote: Pay attention to the forwarded ports in the Vagrantfile.
git clone https://github.com/hopsoft/docker-graphite-statsd.gitsudo docker build -t hopsoft/graphite-statsd ./docker-graphite-statsdContent type
Image
Digest
sha256:747ac8a5a…
Size
280.5 MB
Last updated
almost 11 years ago
docker pull inftec/graphite