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