Spec-Zone.ru › Graphite

Graphite-web’s local_settings.py

Graphite-web использует соглашение о импорте файла local_settings.py из модуля webapp settings.py. Именно здесь загружается конфигурация Graphite-web во время выполнения. Также можно установить альтернативный модуль локальных настроек (см. ниже). Это может быть полезно для развертывания на нескольких экземплярах.

Расположение файла конфигурации

По умолчанию модуль настроек — local_settings.py и он, как правило, находится внутри основного модуля graphite, где находится код веб-приложения. В стандартной структуре установки это /opt/graphite/webapp/graphite/local_settings.py. Альтернативные расположения можно использовать, создав символическую ссылку на этот путь или убедившись, что модуль можно найти в пути поиска модулей Python.

Это можно изменить, задав переменную среды GRAPHITE_SETTINGS_MODULE. Например, в файле wsgi.

Общие настройки

URL_PREFIX

По умолчанию: /

Установите URL_PREFIX при развертывании graphite-web по адресу, отличному от корневого.

SECRET_KEY

По умолчанию: UNSAFE_DEFAULT

Этот ключ используется для подсаливания хешей, используемых в маркерах аутентификации, middleware CRSF, хранении cookie и т. д. Его следует установить одинаково на всех узлах, если он используется за балансировщиком нагрузки.

ALLOWED_HOSTS

По умолчанию: *

В Django 1.5+ задайте список хостов, откуда доступен ваш экземпляр графита. См.: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-ALLOWED_HOSTS

TIME_ZONE

По умолчанию: America/Chicago

Установите локальное часовое пояс. Часовые пояса задаются с использованием имен часовых поясов.

DATE_FORMAT

По умолчанию: %m/%d

Установите стандартный короткий формат даты. См. strftime(3) для поддерживаемых последовательностей.

DOCUMENTATION_URL

По умолчанию: http://graphite.readthedocs.io/

Переопределяет ссылку Документация, используемую в заголовке Graphite Composer.

LOG_RENDERING_PERFORMANCE

По умолчанию: False

Вызывает создание rendering.log, который регистрирует время выполнения вызовов API API отображения.

LOG_CACHE_PERFORMANCE

По умолчанию: False

Вызывает создание cache.log, который регистрирует время выполнения удаленных вызовов carbon-cache, а также попадания и промахи кэша запросов (memcached).

DEBUG = True

По умолчанию: False

Включает генерацию подробных страниц ошибок Django. См. документацию Django для получения подробностей.

FLUSHRRDCACHED

По умолчанию: <не задано>

Если задано, выполняет rrdtool flushcached перед извлечением данных из файлов RRD. Устанавливается адрес или сокет демона rrdcached. Пример: unix:/var/run/rrdcached.sock

MEMCACHE_HOSTS

По умолчанию: []

Если установлено, включает кэширование рассчитанных целевых значений (включая применённые функции) и визуализированных изображений. Если вы запускаете кластер Graphite webapp, каждый webapp должен иметь точно такие же значения для этого параметра, чтобы избежать ненужных промахов кэша.

Установите список хостов memcached. Пример: ['10.10.10.10:11211', '10.10.10.11:11211', '10.10.10.12:11211']

MEMCACHE_KEY_PREFIX

По умолчанию: graphite

Префикс memcached для ключей graphite.

MEMCACHE_OPTIONS

По умолчанию: {}

Допустимые параметры зависят от реализации Memcached и версии Django. До Django 1.10 параметры используются только для pylibmc. Начиная с 1.11, параметры используются как для python-memcached, так и для pylibmc.

DEFAULT_CACHE_DURATION

По умолчанию: 60

Срок действия по умолчанию кэшированных данных и изображений.

DEFAULT_CACHE_POLICY

По умолчанию: []

Данные метрик и графики кэшируются по умолчанию на одну минуту. Если определён, DEFAULT_CACHE_POLICY — список кортежей с минимальными диапазонами времени запросов, сопоставленных с временем кэширования результатов. Это позволяет кэшировать более длинные запросы на более длительное время. Все времена указаны в секундах. Пример конфигурации:

DEFAULT_CACHE_POLICY = [(0, 60), # default is 60 seconds
                        (7200, 120), # >= 2 hour queries are cached 2 minutes
                        (21600, 180)] # >= 6 hour queries are cached 3 minutes

Это позволит кэшировать запросы от 0 секунд до 2 часов на 1 минуту, запросы от 2 до 6 часов на 2 минуты и запросы более чем 6 часов на 3 минуты. Если политика пустая или не определена, всё будет кэшироваться на DEFAULT_CACHE_DURATION.

AUTO_REFRESH_INTERVAL

По умолчанию: 60

Интервал для функции Автообновление в Composer, измеряется в секундах.

MAX_TAG_LENGTH

По умолчанию: 50

Graphite использует Django Tagging для поддержки тегов в событиях. По умолчанию каждый тег ограничен 50 символами.

Пути к файловой системе

Эти настройки определяют расположение дополнительных файлов конфигурации Graphite-web, статического содержимого и данных. Их нужно настроить, если Graphite-web установлен не по стандартной структуре установки.

GRAPHITE_ROOT
По умолчанию: /opt/graphite Базовая директория для установки Graphite. Эта настройка используется для перемещения установки Graphite из стандартной базовой директории, сохраняя стандартную структуру. Пути, полученные из этой настройки, также можно переопределить индивидуально.
CONF_DIR
По умолчанию: GRAPHITE_ROOT/conf Расположение дополнительных файлов конфигурации Graphite-web.
STORAGE_DIR
По умолчанию: GRAPHITE_ROOT/storage Базовая директория, от которой берутся значения по умолчанию для WHISPER_DIR, RRD_DIR, CERES_DIR, LOG_DIR и INDEX_FILE.
STATIC_ROOT

По умолчанию: См. ниже Расположение статического содержимого Graphite-web. По умолчанию это static/ три директории выше settings.py. В стандартной структуре это /opt/graphite/static.

Эта директория даже не существует после установки графита. Её нужно заполнить следующей командой:

PYTHONPATH=$GRAPHITE_ROOT/webapp django-admin.py collectstatic --noinput --settings=graphite.settings

Это собирает статические файлы для graphite-web и внешних приложений (в частности, приложения Django admin) и помещает их в директорию, которая должна быть доступна по URL /static/ вашего веб-сервера. Для настройки Apache:

Alias /static/ "/opt/graphite/static"

Для Nginx:

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

В качестве альтернативы, статические файлы могут быть переданы напрямую веб-приложением Graphite, если установлен пакет Python whitenoise.

DASHBOARD_CONF
По умолчанию: CONF_DIR/dashboard.conf Расположение конфигурации панели Graphite-web.
GRAPHTEMPLATES_CONF
По умолчанию: CONF_DIR/graphTemplates.conf Расположение конфигурации шаблонов графиков Graphite-web.
WHISPER_DIR
По умолчанию: /opt/graphite/storage/whisper Расположение файлов данных Whisper.
CERES_DIR
По умолчанию: /opt/graphite/storage/ceres Расположение файлов данных Ceres.
RRD_DIR
По умолчанию: /opt/graphite/storage/rrd Расположение файлов данных RRD.
STANDARD_DIRS
По умолчанию: [WHISPER_DIR, RRD_DIR] Список директорий, просматриваемых для файлов данных. По умолчанию это значения WHISPER_DIR и RRD_DIR (если обнаружена поддержка rrd). Если эта настройка определена, настройки WHISPER_DIR, CERES_DIR и RRD_DIR не имеют эффекта.
LOG_DIR
По умолчанию: STORAGE_DIR/log/webapp Директория для записи файлов журналов Graphite-web. Эта директория должна быть доступной для записи пользователю, запускающему веб-приложение Graphite-web.
INDEX_FILE
По умолчанию: /opt/graphite/storage/index Расположение файла индекса поиска. Этот файл генерируется скриптом build-index.sh и должен быть доступен для записи пользователю, запускающему веб-приложение Graphite-web.
STORAGE_FINDERS
По умолчанию: () Возможно использование альтернативного уровня хранения, отличного от стандартного Whisper, для удовлетворения специфических потребностей. См.: http://graphite.readthedocs.io/en/latest/storage-backends.html
FETCH_TIMEOUT

По умолчанию: 6

Таймаут для извлечения данных в секундах.

FIND_TIMEOUT

По умолчанию: 3

Таймаут для запросов поиска (просмотр метрик) в секундах.

TAGDB
По умолчанию: ‘graphite.tags.localdatabase.LocalDatabaseTagDB’ Драйвер базы данных тегов, который нужно использовать, другие варианты включают graphite.tags.redis.RedisTagDB
TAGDB_REDIS_HOST
По умолчанию: ‘localhost’ Хост Redis, используемый с TAGDB = ‘graphite.tags.redis.RedisTagDB’
TAGDB_REDIS_PORT
По умолчанию: 6379 Порт Redis, используемый с TAGDB = ‘graphite.tags.redis.RedisTagDB’
TAGDB_REDIS_DB
По умолчанию: 0 База данных Redis, используемая с TAGDB = ‘graphite.tags.redis.RedisTagDB’

Настройка веб-сервера (Apache)

В директории examples исходного кода graphite web есть примерный файл example-graphite-vhost.conf. Вы можете использовать его для настройки Apache. У разных дистрибутивов есть разные способы настройки Apache. Обратитесь к документации вашего дистрибутива по этому вопросу.

Например, Ubuntu использует /etc/apache2/sites-available и sites-enabled/ для этого (символическая ссылка от sites-enabled/ к sites-available/ будет использоваться после размещения файла в sites-available/).

Другие используют директиву Include в файле httpd.conf следующим образом:

# This goes in httpd.conf
Include /usr/local/apache2/conf/vhosts.d/*.conf

Затем все файлы конфигурации должны быть добавлены в /usr/local/apache2/conf/vhosts.d/. В других случаях это может вообще не поддерживаться, и вы должны добавить конфигурацию непосредственно в файл http.conf.

Graphite будет находиться в DocumentRoot вашего веб-сервера и не позволит вам получить доступ к простому HTML в поддиректориях без дополнительной конфигурации. Вы можете отредактировать файл example-graphite-vhost.conf для изменения номеров портов или использовать дополнительные директивы "SetHandler None" для разрешения доступа к другим директориям.

Убедитесь, что перегрузили конфигурацию Apache, выполнив sudo /etc/init.d/apache2 reload или sudo /etc/init.d/httpd reload.

Настройка электронной почты

Эти настройки конфигурируют функциональность отправки электронной почты Django, которая используется для отправки графиков. Обратитесь к документации Django для получения дополнительной информации об этих настройках.

EMAIL_BACKEND
По умолчанию: django.core.mail.backends.smtp.EmailBackend Установите значение django.core.mail.backends.dummy.EmailBackend чтобы отбрасывать электронные письма и отключить функции отправки электронной почты.
EMAIL_HOST
По умолчанию: localhost
EMAIL_PORT
По умолчанию: 25
EMAIL_HOST_USER
По умолчанию: ‘’
EMAIL_HOST_PASSWORD
По умолчанию: ‘’
EMAIL_USE_TLS
По умолчанию: False

Настройка аутентификации

Эти настройки добавляют дополнительные бэкэнды к AUTHENTICATION_BACKENDS и настройкам MIDDLEWARE. Дополнительные схемы аутентификации можно реализовать, напрямую изменяя эти списки.

LDAP

Эти настройки конфигурируют пользовательский бэкэнд аутентификации LDAP, предоставляемый Graphite. Дополнительные настройки к приведенным ниже могут быть настроены, установив глобальные опции модуля LDAP, используя ldap.set_option. Обратитесь к документации модуля для получения более подробной информации.

# SSL Example
import ldap
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW)
ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, "/etc/ssl/ca")
ldap.set_option(ldap.OPT_X_TLS_CERTFILE, "/etc/ssl/mycert.pem")
ldap.set_option(ldap.OPT_X_TLS_KEYFILE, "/etc/ssl/mykey.pem")
USE_LDAP_AUTH
По умолчанию: False
LDAP_SERVER

По умолчанию: ‘’

Укажите сервер LDAP здесь или в LDAP_URI.

LDAP_PORT

По умолчанию: 389

Укажите порт сервера LDAP здесь или в LDAP_URI.

LDAP_URI

По умолчанию: None

Устанавливает URI сервера LDAP. Например: ldaps://ldap.mycompany.com:636

LDAP_SEARCH_BASE

По умолчанию: ‘’

Устанавливает базу поиска LDAP. Например: OU=users,DC=mycompany,DC=com

LDAP_BASE_USER

По умолчанию: ‘’

Устанавливает базовый пользователь LDAP для подключения к серверу. Например: CN=some_readonly_account,DC=mycompany,DC=com

LDAP_BASE_PASS

По умолчанию: ‘’

Устанавливает пароль базового пользователя LDAP для подключения к серверу.

LDAP_USER_QUERY

По умолчанию: ‘’

Устанавливает запрос LDAP для возврата объекта пользователя, где %s заменяется идентификатором пользователя. Например: (username=%s) или (sAMAccountName=%s) (Active Directory).

LDAP_USER_DN_TEMPLATE:

По умолчанию: ‘’

Вместо использования жестко заданных имени пользователя и пароля для учетной записи, которая подключается к серверу LDAP, можно использовать учетные данные пользователя, пытающегося войти в Graphite. Это шаблон, который создает полный DN для подключения.

Другие схемы аутентификации

USE_REMOTE_USER_AUTHENTICATION

По умолчанию: False

Включает использование бэкэнда аутентификации Django RemoteUserBackend. Подробнее см. в документации Django.

REMOTE_USER_BACKEND

По умолчанию: “django.contrib.auth.middleware.RemoteUserBackend”

Включает использование альтернативного бэкэнда удаленной аутентификации.

REMOTE_USER_MIDDLEWARE

По умолчанию: “django.contrib.auth.middleware.RemoteUserMiddleware”

Включает использование альтернативного промежуточного ПО удаленной аутентификации.

LOGIN_URL

По умолчанию: /account/login

Изменяет URL, связанный со ссылкой Login в интерфейсе Composer. Это полезно для перенаправления пользователей на внешнюю ссылку аутентификации, например, для аутентификации удаленного пользователя или бэкэнда, такого как django_openid_auth.

Настройка авторизации на панели мониторинга

Эти настройки контролируют, кто имеет право сохранять и удалять панели мониторинга. По умолчанию это могут все, но установив DASHBOARD_REQUIRE_AUTHENTICATION, пользователи должны быть хотя бы авторизованы для этого. Две другие настройки позволяют дополнительно ограничить тех, кто может выполнять эти действия. Пользователи, не имеющие соответствующих прав, смогут использовать и изменять панели мониторинга, но не смогут сохранить изменения или удалить панели.

DASHBOARD_REQUIRE_AUTHENTICATION

По умолчанию: False

Если установлено в True, панели мониторинга могут быть сохранены и удалены только авторизованными пользователями.

DASHBOARD_REQUIRE_EDIT_GROUP

По умолчанию: None

Если установлено в имя группы пользователей, панели мониторинга могут быть сохранены и удалены только авторизованными пользователями, которые являются членами этой группы. Группы могут быть настроены в Django Admin или в LDAP.

Обратите внимание, что DASHBOARD_REQUIRE_AUTHENTICATION должно быть установлено в true - в противном случае эта настройка игнорируется.

DASHBOARD_REQUIRE_PERMISSIONS

По умолчанию: False

Если установлено в True, панели мониторинга могут быть сохранены или удалены только пользователями, имеющими соответствующие права (изменение или удаление) (как установлено в приложении Django Admin). Эти права могут быть установлены на уровне пользователя или группы. Обратите внимание, что право Django ‘add’ не используется.

Обратите внимание, что DASHBOARD_REQUIRE_AUTHENTICATION должно быть установлено в true - в противном случае эта настройка игнорируется.

Настройка базы данных

Ниже приведены настройки базы данных Django. Graphite использует базу данных для хранения профилей пользователей, панелей мониторинга и для функциональности событий. По умолчанию Graphite использует базу данных SQLite в файле, расположенном по адресу STORAGE_DIR/graphite.db. При запуске нескольких экземпляров Graphite-web требуется база данных, такая как PostgreSQL или MySQL, чтобы все экземпляры могли использовать один и тот же источник данных.

Примечание

Начиная с Django 1.2, конфигурация базы данных задается словарем DATABASES вместо старого формата DATABASE_*. Пользователи должны использовать новую спецификацию для работы базы данных.

Полная документация по настройке DATABASES приведена в документации Django.

Примечание

Помните, что для создания новой базы данных требуется запустить PYTHONPATH=$GRAPHITE_ROOT/webapp django-admin.py migrate --settings=graphite.settings --run-syncdb, чтобы создать начальную схему.

Примечание

Если вы используете пользовательский бэкэнд базы данных (кроме SQLite), вы должны сначала создать файл $GRAPHITE_ROOT/webapp/graphite/local_settings.py, который переопределяет настройки, связанные с базой данных из settings.py. Используйте $GRAPHITE_ROOT/webapp/graphite/local_settings.py.example в качестве шаблона.

Если у вас возникают проблемы, раскомментируйте следующую строку в /opt/graphite/webapp/graphite/local_settings.py:

# DEBUG = True

и проверьте журналы webapp. Если вы используете стандартный graphite-example-vhost.conf, журналы будут находиться в /opt/graphite/storage/log/webapp/.

Если вы используете стандартную базу данных SQLite, веб-серверу потребуются разрешения на чтение и запись в файл базы данных. Например, если ваш webapp работает в Apache как пользователь ‘nobody’, вам нужно будет скорректировать разрешения следующим образом:

sudo chown nobody:nobody /opt/graphite/storage/graphite.db

Настройка кластера

Эти настройки конфигурируют webapp Graphite для использования в кластере. Когда CLUSTER_SERVERS установлено, запросы на просмотр и отрисовку метрик приведут к тому, что webapp обратится к другим webapp в CLUSTER_SERVERS для поиска соответствующих метрик. Graphite может либо объединить ответы, либо выбрать лучший ответ, если более чем один сервер кластера возвращает ту же серию.

CLUSTER_SERVERS

Значение по умолчанию: []

Список IP-адресов и портов удалённых веб-приложений Graphite в кластере. Каждый из этих серверов должен иметь локальный доступ к метрическим данным для обслуживания. Пример: [“10.0.2.2:80”, “http://10.0.2.3:80?format=pickle&local=1”]

Определения серверов кластера могут необязательно включать протокол (http:// или https://) и/или дополнительные параметры конфигурации.

Параметр format может быть установлен на pickle (по умолчанию) или msgpack для управления кодировкой, используемой для межкластерных запросов поиска и отображения.

Параметр local может быть установлен на 1 (по умолчанию) или 0 для управления тем, должны ли серверы кластера возвращать только результаты от локальных поисковиков или рассылать запрос своим удалённым поисковикам.

USE_WORKER_POOL

Значение по умолчанию: True

Создаёт пул потоков-работников, которым можно передавать задачи. Это имеет смысл, если есть несколько CLUSTER_SERVERS и/или STORAGE_FINDERS, так как в этом случае общение с ними можно распараллелить. Количество потоков равно: min(количество поисковиков, POOL_MAX_WORKERS)

Будьте осторожны при увеличении количества потоков, особенно если вы запускаете несколько процессов graphite-web (с uwsgi или подобным), так как это увеличит потребление памяти (и количество подключений к memcached).

POOL_MAX_WORKERS

Значение по умолчанию: 10

Максимальное количество потоков-работников, которые должны быть созданы.
REMOTE_RETRY_DELAY

Значение по умолчанию: 60

Время в секундах для добавления веб-приложения в чёрный список после запроса с истекшим сроком действия.

FIND_CACHE_DURATION

Значение по умолчанию: 300

Время кеширования результатов удалённого поиска метрик в секундах.

MAX_FETCH_RETRIES

Значение по умолчанию: 2

Количество попыток для конкретного удалённого извлечения данных.

FIND_TOLERANCE

Значение по умолчанию: FIND_TOLERANCE = 2 * FIND_CACHE_DURATION

Если запрос не целиком попадает в окно FIND_TOLERANCE, мы игнорируем окно. Это предотвращает ненужные удалённые запросы, вызванные тем, что кеш carbon искажает интервалы узлов, давая видимость, что удалённые системы имеют данные, которых у нас нет локально, что мы, вероятно, имеем.

REMOTE_STORE_MERGE_RESULTS

Значение по умолчанию: True

Во время перебалансировки кластера с хешированием по консистентности, после события разбиения на кластер с репликацией > 1 или в других случаях мы можем получить несколько данных TimeSeries для ключа метрики. Объедините их, а не выбирайте «наиболее полные» (поведение до 0.9.14).

REMOTE_STORE_USE_POST

Значение по умолчанию: False

Эта настройка включает POST-запросы вместо GET для удалённых запросов.

REMOTE_STORE_FORWARD_HEADERS

Значение по умолчанию: []

Укажите список HTTP-заголовков, которые вы хотите пересылать от этого хоста при отправке запроса на удалённый сервер веб-приложения в CLUSTER_SERVERS.

REMOTE_EXCLUDE_LOCAL

Значение по умолчанию: False

Попробуйте определить, когда сервер кластера является локальным, и не пересылайте запросы.

REMOTE_RENDERING

Значение по умолчанию: False

Включить удалённое отображение изображений и данных (JSON и т. д.) на удалённых веб-приложениях Graphite. Если эта функция включена, RENDERING_HOSTS также должна быть включена и настроена соответствующим образом.

RENDERING_HOSTS

Значение по умолчанию: []

Список IP-адресов и портов удалённых веб-приложений Graphite, используемых для выполнения рендеринга. Каждое веб-приложение должно иметь доступ к тем же данным, что и веб-приложение Graphite, которое использует эту настройку, либо через общую локальную хранилище, либо с помощью CLUSTER_SERVERS. Пример: [“10.0.2.4:80”, “10.0.2.5:80”]

REMOTE_RENDER_CONNECT_TIMEOUT

Значение по умолчанию: 1.0

Тайм-аут подключения для удалённых запросов рендеринга в секундах.

CARBONLINK_HOSTS

Значение по умолчанию: [127.0.0.1:7002]

Если на этом компьютере работают несколько carbon-кешей, каждый из них должен быть указан здесь, чтобы веб-приложение Graphite могло запросить данные, которые ещё не были сохранены. Удалённые экземпляры carbon-кеша в многохостовой кластеризованной настройке здесь не должны быть указаны. Имена экземпляров должны быть указаны применительно.

CARBONLINK_TIMEOUT

Значение по умолчанию: 1.0

Тайм-аут запросов кеша carbon-кеша в секундах.

CARBONLINK_HASHING_TYPE

Значение по умолчанию: carbon_ch

Возможные значения: carbon_ch, fnv1a_ch

По умолчанию carbon_ch — традиционная реализация консистентного хеширования Graphite. В качестве альтернативы можно использовать fnv1a_ch, которая поддерживает реализацию функции хеширования Fowler–Noll–Vo (FNV-1a), предлагаемую проектом carbon-c-relay relay.

CARBON_METRIC_PREFIX:

Значение по умолчанию: carbon

Префикс для внутренней статистики carbon.

INTRACLUSTER_HTTPS

Значение по умолчанию: False

Эта настройка управляет тем, используется ли https для связи между членами кластера, у которых не указан явный протокол.

Дополнительные настройки Django

Поставляемый с Graphite-web local_settings.py.example импортирует app_settings.py в пространство имён для дальнейшей настройки Django. Это позволяет настраивать стандартные настройки Django и устанавливать и настраивать дополнительные средства-посредники.

Чтобы изменить эти настройки, убедитесь, что app_settings.py импортирован таким образом:

from graphite.app_settings import *

Наиболее распространённые настройки для изменения — INSTALLED_APPS, MIDDLEWARE, и AUTHENTICATION_BACKENDS.

© 2008–2012 Chris Davis
© 2011–2016 The Graphite Project
Licensed under the Apache License, Version 2.0.
https://graphite.readthedocs.io/en/latest/config-local-settings.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API