This is forked from https://github.com/hopsoft/docker-graphite-statsd, and with https://github.com/hopsoft/docker-graphite-statsd/pull/27 merged.
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 \
gengmao/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 | /etc/nginx | nginx config |
| DOCKER ASSIGNED | /opt/statsd | statsd config |
| DOCKER ASSIGNED | /etc/logrotate.d | logrotate config |
| DOCKER ASSIGNED | /opt/graphite/conf | graphite config |
| DOCKER ASSIGNED | /opt/graphite/storage | graphite storage |
| 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/
Read up on Graphite's post-install tasks. Focus on the storage-schemas.conf
docker stop graphite.docker inspect 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/.
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/storage & /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 /ebs_vol/graphite/storage:/opt/graphite/storage \
-v /ebs_vol/log:/var/log \
-p 80:80 \
-p 2003:2003 \
-p 8125:8125/udp \
gengmao/graphite-statsd
Build the image yourself.
git clone https://github.com/gengmao/docker-graphite-statsd.gitcd docker-graphite-statsdvagrant upvagrant sshsudo docker build -t gengmao/graphite-statsd /vagrantNote: Pay attention to the forwarded ports in the Vagrantfile.
git clone https://github.com/gengmao/docker-graphite-statsd.gitsudo docker build -t gengmao/graphite-statsd ./docker-graphite-statsdContent type
Image
Digest
sha256:c9195a9f6…
Size
288.5 MB
Last updated
over 11 years ago
docker pull gengmao/docker-graphite-statsd