Графит лдсп: ЛДСП Kronospan Серый Графит 0162 PE 2800x2070x16 мм

Панель ЛДСП Графит (16х1830х2750): древесно-плитные материалы

Панель ЛДСП Графит 16х1830х2750

Ламинированная древесно-стружечная плита (ЛДСП)

― древесно-стружечная плита высокого качества, облицованная ламинирующими пленками широкой цветовой гаммы Шаттдекора с целью повышения потребительских свойств, сопротивляемости к внешним механическим и химическим воздействиям (влажность, температурные перепады). Официально принятое сокращение ― ламинированная ДСтП.

Предлагаемая нами плита имеет следующие показатели

  • древесина, используемая при получении производственного сырья;
  • плотность прессования;
  • габаритные размер листа.
    Форматы плиты, мм вес, кг
    на 1 м2 на лист
    2750x1830x10 7,8 39,3
    2750x1830x16 11,39 57,3
    2750x1830x18 12,82 64,5
    2750x1830x22 14,22 71,6

    В настоящее время, как производители, так и потребители уделяют большое внимание характеристикам ЛДСП, ведь от плиты зависит качество мебели.

    Нашей целью является бесперебойное обеспечение клиентов ламинированной ДСП, соответствующей российским и европейским стандартам, поэтому особое место в процессе производства занимает система контроля качества.

    Во всем мире особое внимание уделяется показателю экологической безопасности плиты. Поэтому предлагаемая нами продукция не только соответствует требованиям российских государственных стандартов, но по показателю выделения формальдегида даже превышает их. Самый высокий класс эмиссии плиты Е1 согласно европейским нормативам не должен превышать содержание формальдегида 8 мг на 100 г. абсолютно сухого ДСП, производит плиты с содержанием формальдегида 4 – 6 мг. По этому показателю ЛДСП подходит для производства любых видов мебели (бытовой, офисной, детской, специализированной и пр.)

    В подведение итогов хочется сказать, что, благодаря простоте обработки и огромной цветовой гамме покрытий, ламинированные ДСП нашли широчайшее применение в мебельном производстве. В отличие от изделий из натурального дерева, продукция на основе ЛДСП выгодно отличается по стоимости, так как трудозатраты при ее производстве несоизмеримо меньше. В мебели, выполненной из этого материала, не заводятся вредители, она не рассыхается и, при соблюдении элементарных условий эксплуатации, способна радовать своих хозяев долгим сроком безупречной службы. Также ламинированные древесно-стружечные плиты используются в качестве материала для внутренних отделочных работ. Они просто незаменимы при создании интерьеров эконом-класса, в дизайн-проектах которых присутствуют элементы с древесной фактурой.

Урал Декор | Каталог мебельной фурнитуры и плитной продукции для производства мебели

Пользовательское Соглашение

Настоящее Пользовательское Соглашение (Далее Соглашение) регулирует отношения между ООО «Мебельная Фурнитура» (далее Урал Декор или Администрация) с одной стороны и пользователем сайта с другой. Сайт Урал Декор не является средством массовой информации.

Используя сайт, Вы соглашаетесь с условиями данного соглашения. Если Вы не согласны с условиями данного соглашения, не используйте сайт Урал Декор!

Права и обязанности сторон

Пользователь имеет право:
— осуществлять поиск информации на сайте
— получать информацию на сайте
— распространять информацию на сайте
— копировать информацию на другие сайты с указанием источника
— требовать от администрации скрытия любой информации о пользователе
— требовать от администрации скрытия любой информации переданной пользователем сайту

Администрация имеет право:

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

Пользователь обязуется:
— обеспечить достоверность предоставляемой информации
— не нарушать работоспособность сайта
— не использовать скрипты (программы) для автоматизированного сбора информации и/или взаимодействия с Сайтом и его Сервисами

Администрация обязуется:
— поддерживать работоспособность сайта за исключением случаев, когда это невозможно по независящим от Администрации причинам.
— осуществлять разностороннюю защиту учетной записи Пользователя

Ответственность сторон

— администрация не несёт ответственность за несовпадение ожидаемых Пользователем и реально полученных услуг
— администрация не несет никакой ответственности за услуги, предоставляемые третьими лицами

Условия действия Соглашения Данное Соглашение вступает в силу при любом использовании данного сайта. Соглашение перестает действовать при появлении его новой версии. Администрация оставляет за собой право в одностороннем порядке изменять данное соглашение по своему усмотрению. При изменении соглашения, в некоторых случаях, администрация может оповестить пользователей удобным для нее способом.

Гармония

В новую квартиру нужна была кухня, долго выбирала, думала, присматривалась к разным фирмам. Хотелось: 1. работать с производителем, думаю, причины понятны. 2. учесть все-все, т.к. делала на заказ и можно было сделать все удобно и “под себя”. 3. поскольку я не эксперт в области качества, нужен был грамотный и ненавязчивый совет и по ширине фасадов и по столешнице и фартуку и размерам и еще сотня других параметров. 3. грамотный замер стен, углов т.к. кухня практически “в потолок” и должна была “встать” правильно. 4. профессиональную сборку, т.е. хотелось быть уверенной, что кухню собирают и технику встраивают (варочная поверхность, духовой шкаф, вытяжка) люди, которые этим занимаются постоянно, а не дилетанты. 5. хорошую репутацию производителя!!! 6. не заоблачный ценник. 7. качественную фурнитуру. И это не все. В общем, требований было много. Поскольку изучать вопрос я начала еще до сдачи квартиры, изучила все, что могла, побывала во многих салонах, в некоторых по несколько раз) Итог – фабрика Гармония (Великие луки). Замерщик от фабрики – пунктуален и аккуратен. Пока я принимала квартиру от застройщика, он все замерил и, что интересно, я его в процессе даже не видела) + сделал схему разводки розеток для кухни. Однозначно плюс. Дизайнеру Наталье (“Гармония Мебель” ТЦ “Мебельный континент” у метро Электросила) отдельная благодарность за ее терпение и очень нужные советы. Я что-то меняла, у меня были сотни вопросов от высоты ножек до ширины зазора между потолком и “крышей” кухни, я звонили, писала, приезжала. Она во всем принимала участие, вплоть до модели вытяжки. Все сделали в срок, как обещали. Срок производства длительный, но у меня кухня из эмали (белый глянец), а это особая технология, так что к длительность понятна. Тут главное – качественно. Цены по сравнению с другими производителями – то, что надо. Да, недешево, но по сравнению с аналогами по качеству у других производителей, цены действительно гуманные. Фурнитура – Hettich. Петли с доводчиками. Ящики полного выдвижения, я от них в восторге, очень удобно. Спасибо сборщикам!!! Установили кухню и вмонтировали технику очень качественно, ничего не болтается, не ходит, не дребезжит. Все работы заняли 6 часов!!! Не устанавливайте самостоятельно, сами вы все так не сделаете, скупой платит дважды. Итог – я очень довольна! Однозначно, рекомендую!!!

В новую квартиру нужна была кухня, долго выбирала, думала, присматривалась к разным фирмам. Хотелось: 1. работать с производителем, думаю, причины понятны. 2. учесть все-все, т.к. делала на заказ и можно было сделать все удобно и “под себя”. 3. поскольку я не эксперт в области качества, нужен был грамотный и ненавязчивый совет и по ширине фасадов и по столешнице и фартуку и размерам и еще сотня других параметров. 3. грамотный замер стен, углов т.к. кухня практически “в потолок” и должна была “встать” правильно. 4. профессиональную сборку, т.е. хотелось быть уверенной, что кухню собирают и технику встраивают (варочная поверхность, духовой шкаф, вытяжка) люди, которые этим занимаются постоянно, а не дилетанты. 5. хорошую репутацию производителя!!! 6. не заоблачный ценник. 7. качественную фурнитуру. И это не все. В общем, требований было много. Поскольку изучать вопрос я начала еще до сдачи квартиры, изучила все, что могла, побывала во многих салонах, в некоторых по несколько раз) Итог – фабрика Гармония (Великие луки). Замерщик от фабрики – пунктуален и аккуратен. Пока я принимала квартиру от застройщика, он все замерил и, что интересно, я его в процессе даже не видела) + сделал схему разводки розеток для кухни. Однозначно плюс. Дизайнеру Наталье (“Гармония Мебель” ТЦ “Мебельный континент” у метро Электросила) отдельная благодарность за ее терпение и очень нужные советы. Я что-то меняла, у меня были сотни вопросов от высоты ножек до ширины зазора между потолком и “крышей” кухни, я звонили, писала, приезжала. Она во всем принимала участие, вплоть до модели вытяжки. Все сделали в срок, как обещали. Срок производства длительный, но у меня кухня из эмали (белый глянец), а это особая технология, так что к длительность понятна. Тут главное – качественно. Цены по сравнению с другими производителями – то, что надо. Да, недешево, но по сравнению с аналогами по качеству у других производителей, цены действительно гуманные. Фурнитура – Hettich. Петли с доводчиками. Ящики полного выдвижения, я от них в восторге, очень удобно. Спасибо сборщикам!!! Установили кухню и вмонтировали технику очень качественно, ничего не болтается, не ходит, не дребезжит. Все работы заняли 6 часов!!! Не устанавливайте самостоятельно, сами вы все так не сделаете, скупой платит дважды. Итог – я очень довольна! Однозначно, рекомендую!!!

Graphite-web’s local_settings.py — документация Graphite 1.2.0

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 в некорневом расположении.

СЕКРЕТНЫЙ КЛЮЧ

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

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

ALLOWED_HOSTS

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

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

TIME_ZONE

По умолчанию: Америка / Чикаго

Установите местный часовой пояс.Часовой пояс указывается с использованием имен zoneinfo.

DATE_FORMAT

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

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

DOCUMENTATION_URL

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

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

LOG_RENDERING_PERFORMANCE

По умолчанию: Ложь

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

LOG_CACHE_PERFORMANCE

По умолчанию: Ложь

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

LOG_INFO_PERFORMANCE

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

Запускает создание info.log , в котором регистрируются общие журналы.Включено по умолчанию.

ОТЛАДКА = Истина

По умолчанию: Ложь

Позволяет создавать подробные страницы ошибок Django. Подробности смотрите в документации Django.

ПРОМЫВКА

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

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

MEMCACHE_HOSTS

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

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

Установите это значение в список хостов memcached. Пример: ['10 .10.10.10: 11211 ', '10 .10.10.11: 11211', '10 .10.10.12: 11211 ']

MEMCACHE_KEY_PREFIX

По умолчанию: графит

Префикс Memcached для графитовых ключей.

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), # по умолчанию 60 секунд
                        (7200, 120), #> = 2 часа запросы кешируются 2 минуты
                        (21600, 180)] #> = 6 часов запросы кэшируются 3 минуты
 

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

AUTO_REFRESH_INTERVAL

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

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

MAX_TAG_LENGTH

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

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

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

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

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

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

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

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

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

 Псевдоним / static / "/ opt / graphite / static"
 

Для Nginx:

 location / static / {
    псевдоним / opt / graphite / static /;
}
 

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

DASHBOARD_CONF
По умолчанию: CONF_DIR / dashboard.conf Расположение конфигурации Graphite-web Dashboard.
GRAPHTEMPLATES_CONF
По умолчанию: CONF_DIR / graphTemplates.conf Расположение конфигурации Graphite-web Graph Template.
WHISPER_DIR
По умолчанию: / opt / graphite / storage / Whisper Расположение файлов данных Whisper.
CERES_DIR
По умолчанию: / opt / graphite / storage / ceres Расположение файлов данных Цереры.
RRD_DIR
По умолчанию: / opt / graphite / storage / rrd Расположение файлов данных RRD.
СТАНДАРТНЫЕ КАТАЛОГИ
По умолчанию: [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.
НАЙТИ_ХРАНИЛИЩА
По умолчанию: () Можно использовать альтернативный уровень хранения, отличный от используемого по умолчанию, Whisper, чтобы удовлетворить определенные потребности.См .: http://graphite.readthedocs.io/en/latest/storage-backends.html
FETCH_TIMEOUT

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

Тайм-аут выборки данных в секундах.

FIND_TIMEOUT

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

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

TAGDB
По умолчанию: «graphite.tags.localdatabase.LocalDatabaseTagDB» Драйвер базы данных тегов для использования, другие варианты включают графит .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’
TAGDB_REDIS_PASSWORD
По умолчанию: ‘’ Пароль Redis для использования с TAGDB = ‘graphite.tags.redis.RedisTagDB ’

Настроить веб-сервер (Apache)

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

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

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

 # Это идет в httpd.conf
Включите /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
По умолчанию: Ложь

Конфигурация аутентификации

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

LDAP

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

 # Пример SSL
импорт 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")
 
ИСПОЛЬЗОВАТЬ_LDAP_AUTH
По умолчанию: Ложь
LDAP_SERVER

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

Установите сервер LDAP здесь или, альтернативно, в LDAP_URI .

LDAP_PORT

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

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

LDAP_URI

По умолчанию: Нет

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

LDAP_SEARCH_BASE

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

Устанавливает базу поиска LDAP. Например. OU = пользователи, 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 заменяется идентификатором пользователя. Например. (имя пользователя =% s) или (sAMAccountName =% s) (Active Directory).

LDAP_USER_DN_TEMPLATE:

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

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

Другая аутентификация

USE_REMOTE_USER_AUTHENTICATION

По умолчанию: Ложь

Позволяет использовать серверную часть аутентификации 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, пользователи должны как минимум войти в систему, чтобы сделать это. Два других параметра позволяют дополнительно ограничить круг лиц, которые могут выполнять эти действия. Пользователи, не авторизованные должным образом, по-прежнему смогут использовать и изменять информационные панели, но не смогут сохранять изменения или удалять информационные панели.

ПРИБОРНАЯ ПАНЕЛЬ_REQUIRE_AUTHENTICATION

По умолчанию: Ложь

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

DASHBOARD_REQUIRE_EDIT_GROUP

По умолчанию: Нет

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

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

DASHBOARD_REQUIRE_PERMISSIONS

По умолчанию: Ложь

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

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

Конфигурация базы данных

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

Примечание

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

Полную документацию по настройке БАЗЫ ДАННЫХ см. В документации Django.

Примечание

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

Примечание

Если вы используете собственный сервер базы данных (кроме 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:

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

Если вы используете базу данных SQLite по умолчанию, вашему веб-серверу потребуются разрешения на чтение и запись в файл базы данных.Так, например, если ваше веб-приложение запущено в Apache как пользователь «none», вам нужно будет исправить разрешения следующим образом:

 sudo chown никто: никто /opt/graphite/storage/graphite.db
 

Конфигурация кластера

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

CLUSTER_SERVERS

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

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

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

Параметр формата может иметь значение 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, мы игнорируем это окно.Это предотвращает ненужные удаленные выборки возникает, когда углеродный кеш искажает node.intervals, создавая впечатление, что удаленные системы имеют данные, которых у нас нет локально, что, вероятно, у нас есть.

REMOTE_STORE_MERGE_RESULTS

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

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

REMOTE_STORE_USE_POST

По умолчанию: Ложь

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

REMOTE_STORE_FORWARD_HEADERS

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

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

REMOTE_EXCLUDE_LOCAL

По умолчанию: Ложь

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

REMOTE_RENDERING

По умолчанию: Ложь

Разрешить удаленный рендеринг изображений и данных (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]

Если на этом компьютере запущено несколько углеродных кэшей, каждый из них должен быть указан здесь, чтобы веб-приложение Graphite могло запрашивать в кешах данные, которые еще не были сохранены. Экземпляры удаленного углеродного кэша в кластерной установке с несколькими хостами должны быть указаны здесь , а не .Имена экземпляров должны быть указаны в соответствующем списке. Пример: [‘127.0.0.1:7002:a’ ,’127.0.0.1:7102:b ’,‘ 127.0.0.1:7202:c ’]

CARBONLINK_TIMEOUT

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

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

CARBONLINK_HASHING_TYPE

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

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

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

CARBON_METRIC_PREFIX:

По умолчанию: углерод

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

INTRACLUSTER_HTTPS

По умолчанию: Ложь

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

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

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

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

 из графита.app_settings импорт *
 

Наиболее распространенными настройками для управления являются INSTALLED_APPS , MIDDLEWARE и AUTHENTICATION_BACKENDS .

django — Аутентификация LDAP не работает в Graphite

Я установил Graphite на сервере RHEL7. Я выполнил настройку LDAP в Graphite local_settings.py

  ## Настройка аутентификации LDAP / ActiveDirectory
USE_LDAP_AUTH = Верно
LDAP_SERVER = "ldap-test.com "
LDAP_PORT = 389
#LDAP_USE_TLS = Ложь

## Ручная настройка URI / запроса
LDAP_URI = "ldap: //ldap-test.com: 389"
LDAP_SEARCH_BASE = "ou = xxxxx, dc = zxxxx"
LDAP_BASE_USER = "uid = xxxx, ou = xxxxx, cn = xxxxx"
LDAP_BASE_PASS = "ххххх"
LDAP_USER_QUERY = "(sAMAccountName =% s)" # Для использования Active Directory "(sAMAccountName =% s)"

# Шаблон DN пользователя для использования для привязки (и аутентификации) к
# Сервер LDAP. % (имя пользователя) заменяется именем пользователя, указанным в
# графитовый логин.
LDAP_USER_DN_TEMPLATE = "cn =% (имя пользователя), ou = xxxxx, dc = xxxxx"

# Если вы хотите дополнительно настроить параметры подключения ldap, вам следует
# напрямую использовать ldap.set_option для установки глобальных опций модуля ldap.
# Например:
#
#import ldap
# ldap.set_option (ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW) # Используйте # ldap.OPT_X_TLS_DEMAND для принудительного использования TLS
# ldap.set_option (ldap.OPT_REFERRALS, 0) # Включить для Active Directory
# 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")
# ldap.set_option (ldap.OPT_DEBUG_LEVEL, 65535) # Чтобы включить подробную отладку
# См. Http: // www.python-ldap.org/ для получения дополнительных сведений об этих параметрах.
  

Я также перезапустил графическую службу service uwsgi restart . При попытке авторизоваться выдает

«Попытка аутентификации не удалась, убедитесь, что вы ввели свой логин. и пароль правильно «

В журналах также не могу найти сообщения об ошибках. Как исправить эту проблему.

Согласно приведенному ниже комментарию, я обновил файл views.py, расположенный в папке graphite / webapp / graphite.

  Отслеживание импорта
из django.http import HttpResponseServerError
из загрузчика импорта django.template


def server_error (запрос, template_name = '500.html'):
  template = loader.get_template (имя_шаблона)
  context = {'stacktrace': traceback.format_exc ()}
  вернуть HttpResponseServerError (template.render (context))

# Написание пользовательского бэкенда аутентификации
из django.contrib.auth.models импортировать пользователя
импорт ldap

# Написание собственной логики для аутентификации ldap
def verifyLogin (имя пользователя = Нет, пароль = Нет):
  "" "Проверяет учетные данные для имени пользователя и пароля.Возвращает None в случае успеха или строку с описанием ошибки в случае неудачи.
     # Адаптируйтесь к вашим потребностям
  "" "
  если не имя пользователя или не пароль:
     вернуть "Неверное имя пользователя или пароль"
  LDAP_SERVER = 'XX.XX.XX'
  # полное имя пользователя AD
  LDAP_USERNAME = 'uid = xx, ou = xx, cn = xx'
  # твой пароль
  LDAP_PASSWORD = xxxxxxxxxx
  base_dn = 'ou = xx, dc = xx'
  ldap_filter = '(sAMAccountName =% s)'
  attrs = ['memberOf']
  пытаться:
      # создать клиента
      ldap_client = ldap.initialize (LDAP_SERVER)
      # выполняем синхронное связывание
      ldap_client.set_option (ldap.OPT_REFERRALS, 0)
      ldap_client.simple_bind_s (LDAP_USERNAME, LDAP_PASSWORD)
  кроме ldap.INVALID_CREDENTIALS:
      #print ("wron")
      ldap_client.unbind ()
      вернуть "Неверное имя пользователя или пароль"
  кроме ldap.SERVER_DOWN:
      #print ("вниз")
      вернуть "сервер AD недоступен"
      # получить все группы пользователей и сохранить их в сеансе cerrypy для будущего использования
      ab = str (ldap_client.search_s (base_dn,
               ldap.SCOPE_SUBTREE, ldap_filter, attrs) [0] [1] ['memberOf'])
      #print ("ab" + ab)
  ldap_client.отвязать ()
  вернуть успех
  

‘ По-прежнему возникает та же ошибка.

graphite-web / local_settings.py.example на master · graphite-project / graphite-web · GitHub

. .
## Графит local_settings.py
# Измените этот файл, чтобы изменить настройки веб-приложения Graphite по умолчанию
#
# В этот файл также можно добавить дополнительные настройки Django
###################################
# Общая конфигурация #
###################################
#
# Установите длинную случайную уникальную строку для использования в качестве секретного ключа для этого
# install.Этот ключ используется для соления хэшей, используемых в токенах аутентификации,
# ПО промежуточного слоя CRSF, хранилище файлов cookie и т. Д. Это должно быть установлено одинаково для
# экземпляров, если используется за балансировщиком нагрузки.
#SECRET_KEY = ‘UNSAFE_DEFAULT’
# В Django 1.5+ установите это в список хостов, на которых ваши графические экземпляры —
# доступен как.См .:
# https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-ALLOWED_HOSTS
#ALLOWED_HOSTS = [‘*’]
# Установите местный часовой пояс (по умолчанию Django — Америка / Чикаго)
# Если ваши графики смещены на пару часов, то это, вероятно,
Для # необходимо явно указать местный часовой пояс.
#TIME_ZONE = ‘America / Los_Angeles’
# Установить краткий формат даты по умолчанию. См. Strftime (3) для получения информации о поддерживаемых последовательностях.
#DATE_FORMAT = ‘% m /% d’
# Переопределите это, чтобы предоставить документацию, относящуюся к вашему развертыванию Graphite
# DOCUMENTATION_URL = «http: // графит.readthedocs.io/ «
# Logging
# Их также можно настроить с помощью LOGGING Django:
# https://docs.djangoproject.com/en/1.11/topics/logging/
#LOG_ROTATION = True
#LOG_ROTATION_COUNT = 1
#LOG_RENDERING_PERFORMANCE = True
#LOG_CACHE_PERFORMANCE = True
#LOG_INFO_PERFORMANCE = Ложь
# Имена файлов для вывода журнала, установите ‘-‘ для входа в stderr
#LOG_FILE_INFO = ‘info.log ‘
#LOG_FILE_EXCEPTION = ‘exception.log’
#LOG_FILE_CACHE = ‘cache.log’
#LOG_FILE_RENDERING = ‘рендеринг.log’
# Включить полное отображение страницы отладки при исключениях (страницы внутренних ошибок сервера)
#DEBUG = True
# Если используются файлы RRD и rrdcached, установить адрес или сокет демона
#FLUSHRRDCACHED = ‘unix: / var / run / rrdcached.носок ‘
# Здесь перечислены серверы memcached, которые будут использоваться этим веб-приложением.
# Если у вас есть кластер веб-приложений, вы должны убедиться, что все они
# имеют * точное * значение для этого параметра. Это увеличит кеш
# эффективность. Установка пустого MEMCACHE_HOSTS отключит использование
# memcached целиком.
#
# Вы не должны использовать здесь адрес обратной связи (127.0.0.1), если используете кластеризацию
# поскольку каждое веб-приложение в кластере должно использовать одни и те же значения, чтобы предотвратить
# ненужные промахи в кэше. Установите значение [], чтобы отключить кеширование изображений и полученных данных.
#MEMCACHE_HOSTS = [‘10.10.10.10: 11211 ‘, ’10 .10.10.11: 11211’, ’10 .10.10.12: 11211 ‘]
# По умолчанию данные показателей и графики кэшируются на одну минуту. Если определено,
# DEFAULT_CACHE_POLICY — список сопоставленных кортежей минимальных временных диапазонов запроса.
# к длительности кеширования результатов. Это позволяет для больших запросов быть
# кэшируется на более длительный период времени.Время в секундах. Если политика
# пусто или не определено, все результаты будут кэшироваться в течение DEFAULT_CACHE_DURATION.
#DEFAULT_CACHE_DURATION = 60 # Кэшировать изображения и данные на 1 минуту
#DEFAULT_CACHE_POLICY = [(0, 60), # по умолчанию 60 секунд
# (7200, 120), #> = 2 часа запросы кэшируются 2 минуты
# (21600, 180)] #> = 6 часов запросы кэшируются 3 минуты
#MEMCACHE_KEY_PREFIX = «графит»
# Здесь перечислены параметры memcached.По умолчанию — пустой диктант.
# Допустимые параметры зависят от реализации Memcached и версии Django.
# До Django 1.10 параметры используются только для pylibmc.
# Начиная с 1.11, параметры используются как для python-memcached, так и для pylibmc.
#MEMCACHE_OPTIONS = {‘socket_timeout’: 0,5}
# этот параметр управляет значением xFilesFactor по умолчанию, используемым для агрегирования во время запроса
DEFAULT_XFILES_FACTOR = 0
# Установить URL_PREFIX при развертывании graphite-web в некорневое расположение
#URL_PREFIX = ‘/ graphite’
# Graphite использует теги Django для поддержки тегов в событиях.По умолчанию каждые
Длина тега # не должна превышать 50 символов.
#MAX_TAG_LENGTH = 50
# Интервал для функции автоматического обновления в Composer, измеряемый в секундах.
#AUTO_REFRESH_INTERVAL = 60
# Таймауты для запросов на поиск и рендеринг
#FIND_TIMEOUT = 3.0 # Тайм-аут для запросов на поиск метрики
#FETCH_TIMEOUT = 3.0 # Тайм-аут для выборки данных серии
# Разрешить имена метрик UTF-8 (может вызвать проблемы с производительностью)
# UTF8_METRICS = Ложь
###################################
# Пути файловой системы #
###################################
#
# Измените только GRAPHITE_ROOT, если ваша установка просто перенесена из / opt / graphite
# куда-нибудь
#GRAPHITE_ROOT = ‘/ opt / graphite’
# Большинство установок, выполненных вне отдельного дерева, такого как / opt / graphite, будут
# нужно изменить эти настройки.Обратите внимание, что настройки по умолчанию для каждого
# из них относится к GRAPHITE_ROOT.
#CONF_DIR = ‘/ opt / graphite / conf’
#STORAGE_DIR = ‘/ opt / graphite / storage’
#STATIC_ROOT = ‘/ opt / graphite / static’
#LOG_DIR = ‘/ opt / graphite / storage / log / webapp’
#INDEX_FILE = ‘/ opt / graphite / storage / index’ # Поиск файла индекса
# Для дальнейшей или полной настройки путей измените следующее.Обратите внимание, что
# настройки по умолчанию для каждого из них относятся к CONF_DIR и STORAGE_DIR
#
## Файлы конфигурации Webapp
#DASHBOARD_CONF = ‘/opt/graphite/conf/dashboard.conf’
#GRAPHTEMPLATES_CONF = ‘/opt/graphite/conf/graphTemplates.conf’
## Каталоги данных
#
# ПРИМЕЧАНИЕ: Если какой-либо каталог в STANDARD_DIRS не читается, просмотр метрики будет нарушен.
#
#CERES_DIR = ‘/ opt / graphite / storage / ceres’
#WHISPER_DIR = ‘/ opt / graphite / storage / Whisper’
#RRD_DIR = ‘/ opt / graphite / storage / rrd’
#
# Каталоги данных с использованием «Стандартного» средства поиска метрик (т.е.е. не Церера)
#STANDARD_DIRS = [WHISPER_DIR, RRD_DIR] # По умолчанию: устанавливается из указанных выше переменных
## Искатели данных
# Можно использовать альтернативный уровень хранения, отличный от стандартного, Whisper,
# для удовлетворения конкретных потребностей.
# См .: http: // graphite.readthedocs.io/en/latest/storage-backends.html
#
# STORAGE_FINDERS = (
# ‘graphite.finders.remote.RemoteFinder’,
# ‘graphite.finders.standard.StandardFinder’,
# ‘graphite.finders.ceres.CeresFinder’,
#)
###################################
# Конфигурация электронной почты #
###################################
#
# Используется для отправки по электронной почте визуализированных графиков.Бэкэнд по умолчанию — SMTP.
#EMAIL_BACKEND = ‘django.core.mail.backends.smtp.EmailBackend’
#
# Чтобы отправлять электронные письма на пол, включите вместо этого Dummy backend.
#EMAIL_BACKEND = ‘django.core.mail.backends.dummy.EmailBackend’
#EMAIL_HOST = ‘локальный хост’
#EMAIL_PORT = 25
#EMAIL_HOST_USER = »
#EMAIL_HOST_PASSWORD = »
#EMAIL_USE_TLS = Ложь
###################################
# Конфигурация аутентификации #
###################################
#
## Настройка аутентификации LDAP / ActiveDirectory
#USE_LDAP_AUTH = Верно
#LDAP_SERVER = «ldap.mycompany.com «
#LDAP_PORT = 389
#LDAP_USE_TLS = Ложь
## Ручная настройка URI / запроса
#LDAP_URI = «ldaps: //ldap.mycompany.com: 636»
#LDAP_SEARCH_BASE = «OU = users, DC = mycompany, DC = com»
#LDAP_BASE_USER = «CN = some_readonly_account, DC = mycompany, DC = com»
#LDAP_BASE_PASS = «readonly_account_password»
#LDAP_USER_QUERY = «(username =% s)» # Для использования Active Directory «(sAMAccountName =% s)»
# Шаблон DN пользователя для использования для привязки (и аутентификации) к
# Сервер LDAP.% (имя пользователя) заменяется именем пользователя, указанным в
# графитовый логин.
#LDAP_USER_DN_TEMPLATE = «CN =% (имя пользователя) s, OU = пользователи, DC = mycompany, DC = com»
# Если вы хотите дополнительно настроить параметры подключения ldap, вам следует
# напрямую использовать ldap.set_option для установки глобальных опций модуля ldap.
# Например:
#
#import ldap
# ldap.set_option (ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW) # Используйте ldap.OPT_X_TLS_DEMAND для принудительного использования TLS
# ldap.set_option (ldap.OPT_REFERRALS, 0) # Включить для Active Directory
#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»)
# ldap.set_option (ldap.OPT_DEBUG_LEVEL, 65535) # Для включения подробной отладки
# См. Http://www.python-ldap.org/ для получения дополнительных сведений об этих параметрах.
## REMOTE_USER аутентификация. См .: https://docs.djangoproject.com/en/dev/howto/auth-remote-user/
#USE_REMOTE_USER_AUTHENTICATION = True
# Заменить URL для ссылки входа (например, для django_openid_auth)
#LOGIN_URL = ‘/ account / login’
##############################
# Авторизация для Личного кабинета #
##############################
# По умолчанию на дашбордах нет безопасности — любой пользователь может добавлять, изменять или удалять их.
# В этом разделе представлены 3 разные модели авторизации разной степени строгости.
# Если установлено значение True, пользователи должны войти в систему, чтобы сохранять или удалять панели мониторинга. По умолчанию False
#DASHBOARD_REQUIRE_AUTHENTICATION = True
# Если установлено имя группы пользователей, панели мониторинга могут быть сохранены и удалены любым пользователем в этом
# группа.Группы можно настроить в приложении Django Admin или в LDAP. По умолчанию Нет.
# ПРИМЕЧАНИЕ: игнорируется, если DASHBOARD_REQUIRE_AUTHENTICATION не установлен
#DASHBOARD_REQUIRE_EDIT_GROUP = «группа-редакторы-панели»
# Если установлено значение True, панели мониторинга могут быть сохранены или удалены любым пользователем, имеющим соответствующий
# (изменить или удалить) разрешение (как установлено в приложении Django Admin).По умолчанию False
# ПРИМЕЧАНИЕ: игнорируется, если DASHBOARD_REQUIRE_AUTHENTICATION не установлен
#DASHBOARD_REQUIRE_PERMISSIONS = True
#########################
# Конфигурация базы данных #
#########################
#
# По умолчанию используется sqlite.Если вы группируете несколько веб-приложений, вам понадобится
# для настройки внешней базы данных (например, MySQL) и настройки всего веб-приложения
# экземпляров для использования одной и той же базы данных. Обратите внимание, что эта база данных используется только для хранения
# Модели Django, такие как сохраненные графики, информационные панели, пользовательские настройки и т. Д.
# Метрические данные здесь не хранятся.
#
# НЕ ЗАБУДЬТЕ ЗАПУСТИТЬ МИГРАЦИЮ ПОСЛЕ НАСТРОЙКИ НОВОЙ БАЗЫ ДАННЫХ
# http://graphite.readthedocs.io/en/latest/config-database-setup.html
#
#
# Доступны следующие встроенные механизмы баз данных:
# джанго.db.backends.postgresql_psycopg2
# django.db.backends.mysql
# django.db.backends.sqlite3
# django.db.backends.oracle
#
# По умолчанию ‘django.db.backends.sqlite3’ с файлом ‘graphite.db’
# находится в STORAGE_DIR
#
#DATABASES = {
# ‘default’: {
# ‘ИМЯ’: ‘/ opt / graphite / storage / graphite.db ‘,
# ‘ДВИГАТЕЛЬ’: ‘django.db.backends.sqlite3’,
# ‘ПОЛЬЗОВАТЕЛЬ’: »,
# ‘ПАРОЛЬ’: »,
# ‘HOST’: »,
# ‘ПОРТ’: ‘
#}
#}
#
########################
# Конфигурация кластера #
########################
#
# Чтобы избежать чрезмерного поиска DNS, вы хотите использовать только IP-адреса
# во всем этом разделе.
#
# Здесь должен быть указан IP-адрес (и, возможно, порт) веб-приложения на каждом
# удаленный сервер в кластере. Каждый из этих серверов должен иметь локальный доступ к
# метрические данные. Обратите внимание, что первым сервером, который вернет совпадение по запросу, будет
# используется.
#CLUSTER_SERVERS = [«10.0.2.2:80», «10.0.2.3:80»]
# Использование пула рабочих потоков для параллельной отправки запросов поиска
#USE_WORKER_POOL = True
# Максимальное количество рабочих потоков для одновременных операций хранения
#POOL_MAX_WORKERS = 10
# Этот параметр определяет, используется ли https для связи между участниками кластера
#INTRACLUSTER_HTTPS = Ложь
# Время до повторной попытки неудачного удаленного веб-приложения
#REMOTE_RETRY_DELAY = 60.0
# Завершить все запросы, если какой-либо удаленный вызов веб-приложения завершился неудачно
#STORE_FAIL_ON_ERROR = Ложь
# Пытаться определить, когда кластерный сервер является localhost и не пересылать запросы
#REMOTE_EXCLUDE_LOCAL = Ложь
# Количество попыток для определенной удаленной выборки данных.
#MAX_FETCH_RETRIES = 2
#FIND_CACHE_DURATION = 300 # Время кэширования результатов удаленного поиска метрик
# Если запрос не полностью попадает в окно FIND_TOLERANCE
# игнорируем окно. Это предотвращает ненужные удаленные выборки
# вызвано перекосом узла кэша углерода.интервалы, дающие вид
# в удаленных системах есть данные, которых у нас нет локально, что, вероятно, у нас есть.
#FIND_TOLERANCE = 2 * FIND_CACHE_DURATION
#REMOTE_STORE_USE_POST = False # Использовать POST вместо GET для удаленных запросов
# Размер буфера, используемого для потоковой передачи ответов удаленного кластера.Установите 0, чтобы избежать десериализации потоковой передачи.
#REMOTE_BUFFER_SIZE = 1024 * 1024
# Во время перебалансировки согласованного хеш-кластера, после события раздела на репликации> 1 кластера,
# или в других случаях мы можем получить несколько данных TimeSeries для ключа метрики. Скорее объедините их вместе
# который выбирает «самый полный» (pre-0.9.14 поведение).
#REMOTE_STORE_MERGE_RESULTS = Верно
# Предоставьте список заголовков HTTP, которые вы хотите пересылать с этого хоста
# при запросе к удаленному серверу webapp в CLUSTER_SERVERS
#REMOTE_STORE_FORWARD_HEADERS = [] # Итерация имен HTTP-заголовков
## Настройки удаленного рендеринга
# Установите значение True, чтобы включить рендеринг графиков в удаленном веб-приложении
#REMOTE_RENDERING = True
# Список IP-адресов (и, возможно, порта) веб-приложения на каждом удаленном сервере, который
# будет использоваться для рендеринга.Обратите внимание, что каждый хост рендеринга должен иметь локальный
# доступ к данным метрики или должен быть настроен CLUSTER_SERVERS
#RENDERING_HOSTS = []
#REMOTE_RENDER_CONNECT_TIMEOUT = 1.0
# Если на этом компьютере запущено несколько углеродных кешей (обычно за
# реле, использующее согласованное хеширование), вам необходимо указать IP-адрес, кеш
# порт запроса и имя экземпляра каждого экземпляра углеродного кэша на локальном
# (НЕ каждый углеродный кеш во всем кластере).Кеш по умолчанию
# порт запроса — 7002, и общая схема — использовать 7102, например, b, 7202
# например c и т. Д.
# Если вы используете последовательное хеширование, сохраняйте порядок хостов таким же, как
# порядок НАЗНАЧЕНИЙ в вашем реле — иначе вы получите промахи кеша.
#
# Вы * должны * использовать 127.0.0.1 здесь в большинстве случаев.
#
#CARBONLINK_HOSTS = [«127.0.0.1:7002:a», «127.0.0.1:7102:b», «127.0.0.1:7202:c»]
#CARBONLINK_TIMEOUT = 1.0
#CARBONLINK_RETRY_DELAY = 15 # секунд для занесения отказавшего удаленного сервера в черный список
# Установить протокол pickle для использования для запросов Carbonlink,
# (по умолчанию -1 — HIGHEST_AVAILABLE для вашей версии Python)
# подробнее: https: // docs.python.org/3/library/pickle.html#data-stream-format
#CARBONLINK_PICKLE_PROTOCOL = -1
# Тип метрической хеш-функции.
# По умолчанию `carbon_ch` — это традиционная реализация согласованного хеширования в Graphite.
# В качестве альтернативы вы можете использовать `fnv1a_ch`, который поддерживает хэш Фаулера-Нолл-Во
Реализация хэша функции # (FNV-1a), предложенная проектом Carbon-c-relay
# https: // github.com / grobian / карбон-c-реле
#
# Поддерживаемые значения: carbon_ch, fnv1a_ch
#
#CARBONLINK_HASHING_TYPE = ‘carbon_ch’
# «keyfunc» — это определяемая пользователем функция Python, которой присвоено имя метрики
# и возвращает строку, которую следует использовать при хешировании имени метрики.
# Это важно, когда ваше хеширование должно учитывать определенные группы метрик.
#CARBONLINK_HASHING_KEYFUNC = «/opt/graphite/bin/keyfuncs.py:my_keyfunc»
# Префикс для внутренней статистики углерода.
# CARBON_METRIC_PREFIX = ‘углерод’
# Коэффициент репликации для использования при согласованном хешировании.
# Обычно это значение должно соответствовать значению, настроенному в Carbon.
#REPLICATION_FACTOR = 1
###################################
# Настройки TagDB #
###################################
# База данных тегов
#TAGDB = ‘графит.tags.localdatabase.LocalDatabaseTagDB ‘
# Time to cache seriesByTag results
#TAGDB_CACHE_DURATION = 60
# Предел результатов автозаполнения по умолчанию
#TAGDB_AUTOCOMPLETE_LIMIT = 100
# Настройки для Redis TagDB
#TAGDB_REDIS_HOST = «локальный хост»
#TAGDB_REDIS_PORT = 6379
#TAGDB_REDIS_DB = 0
#TAGDB_REDIS_PASSWORD = »
# Настройки для HTTP TagDB
#TAGDB_HTTP_URL = »
#TAGDB_HTTP_USER = »
#TAGDB_HTTP_PASSWORD = »
# Поддерживает ли удаленная TagDB автозаполнение?
#TAGDB_HTTP_AUTOCOMPLETE = Ложь
###################################
# Плагины функций #
###################################
# Список модулей расширения пользовательских функций
# См .: http: // graphite.readthedocs.io/en/latest/functions.html#function-plugins
FUNCTION_PLUGINS = []
###################################
# Дополнительные настройки Django #
###################################
# Раскомментируйте следующую строку для прямого доступа к настройкам Django, например
# MIDDLEWARE или ПРИЛОЖЕНИЯ
# из графита.app_settings импорт *

Хранение и визуализация временных рядов с графитом

12 сентября 2013 г.

ЧТО ТАКОЕ ГРАФИТ?

Graphite — это инструмент, который достаточно хорошо выполняет две задачи: хранение числовых данных временных рядов (метрика, значение, временная метка эпохи) и отображение графиков этих данных по запросу. Графитовые данные временных рядов — это инструмент мониторинга в масштабе предприятия, написанный Крисом Дэвисом из Orbitz, а затем открытый исходный код по лицензии Apache в 2008 году.

В этом посте я объясню, как настроить Graphite, и перейду к «Hello World» графических показателей.

ПОЧЕМУ ИСПОЛЬЗУЕТСЯ ГРАФИТ?

Graphite прост в использовании, и в течение нескольких часов после установки и сбора данных вы можете графически отображать свои данные, чтобы они были значимы для вас и других. Это также означает, что вы можете передать его деловым людям для построения понятных им графиков. Тем не менее, люди могут создавать «плохие» графики, создание которых требует времени, так что имейте это в виду.С большой властью приходит большая ответственность!

Графики, создаваемые Graphite, статичны, так как они создаются как изображения. В большинстве случаев этого достаточно, но бывают случаи, когда вы хотите изучить свои данные более интерактивным способом. К счастью, вы можете получить те же данные в формате JSON через HTTP.

НАСТРОЙКА ГРАФИТА

Для целей этой статьи я предполагаю, что вы используете CentOS. В настоящее время Graphite не так прост, как «yum install graphite», но настройка проста.

Следующие шаги помогут вам установить Graphite и все его зависимости на новую виртуальную машину или сервер.

Установить репозиторий EPEL
 $ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum -y update 
Установить зависимости
 $ sudo yum -y установить gcc.x86_64 git.x86_64 \
    python-devel pyOpenSSL python-memcached \
    растровые растровые шрифты python-crypto zope \
    pycairo mod_python python-ldap Django \
    Django-тегирование python-sqlite2 mod_wsgi 
Установите программное обеспечение для управления пакетами Python
 $ sudo yum -y установить python-pip.noarch 
Установите графит
 $ sudo pip-python установить шепот из углеродного графита-паутины 
Скопируйте примеры файлов конфигурации.
 $ cp /opt/graphite/conf/carbon.conf.example \
    /opt/graphite/conf/carbon.conf
$ cp /opt/graphite/conf/storage-schemas.conf.example \
    /opt/graphite/conf/storage-schemas.conf 
Настроить веб-сервер

Нам нужно настроить веб-приложение Django:

 $ cp graphite.wsgi.example графит.WSGI 
Теперь нам нужно отредактировать следующие файлы:
 /etc/httpd/conf.d/graphite-vhost.conf 

Для того, чтобы носитель сайта администратора django работал, вы должны изменить @ DJANGO_ROOT @ на путь к вашей установке django, который, вероятно, выглядит примерно так /usr/lib/python2.6/site-packages/django

 /opt/graphite/webapp/graphite/settings.py 

Добавьте это в конец файла, который настраивает веб-приложение Graphite для использования с автономной базой данных с использованием SQLite.

 БАЗЫ ДАННЫХ = {
   'По умолчанию': {
        'ДВИГАТЕЛЬ': 'django.db.backends.sqlite3',
        'ИМЯ': присоединиться (STORAGE_DIR, 'graphite.db'),
        'USER': '', # Не используется с sqlite3.
        'PASSWORD': '', # Не используется с sqlite3.
        'HOST': '', # Не используется с sqlite3.
        'PORT': '', # Не используется с sqlite3.
    }
}
 
Первоначальное создание базы данных

Вы должны указать Django создать таблицы базы данных, используемые графитовым веб-приложением.Выполните следующие команды и оставьте настройки по умолчанию.

 $ cd / opt / graphite / webapp / графит
$ sudo python manage.py syncdb 

Для следующих файлов могут потребоваться изменения разрешений в зависимости от того, как вы запускаете веб-сервер Apache. Если вы работаете как никто: никто, вам не нужно запускать

 sudo chown никто: никто 

в этих файлах:

 /opt/graphite/storage/log/webapp/info.log
/opt/graphite/storage/log/webapp/exception.log
/ opt / графит / хранилище / журнал / веб-приложение
/ opt / graphite / хранилище
/ opt / графит / хранилище / графит.db
 
Углеродные демоны

Graphite требует для работы трех демонов:

 1. carbon-cache.py 

Это рабочая лошадка, которая собирает метрики. Метрики изначально хранятся в памяти, а затем сбрасываются на диск. Перед запуском необходимо разместить два файла конфигурации: carbon.conf и storage-schemas.conf.

 2. carbon-relay.py 

Это обеспечивает репликацию и сегментирование данных метрики. Он смотрит на carbon.conf и relay-rules.conf для его конфигурации.

 3. carbon-aggregator.py 

Используется перед файлом carbon-cache.py для буферизации и агрегирования показателей перед их отправкой в ​​базу данных шепота. Это полезно, когда вам не нужны детализированные данные, и сокращает количество операций ввода-вывода.

Полную информацию о демонах можно найти на веб-сайте Graphite, а также информацию о шепоте.

Графитовый Hello World

Чтобы начать работу, сначала скопируйте примеры файлов конфигурации.

 cp /opt/graphite/conf/carbon.conf.example /opt/graphite/conf/carbon.conf
cp /opt/graphite/conf/storage-schemas.conf.example /opt/graphite/conf/storage-schemas.conf 

Сначала запустите углеродный кеш (я предполагаю, что ваш веб-сервер запущен и работает):

 $ sudo / usr / bin / python /opt/graphite/bin/carbon-cache.py \
    - начало отладки 

Использование –debug даст вам представление о том, как работает Graphite. А теперь давайте отправим ему некоторые данные.

Данные, отправляемые в Graphite, имеют форму трех значений:

  1. название в метрической системе
  2. значение в метрической системе
  3. метка времени эпохи

Этот небольшой скрипт каждые 60 секунд генерирует фиктивные данные, запускайте их из другого окна терминала.

 для i в {1..20}; сделать echo metric.example `number = $ RANDOM; пусть «число% = 100»; echo $ number` date +% s` | nc ВАШ_СЕРВЕР_IP 2003; спать 60; сделано 

Мы создаем метрику под названием «metric.example», устанавливаем значение от 1 до 100 и отправляем его на сервер Graphite через порт 2003 (углеродный кеш порта работает).

Теперь, когда данные поступают, вы должны видеть, что что-то происходит в окне терминала, в котором запущен углеродный кеш, благодаря флагу отладки.

Теперь давайте создадим простой график. Посетите Graphite UI в своем браузере, http://10.10.0.1/dashboard/, подставив имя хоста вашего сервера. Вы должны увидеть что-то вроде этого:

Щелкните «Метрика», и вы увидите следующее:

Теперь щелкните «metric.example», и вы увидите диаграмму с данными примера.

Поздравляем! Вы создали свой первый график. Все графики в Graphite имеют прямой URL, поэтому вам не нужно переходить через панели управления.Вы можете сгруппировать их в веб-страницу и отображать их так, как вам нравится.

Как видите, названия показателей имеют точечную нотацию. Поскольку мы использовали «metric.example», мы можем добавить больше примеров в «metric». как это:

Вы видите три отдельных графика. Поскольку эти показатели связаны, было бы неплохо увидеть их на единой диаграмме. Используя точечную нотацию, мы можем сделать это, используя подстановочный знак *. Так что мы можем посмотреть на них, выбрав «метрика. *» Вот так:

Вывод JSON

Как я сказал ранее, вы можете получить данные Graphite обратно в формате JSON.Все зависит от URL-адреса, поэтому, чтобы получить вышеуказанный набор данных в формате JSON, попробуйте:

http://10.10.0.54/render?from=-5minutes&until=now&target=metric.*&format=json

Полученные данные будут выглядеть примерно так:

 [{"target": "metric.example", "datapoints": [[21.0, 1376001405], [81.0, 1376001420], [20.0, 1376001435], [50.0, 1376001450], [9.0, 1376001465], [16.0] , 1376001480], [42,0, 1376001495], [19,0, 1376001510], [96,0, 1376001525], [26,0, 1376001540], [86,0, 1376001555], [55.0, 1376001570], [85.0, 1376001585], [45.0, 1376001600], [4.0, 1376001615], [81.0, 1376001630], [11.0, 1376001645], [1.0, 1376001660], [61.0, 1376001675], [99.0, 1376001690]]},
{"target": "metric.example2", "datapoints": [[40.0, 1376001405], [0.0, 1376001420], [6.0, 1376001435], [36.0, 1376001450], [5.0, 1376001465], [90.0, 1376001480] ], [46,0, 1376001495], [76,0, 1376001510], [83,0, 1376001525], [13,0, 1376001540], [73,0, 1376001555], [12,0, 1376001570], [71,0, 1376001585], [31,0, 1376001600], [91.0, 1376001615], [68,0, 1376001630], [98,0, 1376001645], [20,0, 1376001660], [79,0, 1376001675], [86,0, 1376001690]]},
{"target": "metric.example3", "datapoints": [[21.0, 1376001405], [80.0, 1376001420], [19.0, 1376001435], [79.0, 1376001450], [47.0, 1376001465], [95.0, 1376001480] ], [89,0, 1376001495], [57,0, 1376001510], [26,0, 1376001525], [56,0, 1376001540], [15,0, 1376001555], [54,0, 1376001570], [84,0, 1376001585], [44,0, 1376001600], [34,0, 1376001615], [11,0, 1376001630], [41,0, 1376001645], [0.метрика \.
удержания = 15 с: 1 дн. 

Документация Graphite содержит полную информацию о том, что все означает, но, чтобы дать вам представление, эти директивы управляют тем, сколько данных Graphite хранит и как долго в каких сегментах. Итак, 15s: 1d означает хранение 15-секундных блоков данных в течение одного дня. Если вы посмотрите на файловую систему, вы увидите каталоги и файлы для каждой метрики.

Поздравляем! Теперь у вас есть Graphite. Поэкспериментируйте с отправкой в ​​него реальных данных.

Изображение заголовка — Джастин Граймс. Используется под CC BY-SA 2.0.

Файл: local_settings.py.example | Исходники Debian

 1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
233200 2500 2400 24
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
4832
4

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
733200 74
74

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 100
9
9

101
102
103
104
105
106
107
108
109
110
11 1
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
13432 135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154

156
153
154

156 932


154
156 932

153 161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
1804000
183200 183200 183200 183200 183200 183200 183200 183200 183200 186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
203
204
205
206 932 932


206 932
2032 21 год 1
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229







229






229
233200


236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254

253200
253200
253
254

253200


253200

253 261
262
263
264
265
266
267
268
269
270
271
272
273
274 ​​
275
276
277
278
27





283200 283200





2832 286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
3000



305 31 год 1
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330 33200
3300 3300
3300

329
330 33200
3300 932 336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354


3500 355
353
354


355






932 361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
9020
  ## Графит local_settings.ру
# Отредактируйте этот файл, чтобы изменить настройки веб-приложения Graphite по умолчанию
#
# В этот файл также можно добавить дополнительные настройки в настройки Django

###################################
# Общая конфигурация #
###################################
#
# Установите длинную случайную уникальную строку для использования в качестве секретного ключа для этого
# установить. Этот ключ используется для соления хэшей, используемых в токенах аутентификации,
# Промежуточное ПО CRSF, хранилище файлов cookie и т. Д. Это должно быть установлено одинаково среди
# экземпляров, если они используются за балансировщиком нагрузки.#SECRET_KEY = 'UNSAFE_DEFAULT'

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

# Установите местный часовой пояс (по умолчанию Django - Америка / Чикаго)
# Если ваши графики смещены на пару часов, то это, вероятно,
# необходимо явно указать местный часовой пояс.
#TIME_ZONE = 'Америка / Лос-Анджелес'

# Установить краткий формат даты по умолчанию. См. Strftime (3) для получения информации о поддерживаемых последовательностях.#DATE_FORMAT = '% m /% d'

# Переопределите это, чтобы предоставить документацию, относящуюся к вашему развертыванию Graphite
#DOCUMENTATION_URL = "http://graphite.readthedocs.io/"

# Логирование
LOG_ROTATION = Ложь
#LOG_ROTATION_COUNT = 1
#LOG_RENDERING_PERFORMANCE = Верно
#LOG_CACHE_PERFORMANCE = Верно

# Включить полное отображение страницы отладки при исключениях (страницы внутренних ошибок сервера)
#DEBUG = True

# Если вы используете файлы RRD и rrdcached, установите адрес или сокет демона
#FLUSHRRDCACHED = 'unix: /var/run/rrdcached.sock'

# Здесь перечислены серверы memcached, которые будут использоваться этим веб-приложением.# Если у вас есть кластер веб-приложений, вы должны убедиться, что все они
# имеют * точное * значение для этого параметра. Это увеличит кеш
# эффективность. Установка пустого MEMCACHE_HOSTS отключит использование
# memcached целиком.
#
# Вы не должны использовать здесь адрес обратной связи (127.0.0.1), если используете кластеризацию
# поскольку каждое веб-приложение в кластере должно использовать одни и те же значения, чтобы предотвратить
# ненужных промахов в кэше. Установите значение [], чтобы отключить кеширование изображений и полученных данных.
#MEMCACHE_HOSTS = ['10 .10.10.10: 11211 ', '10.10.10.11: 11211 ', '10 .10.10.12: 11211']

# Данные показателей и графики по умолчанию кэшируются на одну минуту. Если определено,
# DEFAULT_CACHE_POLICY - это список сопоставленных кортежей минимальных временных диапазонов запроса.
# к длительности кеширования результатов. Это позволяет выполнять большие запросы.
# кэшируется на более длительный период времени. Время в секундах. Если политика
# пусто или не определено, все результаты будут кэшироваться в течение DEFAULT_CACHE_DURATION.
#DEFAULT_CACHE_DURATION = 60 # Кэшировать изображения и данные на 1 минуту
#DEFAULT_CACHE_POLICY = [(0, 60), # по умолчанию 60 секунд
# (7200, 120), #> = 2 часа запросы кешируются 2 минуты
# (21600, 180)] #> = 6 часов запросы кэшируются 3 минуты
#MEMCACHE_KEY_PREFIX = 'графит'


# Здесь перечислены параметры memcached.По умолчанию - пустой диктант.
# Допустимые параметры зависят от реализации Memcached и версии Django.
# До Django 1.10 параметры используются только для pylibmc.
# Начиная с 1.11, параметры используются как для python-memcached, так и для pylibmc.
#MEMCACHE_OPTIONS = {'socket_timeout': 0,5}

# Установите URL_PREFIX при развертывании graphite-web в некорневое расположение
#URL_PREFIX = '/ графит'

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

# Интервал для функции автоматического обновления в Composer, измеряемый в секундах.
#AUTO_REFRESH_INTERVAL = 60

###################################
# Пути файловой системы #
###################################
#
# Измените только GRAPHITE_ROOT, если ваша установка просто перенесена с / opt / graphite
# в другое место
GRAPHITE_ROOT = '/ usr / share / graphite-web'

# Большинство установок, выполненных вне отдельного дерева, такого как / opt / graphite, будут
# необходимо изменить эти настройки. Обратите внимание, что настройки по умолчанию для каждого
# из них относится к GRAPHITE_ROOT.#CONF_DIR = '/ opt / graphite / conf'
#STORAGE_DIR = '/ opt / graphite / storage'
#STATIC_ROOT = '/ opt / graphite / static'
#LOG_DIR = '/ opt / graphite / storage / log / webapp'
#INDEX_FILE = '/ opt / graphite / storage / index' # Поиск файла индекса

CONF_DIR = '/ и т.д. / графит'
STORAGE_DIR = '/ вар / библиотека / графит / шепот'
STATIC_ROOT = '/ usr / share / graphite-web / static'
LOG_DIR = '/ var / log / graphite'
INDEX_FILE = '/ var / lib / graphite / search_index'

# Для дальнейшей или полной настройки путей измените следующее. Обратите внимание, что
# настройки по умолчанию для каждого из них относятся к CONF_DIR и STORAGE_DIR
#
## Файлы конфигурации Webapp
#DASHBOARD_CONF = '/ opt / graphite / conf / dashboard.conf '
#GRAPHTEMPLATES_CONF = '/opt/graphite/conf/graphTemplates.conf'

## Каталоги данных
#
# ПРИМЕЧАНИЕ: Если какой-либо каталог в STANDARD_DIRS не читается, просмотр метрик будет нарушен.
#
#CERES_DIR = '/ opt / graphite / storage / ceres'
#WHISPER_DIR = '/ opt / graphite / storage / Whisper'
#RRD_DIR = '/ opt / graphite / storage / rrd'

WHISPER_DIR = '/ вар / библиотека / графит / шепот'
#
# Каталоги данных с использованием "Стандартного" средства поиска метрик (т.е. не Цереры)
#STANDARD_DIRS = [WHISPER_DIR, RRD_DIR] # По умолчанию: устанавливается из указанных выше переменных


###################################
# Конфигурация электронной почты #
###################################
#
# Используется для отправки по электронной почте визуализированных графиков.Бэкэнд по умолчанию - SMTP.
#EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
#
# Чтобы отправлять электронные письма на пол, включите вместо этого Dummy backend.
#EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'

#EMAIL_HOST = 'локальный хост'
#EMAIL_PORT = 25
#EMAIL_HOST_USER = ''
#EMAIL_HOST_PASSWORD = ''
#EMAIL_USE_TLS = Ложь


###################################
# Конфигурация аутентификации #
###################################
#
## Настройка аутентификации LDAP / ActiveDirectory
#USE_LDAP_AUTH = Верно
#LDAP_SERVER = "ldap.mycompany.com "
#LDAP_PORT = 389
#LDAP_USE_TLS = Ложь

## Ручная настройка URI / запроса
#LDAP_URI = "ldaps: //ldap.mycompany.com: 636"
#LDAP_SEARCH_BASE = "OU = пользователи, DC = mycompany, DC = com"
#LDAP_BASE_USER = "CN = some_readonly_account, DC = mycompany, DC = com"
#LDAP_BASE_PASS = "readonly_account_password"
#LDAP_USER_QUERY = "(username =% s)" # Для использования Active Directory "(sAMAccountName =% s)"

# Шаблон DN пользователя для использования для привязки (и аутентификации) к
# Сервер LDAP. % (имя пользователя) заменяется именем пользователя, указанным в
# графитовый логин.#LDAP_USER_DN_TEMPLATE = "CN =% (имя пользователя) s, OU = users, DC = mycompany, DC = com"

# Если вы хотите дополнительно настроить параметры подключения ldap, вам следует
# напрямую использовать ldap.set_option для установки глобальных опций модуля ldap.
# Например:
#
#import ldap
# ldap.set_option (ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW) # Используйте ldap.OPT_X_TLS_DEMAND для принудительного использования TLS
# ldap.set_option (ldap.OPT_REFERRALS, 0) # Включить для Active Directory
# 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")
# ldap.set_option (ldap.OPT_DEBUG_LEVEL, 65535) # Чтобы включить подробную отладку
# См. Http://www.python-ldap.org/ для получения дополнительных сведений об этих параметрах.

## REMOTE_USER аутентификация. См .: https://docs.djangoproject.com/en/dev/howto/auth-remote-user/
#USE_REMOTE_USER_AUTHENTICATION = Верно

# Заменить URL для ссылки входа (например, для django_openid_auth)
#LOGIN_URL = '/ account / login'


##############################
# Авторизация для Dashboard #
##############################
# По умолчанию на дашбордах нет безопасности - любой пользователь может добавлять, изменять или удалять их.# В этом разделе представлены 3 разные модели авторизации разной степени строгости.

# Если установлено значение True, пользователи должны войти в систему, чтобы сохранять или удалять панели мониторинга. По умолчанию False
#DASHBOARD_REQUIRE_AUTHENTICATION = Верно

# Если установлено имя группы пользователей, дашборды могут быть сохранены и удалены любым пользователем в этом
# группа. Группы можно настроить в приложении Django Admin или в LDAP. По умолчанию Нет.
# ПРИМЕЧАНИЕ: игнорируется, если DASHBOARD_REQUIRE_AUTHENTICATION не установлен
#DASHBOARD_REQUIRE_EDIT_GROUP = 'группа-редакторы-панели'

# Если установлено значение True, панели мониторинга могут быть сохранены или удалены любым пользователем, имеющим соответствующий
# разрешение (изменение или удаление) (как установлено в приложении Django Admin).По умолчанию False
# ПРИМЕЧАНИЕ: игнорируется, если DASHBOARD_REQUIRE_AUTHENTICATION не установлен
#DASHBOARD_REQUIRE_PERMISSIONS = Верно


#########################
# Конфигурация базы данных #
#########################
#
# По умолчанию используется sqlite. Если вы группируете несколько веб-приложений, вам понадобится
# для настройки внешней базы данных (например, MySQL) и настройки всего веб-приложения
# экземпляров для использования одной и той же базы данных. Обратите внимание, что эта база данных используется только для хранения
# Модели Django, такие как сохраненные графики, информационные панели, пользовательские настройки и т. Д.# Метрические данные здесь не хранятся.
#
# НЕ ЗАБУДЬТЕ ЗАПУСТИТЬ МИГРАЦИЮ ПОСЛЕ НАСТРОЙКИ НОВОЙ БАЗЫ ДАННЫХ
# http://graphite.readthedocs.io/en/latest/config-database-setup.html
#
#
# Доступны следующие встроенные движки баз данных:
# django.db.backends.postgresql_psycopg2
# django.db.backends.mysql
# django.db.backends.sqlite3
# django.db.backends.oracle
#
# По умолчанию 'django.db.backends.sqlite3' с файлом 'graphite.db'
# находится в STORAGE_DIR
#
#DATABASES = {
#    'По умолчанию': {
# 'ИМЯ': '/ opt / graphite / storage / graphite.db ',
# 'ДВИГАТЕЛЬ': 'django.db.backends.sqlite3',
#        'ПОЛЬЗОВАТЕЛЬ': '',
#        'ПАРОЛЬ': '',
#        'ХОЗЯИН': '',
# 'ПОРТ': ''
#}
#}
#
БАЗЫ ДАННЫХ = {
    'По умолчанию': {
        'ИМЯ': '/var/lib/graphite/graphite.db',
        'ДВИГАТЕЛЬ': 'django.db.backends.sqlite3',
        'ПОЛЬЗОВАТЕЛЬ': '',
        'ПАРОЛЬ': '',
        'ХОЗЯИН': '',
        'ПОРТ': ''
    }
}


#########################
# Конфигурация кластера #
#########################
#
# Чтобы избежать чрезмерного поиска DNS, вы хотите использовать только IP-адреса
# во всем этом разделе.#

# Здесь должен быть указан IP-адрес (и, возможно, порт) веб-приложения на каждом
# удаленный сервер в кластере. Каждый из этих серверов должен иметь локальный доступ к
# метрические данные. Обратите внимание, что первым сервером, который вернет совпадение для запроса, будет
# использовал.
#CLUSTER_SERVERS = ["10.0.2.2:80", "10.0.2.3:80"]

# Создает пул рабочих потоков, которым могут быть отправлены задачи. Это делает
# определить, есть ли несколько CLUSTER_SERVERS, потому что тогда связь
# с ними можно распараллелить
# Количество потоков равно:
# POOL_WORKERS_PER_BACKEND * len (CLUSTER_SERVERS) + POOL_WORKERS
# Будьте осторожны при увеличении количества потоков, особенно если вы начинаете
# несколько процессов graphite-web (с uwsgi или аналогичными), так как это будет увеличиваться
# потребление памяти (и количество подключений к memcached).#USE_WORKER_POOL = Верно

# Количество рабочих потоков, которые должны быть созданы на каждом внутреннем сервере.
# Имеет смысл иметь более одного потока на один сервер, если
# сам графит-веб-сервер является многопоточным и может обрабатывать несколько
Сразу # входящий запрос.
#POOL_WORKERS_PER_BACKEND = 1

# Базовое количество рабочих, которые всегда следует создавать, независимо от того, сколько
Настроено # серверов кластера. Они используются для других задач, которые могут быть
# выгружается из потоков обработки запросов.#POOL_WORKERS = 1

# Этот параметр определяет, используется ли https для связи между участниками кластера.
#INTRACLUSTER_HTTPS = Неверно

# Это значения таймаута (в секундах) для запросов к удаленным веб-приложениям
#REMOTE_FIND_TIMEOUT = 3.0 # Тайм-аут для запросов на поиск метрики
#REMOTE_FETCH_TIMEOUT = 3.0 # Тайм-аут для выборки данных серии
#REMOTE_RETRY_DELAY = 60.0 # Время до повторной попытки неудачного удаленного веб-приложения

# Попытайтесь определить, когда кластерный сервер является localhost и не пересылать запросы
#REMOTE_EXCLUDE_LOCAL = Ложь

# Количество повторных попыток для определенной удаленной выборки данных.#MAX_FETCH_RETRIES = 2

#FIND_CACHE_DURATION = 300 # Время кэширования результатов удаленного поиска метрик
# Если запрос не полностью попадает в окно FIND_TOLERANCE
# игнорируем окно. Это предотвращает ненужные удаленные выборки
# вызывается, когда углеродный кеш искажает node.intervals, создавая вид
# в удаленных системах есть данные, которых у нас нет локально, что, вероятно, и есть.
#FIND_TOLERANCE = 2 * FIND_CACHE_DURATION

#REMOTE_STORE_USE_POST = False # Использовать POST вместо GET для удаленных запросов

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

# Предоставьте список заголовков HTTP, которые вы хотите пересылать с этого хоста
# при отправке запроса на удаленный сервер веб-приложений в CLUSTER_SERVERS
#REMOTE_STORE_FORWARD_HEADERS = [] # Итерация имен HTTP-заголовков

## Кэш предварительной выборки
# установите значение True, чтобы получить все метрики с помощью одного HTTP-запроса на удаленный сервер
# вместо одного HTTP-запроса на цель, на удаленный сервер.# Особенно полезно при построении графиков с более чем 4-5 целями или если
# между этим сервером и бэкэндами существует значительная задержка.
#REMOTE_PREFETCH_DATA = Ложь

## Настройки удаленного рендеринга
# Установите значение True, чтобы включить рендеринг графиков в удаленном веб-приложении
#REMOTE_RENDERING = Верно
# Список IP-адресов (и, возможно, порта) веб-приложения на каждом удаленном сервере, который
# будет использоваться для рендеринга. Обратите внимание, что у каждого узла рендеринга должен быть локальный
# доступ к данным метрики или должен быть настроен CLUSTER_SERVERS
#RENDERING_HOSTS = []
#REMOTE_RENDER_CONNECT_TIMEOUT = 1.0

# Если вы используете несколько углеродных кешей на этой машине (обычно за
# реле, использующее согласованное хеширование), вам нужно указать IP-адрес, кеш
# порт запроса и имя экземпляра каждого экземпляра углеродного кеша на локальном
# машина (НЕ каждый углеродный кеш во всем кластере). Кеш по умолчанию
# порт запроса - 7002, и общая схема - использовать 7102, например, b, 7202
# например c и т. д.
# Если вы используете последовательное хеширование, сохраняйте порядок хостов таким же, как
# порядок НАЗНАЧЕНИЙ в вашем реле - иначе вы получите промахи кеша.#
# В большинстве случаев вам * следует * использовать 127.0.0.1.
#
#CARBONLINK_HOSTS = ["127.0.0.1:7002:a", "127.0.0.1:7102:b", "127.0.0.1:7202:c"]
#CARBONLINK_TIMEOUT = 1.0
#CARBONLINK_RETRY_DELAY = 15 # секунд для занесения отказавшего удаленного сервера в черный список
#

# Тип метрической хеш-функции.
# По умолчанию `carbon_ch` - это традиционная реализация согласованного хеширования Graphite.
# В качестве альтернативы вы можете использовать `fnv1a_ch`, который поддерживает хеш Fowler-Noll-Vo
# function (FNV-1a) реализация хэша, предложенная проектом carbon-c-relay
# https: // github.com / grobian / карбон-с-реле
#
# Поддерживаемые значения: carbon_ch, fnv1a_ch
#
#CARBONLINK_HASHING_TYPE = 'carbon_ch'

# "Keyfunc" - это определяемая пользователем функция Python, которой присвоено имя метрики
# и возвращает строку, которую следует использовать при хешировании имени метрики.
# Это важно, когда ваше хеширование должно учитывать определенные группы метрик.
#CARBONLINK_HASHING_KEYFUNC = "/opt/graphite/bin/keyfuncs.py:my_keyfunc"

# Префикс для внутренней статистики углерода.
# CARBON_METRIC_PREFIX = 'углерод'

# Коэффициент репликации для использования с согласованным хешированием.# Обычно это должно соответствовать значению, настроенному в Carbon.
#REPLICATION_FACTOR = 1


###################################
# Дополнительные настройки Django #
###################################
# Раскомментируйте следующую строку для прямого доступа к настройкам Django, таким как
# MIDDLEWARE_CLASSES или ПРИЛОЖЕНИЯ
#from graphite.app_settings import *
  

Установка Graphite для использования с NAV в Debian - документация NAV 4.9.9.dev13 + gb482be056

Это краткое руководство по установке и настройке простого Graphite установка, посвященная NAV, на Debian 9 (Stretch) или Debian 10 (Buster) сервер.

Предупреждение

Не запускайте NAV , пока не настроите должным образом схемы хранилища Carbon-cache с предоставленной схемой хранилища NAV config, иначе у будут проблемы с пустыми областями в вашем графики, которые вам нужно будет разрешить вручную постфактум.

Получение графита

Полная установка Graphite состоит из внутреннего сервера Carbon , который получает метрики по TCP или UDP, а также веб-интерфейс Graphite , который позволяет просматривать и получение / отображение сохраненных показателей.NAV будет собирать метрики и отправить в первый, а второй использовать для получения метрик и рендеринга графики.

Предполагая, что вы будете запускать Graphite на том же сервере Debian, что и вы при запуске NAV все, что вам нужно сделать для установки Graphite на Debian 9 , это:

 apt-get install python-psycopg2 graphite-carbon \
  Python-шепот / стрейч-бэкпорты графит-паутина / стрейч-бэкпорты
 

Для Debian 10 это будет:

 apt-get install python3-psycopg2 графит-углерод графит-паутина
 

Настройка Carbon

Carbon, бэкэнд Graphite, принимающий метрики, должен быть настроен перед этим. может использоваться с NAV.Мы рассмотрим только простой случай использования одиночный углеродный кэш процесс. Большая часть этой информации взята из Интеграция Graphite с разделом NAV общей установки документация.

Отредактируйте /etc/carbon/carbon.conf , чтобы убедиться, что эти параметры установлены в [кэш] раздел:

 MAX_CREATES_PER_MINUTE = inf
ENABLE_UDP_LISTENER = Верно
 

Первая строка гарантирует, что Carbon не задержит создание бэкэнда Whisper. файлы для метрик, которые NAV отправляет.Значение по умолчанию - не более 50. создает в минуту (существует настройка, ограничивающая нагрузку на ввод-вывод на огромных установках), это означает, что при начальной загрузке установки NAV могут пройти часы или дни. до того, как все его метрики будут фактически сохранены в Graphite.

Вторая строка гарантирует, что Carbon принимает метрики на сокете UDP, который требуется NAV.

Carbon также должен знать разрешение, при котором будут храниться ваши временные ряды. данные, как долго их хранить и как сворачивать данные с высоким разрешением архивы данных в архивы более низкого разрешения.Это схемы хранения и методы агрегирования. NAV предоставляет для этого свои собственные примеры конфигурации; на Графитовый бэкэнд , предназначенный для NAV , вы можете просто создать символьную ссылку на эти файлы конфигурации из NAV:

 компакт-диск / и т. Д. / Карбон /
mv хранилище-schemas.conf хранилище-schemas.conf.bak
mv хранилище-aggregation.conf хранилище-aggregation.conf.bak
ln -s /etc/nav/graphite/*.conf / etc / carbon /
 

Наконец, перезапустите демон carbon-cache :

 systemctl перезапустить углеродный кеш
 

Настройка веб-интерфейса Graphite

Чтобы включить веб-интерфейс, вам нужно сделать две вещи:

  • Настройте и создайте базу данных, которая будет использоваться для хранения определений графов.
  • Настройте Apache для обслуживания веб-интерфейса.

Создание графитовой базы данных

Graphite по умолчанию будет использовать базу данных SQLite, но это не рекомендуется в настройки производства, так как это вызовет проблемы с несколькими одновременными пользователей. У вас уже есть установка PostgreSQL из-за NAV, поэтому мы рекомендую использовать это.

Создайте пользователя graphite PostgreSQL и дайте ему пароль (обратите внимание на пароль), затем создайте базу данных, принадлежащую этому пользователю:

 sudo -u postgres createuser --pwprompt --no-createrole --no-superuser --no-createdb --login graphite
sudo -u postgres createdb --owner = графитовый графит
 

Файл конфигурации веб-приложения Graphite находится в / и т.д. / графит / local_settings.py . Есть в основном три настройки, которые вы потребуется настроить: SECRET_KEY , TIME_ZONE и БАЗЫ ДАННЫХ . В SECRET_KEY используется для криптографических целей при работе с файлами cookie и данные сеанса (точно так же, как настройка SECRET_KEY из nav.conf ). Это должна быть случайной строкой символов; мы можем предложить использовать makepasswd команда для генерации такой строки:

 $ makepasswd --chars 51
iLNScMiUpNy5hditWAp9e2dyHGTFoX44UKsbhj91f9xL4fdJSDY
 

Затем отредактируйте / etc / graphite / local_settings.ру (нет, ни под каким обстоятельства, повторно используйте фактическое значение примера SECRET_KEY здесь!) и make, чтобы установить эти три параметра:

 SECRET_KEY = 'iLNScMiUpNy5hditWAp9e2dyHGTFoX44UKsbhj91f9xL4fdJSDY'
TIME_ZONE = 'Europe / Oslo' # Это должно соответствовать вашему фактическому часовому поясу, также как в nav.conf
БАЗЫ ДАННЫХ = {
    'По умолчанию': {
        "НАЗВАНИЕ": "графит",
        'ДВИГАТЕЛЬ': 'django.db.backends.postgresql_psycopg2',
        'ПОЛЬЗОВАТЕЛЬ': 'графит',
        'PASSWORD': 'пароль, который вы записали выше',
        'HOST': 'localhost',
        «ПОРТ»: «5432»
    }
}
 

Теперь заставьте graphite-web инициализировать свою схему базы данных:

 sudo -u _graphite graphite-manage migrate auth --noinput
sudo -u _graphite graphite-manage migrate --run-syncdb --noinput
 

Настроить Apache для обслуживания веб-приложения Graphite

В принципе, вы можете использовать любой веб-сервер, поддерживающий интерфейс WSGI.Ты у вас уже есть Apache с mod_wsgi , так что вы можете его использовать. Однако если вы используете Debian 10 , пакет graphite-web будет работать на Python 3, тогда как текущий выпуск NAV работает на Python 2. mod_wsgi может только поддерживать одна версия Python на том же сервере.

В двух следующих примерах будет определен виртуальный хост Apache, который будет обслуживать веб-приложение Graphite на порту 8000 . Добавление SSL-шифрования оставлено как упражнение для читателя (но в этом нет необходимости, если вы разумно решите установить настроить сервер для прослушивания только интерфейса localhost).

Предупреждение

Вся статистика по графиту станет доступной для просмотра всем, кто может доступ к вашему серверу через порт 8000. Вероятно, вы захотите ограничить доступ к этому порту, используя iptables или ACL в ваши роутеры. Или, если вас не интересует просмотр веб-приложения сами измените оператор Listen на Listen 127.0.0.1:8000 , так что только установка NAV на localhost сможет получить к нему доступ.

В Debian 9 (Stretch)

Graphite-web потребуется собственный виртуальный хост, поэтому давайте добавим новую конфигурацию сайта для Apache (этот пример вдохновлен примером graphite-web пакет в / usr / share / graphite-web / apache2-graphite.conf ):

/etc/apache2/sites-available/graphite-web.conf
 Слушайте 8000


        WSGIDaemonProcess _graphite process = 1 thread = 1 display-name = '% {GROUP}' inactivity-timeout = 120 user = _graphite group = _graphite
        WSGIProcessGroup _graphite
        WSGIImportScript /usr/share/graphite-web/graphite.wsgi process-group = _graphite application-group =% {GLOBAL}
        WSGIScriptAlias ​​/ /usr/share/graphite-web/graphite.wsgi

        Псевдоним / content / / usr / share / graphite-web / static /
        <Местоположение "/ content /">
                SetHandler Нет
        

        Журнал ошибок $ {APACHE_LOG_DIR} / graphite-web_error.бревно
        LogLevel предупреждать
        CustomLog $ {APACHE_LOG_DIR} /graphite-web_access.log вместе


 
В Debian 10 (Buster)

Graphite-web по-прежнему потребуется собственный виртуальный хост, но в этой версии Debian мы запустим приложение, используя контейнер uWSGI, и определим виртуальный хост Apache для прокси-запросов к этому контейнеру.

Сначала установите uWSGI и необходимые модули Apache для настройки запроса uWSGI. прокси:

 apt-get install uwsgi uwsgi-plugin-python3 libapache2-mod-proxy-uwsgi libapache2-mod-uwsgi
 

Затем перейдите к добавлению нового определения приложения uWSGI:

/ и т.д. / uwsgi / приложения-включенные / графит.ini
 [uwsgi]
uid = _graphite
gid = _graphite
размер буфера = 32768
chdir = / usr / share / графит-сеть
env = DJANGO_SETTINGS_MODULE = graphite.settings
максимальное количество запросов = 100
module = graphite.wsgi: приложение
плагины = python3
процессы = 5
socket = 127.0.0.1:7999
сенсорная перезагрузка = /usr/lib/python3/dist-packages/graphite/wsgi.py
 

Чтобы запустить контейнер приложения, который будет прослушивать запросы на localhost: 7999 , просто запустите:

Теперь вы готовы добавить определение сайта Apache для этого приложения:

/ и т.д. / apache2 / сайты-доступные / графит-веб.conf
 Слушайте 8000

        Псевдоним / static / / usr / share / graphite-web / static /
        <Местоположение "/ static /">
                SetHandler Нет
                Требовать все предоставлено
        
        <Местоположение "/">
                Параметры FollowSymlinks Индексы
                Требовать все предоставлено
        

        ErrorLog \ $ {APACHE_LOG_DIR} /graphite-web_error.log
        LogLevel предупреждать
        CustomLog \ $ {APACHE_LOG_DIR} / graphite-web_access.журнал комбинированный

        ProxyRequests отключен
        ProxyPreserveHost Off

        # Разрешить Apache обслуживать статические файлы
        ProxyPass / static /!
        ProxyPassReverse / static /!
        # Остальное отдайте нашему экземпляру uWSGI
        ProxyPass / uwsgi: //127.0.0.1: 7999 /
        ProxyPassReverse / uwsgi: //127.0.0.1: 7999 /

        ProxyTimeout 300

 

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

 a2enmod uwsgi прокси-сервер proxy_uwsgi
 
Наконец, в обеих версиях Debian

Включить новый сайт на порту 8000:

 a2ensite графит-паутина
systemctl перезапустить apache2
 

Поздравляем, теперь вы готовы к запуску NAV!

(PDF) Месторождение графита Мойале, юг Эфиопии

NGU-BULL 4 36, 2000 - PAGE 169

Месторождение графита Мойале, юг Эфиопии

HAILE

-MICHAEL

FENTAW,

SE

HAMMED

, N

ESIBU

S

EB

HAT

& HAvARD

GAU

TNEB

Fentaw, H.М., Мохаммед, С., Себхат, Н. и Гаут неб, Х. 2000: Графитовые месторождения Мойале расположены южнее Эфиопии. Norges

geo log iske undersekelse Bullet in 436, 169-173.

Докембрийские метаморфические породы юга Эфиопии, относящиеся к панафриканскому поясу (Мозамбикский пояс). разместить

Moyale g raphite Dep osit. Основная порода

пачка

сланцы амфиболовые, кварц-полевошпат-слюдистые сланцы, гранодиориты,

кварциты и графитовые сланцы.Графитосодержащий агрегат

размещается на кварцевых сланцах и кварцевых слюдяных сланцах, а

обычно образуют непрерывные тела, простирающиеся на

сотни

единиц метра. Регулярная вариация в градации и размере хлопка

графита не предусмотрена. Судя по его более позднему масштабу и способу залегания, графит считается осадочным в происхождении

. Согласно анализу изображений, средний объемный процент графита равен 7.9%; Средняя длина

осей самого короткого и длинного стержня графита составляет 155 и 407 мкм соответственно. Статистический анализ показывает, что

около 60% зерен гранита имеют наибольшую длину оси между 100 и 300 мкм, а оставшиеся 40% приходятся на фракцию размером> 300

мкм. Предварительные флотационные испытания для концентрирования графитов фракцией <400 IJm привели к содержанию концентрата

7,1% с извлечением более 90%.

Haile-Michael Fe

nt

aw, Seid

Mohammed

& Nesibu Sebhot, Ethiopi an I

nstitu

te

of

Ge

, Добавочный номер

Abobo, Ethio pia.

Hciv

ard

G

autn

eb, Geol

ogic

al Survey of Norway, N-7491 T

rondh

eim, N orwa y.

Введение

Графит встречается в большинстве метаморфических пород

из

Эфиопия -

pia. Некоторые из известных залежей (например, район Кибре Менгист

) характеризуются очень мелкими чешуйками и содержат минералы сульфидов сульфидов

. Месторождения жильного рафита в Эфиопии пока не известны

. Настоящее исследование касается графита

из района Мояле, расположенного в 750 км к югу от

Аддис-Абеба, на границе с Кенией (рис.1). Графит

встречается примерно в 6 км от нас.

из

Moyale

буксир

n. Исследования

графита Moyale включили отображение графита -

итерации геологическими и геофизическими методами. Методы, анализ

содержания углерода графита и определение

из

размера

и текстуры

из

зерен графита. Были предприняты предварительные усилия

для концентрирования графита методом флотации

.

Геологическая обстановка

Северо-восточная ветвь

из

Пояса Мозамбик, крупная

Протерозойская структурно-метаморфическая единица

из

Восточная Африка,

простирается от Кении до

в Эфиопии.

в южной Аравии (Warden & Horke 1984). В Мозаме -

двукратный пояс южной Эфиопии, три основных подразделения (нижний,

,

средний и верхний комплексы) различались на

характерных контрастов в l

, литологии

, метаморфизме. и

структурный стиль (Kazmin et al.1978). Метаосадочные породы

(графитовые филлиты, био

тит

сланцы и метакалькарейные породы)

в районе Адола образуют верхний пермост

участок

верхнего слоя

плекс

плекс

плекс

юг Эфиопии. На основе этой схемы, породы

региона Мояль коррелируют с нижней частью

из

верхнего комплекса и, вероятно, относятся к неопротерозойскому возрасту

(Alene & Barker 1993).Согласно Hussien (1999), ассоциация горных пород

в районе Мояле типична для комплекса субдукции

, состоящего из метаморфозов

maf

ic-ultramafic

пород, образованных фордугой и аккреционным клином. метаседи-

и сопутствующие породы. Хуссиен далее предположил, что

литологическая ассоциация в доме Мойя указывает на

существование океанической коры до субдукции.

Основные орогенные пояса Африканского Рога, Аравийского

Щита и Мозамбикского пояса пересекаются в районе Мояле

(Kazmin et al.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *