Graphite 1.1 - Configuring The Webapp

Webapp को कॉन्फ़िगर करना




graphite

Webapp को कॉन्फ़िगर करना

ग्रेफाइट वेब को उजागर करने के कई तरीके हैं। निम्नलिखित स्टैक कॉन्फ़िगरेशन मौजूद हैं:

  • nginx + gunicorn
  • अपाचे + mod_wsgi
  • nginx + uWSGI

आपके द्वारा चुने गए कॉन्फ़िगरेशन के आधार पर, वेबैप कॉन्फ़िगरेशन थोड़ा अलग है।

nginx + gunicorn

इस सेटअप में, nginx Gunicorn के लिए प्रॉक्सी अनुरोध करेगा, जो स्वयं 8080 पोर्ट पर स्थानीय रूप से सुनेगा और वेबएप (Django एप्लिकेशन) की सेवा करेगा।

Gunicorn स्थापित करें

यदि आप एक virtualenv का उपयोग करते हैं, तो आप pip उपयोग कर सकते हैं:

pip install gunicorn

अन्यथा, आप अपने वितरण के लिए पैकेज का उपयोग कर सकते हैं।

डेबियन-आधारित सिस्टम पर, चलाएं:

sudo apt install gunicorn

Nginx स्थापित करें

डेबियन-आधारित सिस्टम पर, चलाएं:

sudo apt install nginx

Nginx कॉन्फ़िगर करें

ग्रेफाइट परोसते समय हम nginx के लिए समर्पित लॉग फ़ाइलों का उपयोग करेंगे:

sudo touch /var/log/nginx/graphite.access.log
sudo touch /var/log/nginx/graphite.error.log
sudo chmod 640 /var/log/nginx/graphite.*
sudo chown www-data:www-data /var/log/nginx/graphite.*

निम्नलिखित विन्यास को /etc/nginx/sites-available/graphite में लिखें:

upstream graphite {
    server 127.0.0.1:8080 fail_timeout=0;
}

server {
    listen 80 default_server;

    server_name HOSTNAME;

    root /opt/graphite/webapp;

    access_log /var/log/nginx/graphite.access.log;
    error_log  /var/log/nginx/graphite.error.log;

    location = /favicon.ico {
        return 204;
    }

    # serve static content from the "content" directory
    location /static {
        alias /opt/graphite/webapp/content;
        expires max;
    }

    location / {
        try_files $uri @graphite;
    }

    location @graphite {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 10;
        proxy_read_timeout 10;
        proxy_pass http://graphite;
    }
}

ध्यान दें

अपने वास्तविक होस्टनाम से मिलान करने के लिए server_name बदलना न भूलें। आप अपने उपयोग के मामले में अन्य सेटिंग्स को भी अनुकूलित कर सकते हैं, जैसे root

इस कॉन्फ़िगरेशन को nginx के लिए सक्षम करें:

sudo ln -s /etc/nginx/sites-available/graphite /etc/nginx/sites-enabled
sudo rm -f /etc/nginx/sites-enabled/default

नए कॉन्फ़िगरेशन का उपयोग करने के लिए पुन: लोड करें:

sudo service nginx reload

अपाचे + mod_wsgi

सबसे पहले, आपको mod_wsgi इंस्टॉल करना होगा।

स्थापना निर्देशों के लिए mod_wsgi स्थापनाइंस्ट्रक्शन देखें।

फिर ग्रेफाइटव्यूगी बनाएं। (आप स्रोत ditribution की निर्देशिका निर्देशिका पर ग्रेफाइटव्यूगी फ़ाइल का उदाहरण पा सकते हैं):

# /opt/graphite/conf/graphite.wsgi

import sys
sys.path.append('/opt/graphite/webapp')
from graphite.wsgi import application

अंत में, अपाचे vhost को कॉन्फ़िगर करें। (आप स्रोत ditribution की contrib डायरेक्टरी में ग्रेफाइट vhost कॉन्फ़िगरेशन का उदाहरण पा सकते हैं):

# /etc/httpd/conf.d/graphite-vhost.conf

LoadModule wsgi_module modules/mod_wsgi.so

WSGISocketPrefix /var/run/wsgi

Listen 80
<VirtualHost *:80>

    ServerName graphite
    DocumentRoot "/opt/graphite/webapp"
    ErrorLog /opt/graphite/storage/log/webapp/error.log
    CustomLog /opt/graphite/storage/log/webapp/access.log common

    WSGIDaemonProcess graphite-web processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
    WSGIProcessGroup graphite-web
    WSGIApplicationGroup %{GLOBAL}
    WSGIImportScript /opt/graphite/conf/graphite.wsgi process-group=graphite-web application-group=%{GLOBAL}

    WSGIScriptAlias / /opt/graphite/conf/graphite.wsgi

    Alias /static/ /opt/graphite/static/

    <Directory /opt/graphite/static/>
            <IfVersion < 2.4>
                    Order deny,allow
                    Allow from all
            </IfVersion>
            <IfVersion >= 2.4>
                    Require all granted
            </IfVersion>
    </Directory>

    <Directory /opt/graphite/conf/>
            <IfVersion < 2.4>
                    Order deny,allow
                    Allow from all
            </IfVersion>
            <IfVersion >= 2.4>
                    Require all granted
            </IfVersion>
    </Directory>
</VirtualHost>

अपनी आवश्यकताओं के लिए mod_wsgi विन्यास को अनुकूलित करें।

सभी कॉन्फ़िगरेशन निर्देशों को देखने के लिए कॉन्फ़िगरेशन और mod_wsgi कॉन्फ़िगरेशनडायरेक्टिव के अवलोकन के लिए mod_wsgi QuickConfigurationGuide देखें

फिर से शुरू करें:

$ service httpd restart

URL_ उपसर्ग अनुप्रयोग (Apache) के रूप में mod_wsgi के साथ वेबप चल रहा है

URL_PREFIX में नए URL_PREFIX पैरामीटर का local_settings.py करते समय WSGIScriptAlias सेटिंग निम्न की तरह दिखना चाहिए (जैसे URL_PREFIX = "/ ग्रेफाइट"):

WSGIScriptAlias /graphite /opt/graphite/conf/graphite.wsgi/graphite

Django के लिए सही URL बनाने के लिए / ग्रेफाइट की आवश्यकता है

निग्नेक्स + uWSGI

सबसे पहले, आपको Python समर्थन के साथ uWSGI इंस्टॉल करना होगा। डेबियन पर, uwsgi-plugin-python स्थापित करें।

इसके बाद /etc/uwsgi/apps-available/graphite.ini में ग्रेफाइट-वेब के लिए uWSGI फाइल /etc/uwsgi/apps-available/graphite.ini :

[uwsgi]
processes = 2
socket = localhost:8080
gid = www-data
uid = www-data
virtualenv = /opt/graphite
chdir = /opt/graphite/conf
module = wsgi:application

फिर फ़ाइल wsgi.py :

# /opt/graphite/conf/wsgi.py

import sys
sys.path.append('/opt/graphite/webapp')
from graphite.wsgi import application

Graphite.ini सक्षम करें और uWSGI को पुनरारंभ करें:

$ ln -s /etc/uwsgi/apps-available/graphite.ini /etc/uwsgi/apps-enabled
$ service uwsgi restart

अंत में, nginx vhost को कॉन्फ़िगर करें:

# /etc/nginx/sites-available/graphite.conf

server {
    listen 80;

    location /static/ {
        alias /opt/graphite/webapp/content/;
    }

    location / {
        include uwsgi_params;
        uwsgi_pass localhost:8080;
    }
}

Vhost को सक्षम करें और nginx को पुनरारंभ करें:

$ ln -s /etc/nginx/sites-available/graphite.conf /etc/nginx/sites-enabled
$ service nginx restart

मान्यताएं ——__

उस मैनुअल के हिस्से ग्रेफाइट-एपीआई तैनाती मैनुअल पर आधारित हैं।