рдЧреНрд░реЗрдлрд╛рдЗрдЯ + virtualenv + рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╕реЗрдЯ рдХрд░реЗрдВ

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣ рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдкрд╣рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ - рдПрдХ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдПрдХ рднрдВрдбрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВред

рдкреНрд░реЗрд░рдгрд╛


рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рддрдХ, рдореИрдВрдиреЗ рдореБрдирд┐рди рдХреЛ рдЖрдВрдХрдбрд╝реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЧреНрд░рд╛рдлрд╝ рдиреЗ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛ (рдЙрдкрд╕реНрдерд┐рддрд┐) рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж, рдХреБрдЫ рд▓рдЧрд╛рддрд╛рд░ рдЧрд┐рд░ рдЧрдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕ рд╕рдм рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рд╕рд╛рдореВрд╣рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдпрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡рд╣ рдореБрдЭреЗ рдПрдХ рдпреЛрдЧреНрдп рд╡рд┐рдХрд▓реНрдк рд▓рдЧрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рднреА рд╡реЗрдм рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдЬреЛ рдореБрдЭреЗ рдЙрд╕рдХреА рддрд▓рд╛рд╢ рдереЗ, рд╡рд╣ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрд╛ рдФрд░ рдореИрдВ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдЙрдкрдХреНрд░рдо рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдФрд░ рдлрд┐рд░, рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рд╣рдордиреЗ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреАред рдореИрдВрдиреЗ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдЖрддрд╛ рд╣реИред

рд▓рдХреНрд╖реНрдп


рд╕реБрдкрд░рд╡рд╛рдЗрдЬрд░, uwsgi рдФрд░ virtualenv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдмрд╛рд╣рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗ (nginx)ред рд╕рд╛рдореВрд╣рд┐рдХ, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд╕реАрдзреЗ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдбреЗрдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реАрд╕рд╛

рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рд▓рд╛рдЗрд╡ рд╣реЛрдЧрд╛ рдФрд░ рд╡рд╣рд╛рдВ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рддреИрдирд╛рдд рдХрд░реЗрдЧрд╛ред
$ mkdir /var/projects/graphite $ cd /var/projects/graphite $ virtualenv --no-site-packages .env $ virtualenv --relocatable .env $ source .env/bin/activate 

рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХреИрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд╛рдпрдХреЛрд░рд┐рдпреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ py2cairo рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

 $ wget http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2 $ tar -jxf py2cairo-1.10.0.tar.bz2 && cd py2cairo-1.8.10 $ ./waf configure --prefix=$VIRTUAL_ENV $ ./waf build $ ./waf install $ cd .. && rm -R py2cairo-1.8.10 && rm py2cairo-1.10.0.tar.bz2 

рд╣рдордиреЗ рдХрд╛рдирд╛рдлреВрд╕реА рдХреА

 $ wget https://launchpad.net/graphite/0.9/0.9.9/+download/whisper-0.9.9.tar.gz $ tar -xzpf whisper-0.9.9.tar.gz && cd whisper-0.9.9 $ python setup.py install $ cd .. && rm -R whisper-0.9.9 && rm whisper-0.9.9.tar.gz 

рд╣рдордиреЗ рдХрд╛рд░реНрдмрди рдбрд╛рд▓рд╛

 $ wget https://launchpad.net/graphite/0.9/0.9.9/+download/carbon-0.9.9.tar.gz $ tar -xzpf carbon-0.9.9.tar.gz && cd carbon-0.9.9 

рд╣рдорд╛рд░реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, setup.cfg рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ:
prefix = /opt/graphite
рдкрд░:
prefix = $VIRTUAL_ENV/..
рдЬрд┐рд╕рдХреЗ рдмрд╛рдж:
 $ python setup.py install $ cd .. && rm -R carbon-0.9.9 && rm carbon-0.9.9.tar.gz 

рд╣рдо рдЧреНрд░реЗрдлрд╛рдЗрдЯ (рд╡реЗрдмрдк) рдбрд╛рд▓рддреЗ рд╣реИрдВ

 $ wget https://launchpad.net/graphite/0.9/0.9.9/+download/graphite-web-0.9.9.tar.gz $ tar -xzpf graphite-web-0.9.9.tar.gz && cd graphite-web-0.9.9 

Check-d dependencies.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдФрд░ рдХреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╣реИ:
 $ pip install django django-tagging twisted python-memcached psycopg2 egenix-mx-base 

рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрдЪреНрдЫрд╛рд╢рдХреНрддрд┐ рдкрд░, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдпрд╣ рд╣реИ, рдЗрд╕реЗ рд░рд╣рдиреЗ рджреЛред
рдХрд╛рд░реНрдмрди рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, setup.cfg рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рдмрджрд▓рддреЗ рд╣реИрдВ:
prefix = /opt/graphite
рдкрд░:
prefix = $VIRTUAL_ENV/..
рдЬрд┐рд╕рдХреЗ рдмрд╛рдж:
 $ python setup.py install $ cd .. && rm -R graphite-web-0.9.9 && rm graphite-web-0.9.9.tar.gz 

рдХрд╛рд░реНрдмрди рдФрд░ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ

рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
 [program:graphite_uwsgi] command=/usr/bin/uwsgi --pidfile /var/projects/graphite/run/graphite_uwsgi.pid -x /var/projects/graphite/conf/uwsgi.conf --vacuum directory=/var/projects/graphite/webapp/ autostart=true autorestart=true startsecs=5 startretries=3 stopsignal=TERM stopwaitsecs=15 stopretries=1 stopsignal=QUIT redirect_stderr=false stdout_logfile=/var/projects/graphite/storage/log/graphite_uwsgi.log stdout_logfile_maxbytes=1MB stdout_logfile_backups=10 stdout_capture_maxbytes=1MB stderr_logfile=/var/projects/graphite/storage/log/graphite_uwsgi-error.log stderr_logfile_maxbytes=1MB stderr_logfile_backups=10 stderr_capture_maxbytes=1MB [program:carbon] command=/var/projects/graphite/.env/bin/python /var/projects/graphite/bin/carbon-cache.py --debug start priority=1 autostart=true autorestart=true startsecs=3 redirect_stderr=false stdout_logfile=/var/projects/graphite/storage/log/carbon.log stdout_logfile_maxbytes=1MB stdout_logfile_backups=10 stdout_capture_maxbytes=1MB stderr_logfile=/var/projects/graphite/storage/log/carbon-error.log stderr_logfile_maxbytes=1MB stderr_logfile_backups=10 stderr_capture_maxbytes=1MB 

рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдмреИрдХрдПрдВрдб рдФрд░ рдХрд╛рд░реНрдмрди рд╕рд░реНрд╡рд░ рдХреЛ рдХреИрд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреА рдЧреБрдкреНрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рд▓рд┐рдВрдХ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдЗрд╕реЗ рдвреВрдВрдвреЗрдЧрд╛ред
рдЖрдЧреЗ, рдореИрдВ uwsgi рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдБ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 <uwsgi> <socket>127.0.0.1:8001</socket> <processes>2</processes> <home>/var/projects/graphite/.env</home> <pythonpath>/var/projects/graphite/webapp/</pythonpath> <chdir>/var/projects/graphite/webapp</chdir> <max-requests>2000</max-requests> <touch-reload>/var/projects/graphite/uwsgi.reload</touch-reload> <harakiri>120</harakiri> <post-buffering>8192</post-buffering> <post-buffering-bufsize>65536</post-buffering-bufsize> <master/> <single-interpreter/> <env>DJANGO_SETTINGS_MODULE=graphite.settings</env> <module>wsgi</module> </uwsgi> 

рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЧреНрд░реЗрдлрд╛рдЗрдЯрд╡реЙрдЧреА.рдПрдХреНрд╕рдкреНрд▓рд┐рдореЗрдВрдЯ рд▓рд┐рдпрд╛, рдЬреЛ рд╡рд╣реАрдВ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЗрд╕реЗ рд╕рд╣реА рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ wsgi.py рдирд╛рдо рдХреЗ рд╕рд╛рде / var / рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ / рдЧреНрд░реЗрдлрд╛рдЗрдЯ / рд╡реЗрдмрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ред рд╕рдВрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рд╡рд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рд╢реБрд░реВ рд╣реБрдЖ:
 import os import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() # READ THIS # Initializing the search index can be very expensive, please include # the WSGIScriptImport directive pointing to this script in your vhost # config to ensure the index is preloaded before any requests are handed # to the process. from graphite.logger import log log.info("graphite.wsgi - pid %d - reloading search index" % os.getpid()) import graphite.metrics.search 

рдЕрдЧрд▓рд╛, рдЧреЛрдкрдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ:
 $ mv carbon.conf.example carbon.conf $ mv storage-schemas.conf.example storage-schemas.conf 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗрдмреИрдк / рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдЖрдкрдХреЛ рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 $ mv local_settings.py.example local_settings.py 

рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдкреЙрдЬрд╝рд░реЗрд╕реНрдХреЗрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджрд░реНрдЬ рдХреАред
рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП local_settings рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
 $ python webapp/graphite/manage.py syncdb 

рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП Nginx

рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдИ:
 server { access_log /var/projects/graphite/storage/log/nginx.access.log main; error_log /var/projects/graphite/storage/log/nginx.error.log info; listen 80; server_name graphite.some_site.com; root /var/projects/graphite/webapp/; location / { include /etc/nginx/uwsgi_params; uwsgi_pass 127.0.0.1:8001; } location /content/ { access_log off; expires 30d; } } 

рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЧреЛрдкрдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬрд╛, рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдФрд░ uwsgi рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЧрд▓ рдореЗрдВ, рдЗрд╕реЗ nginx.conf рдирд╛рдо рджрд┐рдпрд╛ рдФрд░ nginx рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рдпрд╛ред

рд▓рд╛рдВрдЪ

рд╕реБрдкрд░рд╡рд╛рдЗрдЬрд░ рдФрд░ рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдлрд╛рдЗрд▓ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрдардиреАрдп рд╣реЛ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ nginx рдФрд░ рд╕реБрдкрд░рд╡рд╛рдЗрдЬрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ, рднрдВрдбрд╛рд░рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдФрд░ nginx рджреЛрдиреЛрдВ www рд╕рдореВрд╣ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реВрдВ:
 $ mkdir /var/projects/graphite/run $ chown myuser:www -R /var/projects/graphite $ cd /var/projects/graphite $ chmod -R 770 storage run 

рдпрд╣реА рдмрд╛рдд рд╣реИ, рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдФрд░ nginx рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред рднрдВрдбрд╛рд░рдг рдореЗрдВ рд▓реЙрдЧ рд╕реЗ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ, рд╣рдо рдЧреНрд░реЗрдлрд╛рдЗрдЯ рджреЗрдЦрддреЗ рд╣реИрдВред

Collectd

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ :-) рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рдВрдЧреНрд░рд╣рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡рд┐рддрд░рдг рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЪреВрдВрдХрд┐ рд╕реЗрд╡рд╛ рдХреЛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ rrd * рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд░рдлреНрддреВрд▓ рдХреА рдЬрдЧрд╣ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ред рдореИрдВрдиреЗ рд╕рд╛рдореВрд╣рд┐рдХ-рдХрд╛рд░реНрдмрди рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛, рдЬреЛ рдХрд┐ рдЕрдЬрдЧрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ C ( рдХрд▓реЗрдХреНрдЯреЗрдб-рд░рд╛рдЗрдЯ_рдЧреНрд░рд╛рдлрд╛рдЗрдЯ ) рдореЗрдВ рд▓рд┐рдЦреЗ рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЗрд╕рдиреЗ рддреБрд░рдВрдд рдХрд╛рдо рднреА рдХрд┐рдпрд╛, рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрдЬреАрдм рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдирд╛рдо рднреЗрдЬреЗ рдЧрдП рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдордирд╛ рдХрд░ рджрд┐рдпрд╛ред
рдкреНрд▓рдЧрдЗрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рд░рд▓ рдФрд░ рд╕реАрдзрд╛ рд╣реИ рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░ рдЧрд┐рдЯрд╣рдм рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо

рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд▓реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд▓рдХреНрд╖реНрдп рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдмрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрдо рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдВрдХрдбрд╝реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрдИ рдмрд╛рд╣рд░реА рдорд╢реАрдиреЛрдВ рд╕реЗ рдпрд╣рд╛рдВ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реВрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рдПрдЧреНрд░реАрдЧреЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкреЛрд╕реНрдЯ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред рдЕрдЧрд░ рдпрд╣ рдереЛрдбрд╝рд╛ рд▓рдВрдмрд╛ рд╣реЛ рдЧрдпрд╛ (рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рдЬрдЧрд╣реЛрдВ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ), рддреЛ рдореИрдВ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВред

рд╕рдВрджрд░реНрдн

http://graphite.readthedocs.org/en/1.0/index.html
http://www.frlinux.eu/?p=199
http://graphite.wikidot.com/
http://mldav.blogspot.com/2011/10/debian-graphite.html
http://collectd.org/

рдкреБрдирд╢реНрдЪ

"рд╢рд░реАрд░ рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдпрд╣ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдкрддреНрдерд░ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 3 + рдХреЗ рдмрдЬрд╛рдп 1 рдкреИрдХреЗрдЬ рдПрдХ рдЫреЛрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреА рд╣реИред

Source: https://habr.com/ru/post/In139386/


All Articles