Настройка
OpenTSDB можно настроить с помощью файла на локальной системе, с помощью аргументов командной строки или комбинацией обоих.
Файл конфигурации
Файл конфигурации соответствует спецификации Java properties. Имена конфигурации — это строчные, разнесённые точки без пробелов. После каждого имени следует знак равенства, а затем значение свойства. Все свойства OpenTSDB начинаются с tsd. Комментарии или неактивные строки конфигурации блокируются символом решётки #. Например:
# List of Zookeeper hosts that manage the HBase cluster tsd.storage.hbase.zk_quorum = 192.168.1.100
будет настраивать TSD для подключения к Zookeeper по адресу 192.168.1.100.
При комбинировании файлов конфигурации и аргументов командной строки порядок обработки следующий:
- Загружаются значения по умолчанию
- Загружаются значения из файла конфигурации, перезаписывающие значения по умолчанию
- Загружаются параметры командной строки, перезаписывающие значения из файла конфигурации и значения по умолчанию
Расположение файлов
Можно использовать аргумент командной строки --config для указания полного пути к файлу конфигурации. В противном случае, если не указано, OpenTSDB и некоторые инструменты командной строки будут пытаться найти файл конфигурации в следующих местах:
- ./opentsdb.conf
- /etc/opentsdb.conf
- /etc/opentsdb/opentsdb.conf
- /opt/opentsdb/opentsdb.conf
В случае, если файл конфигурации не найден, и необходимые свойства не заданы, TSD не запустится. См. таблицу свойств ниже для списка необходимых настроек конфигурации.
Свойства
Ниже приведена таблица параметров конфигурации для всех инструментов. Применимо, предоставлен соответствующий параметр переопределения командной строки. Обратите внимание, что отдельные инструменты командной строки могут иметь свои собственные значения, поэтому см. их документацию для получения подробностей.
Примечание
Для дополнительных параметров, используемых для настройки клиента AsyncHBase, см. Настройка AsyncHBase
| Свойство | Тип | Обязательно | Описание | Значение по умолчанию | Командная строка |
|---|
| tsd.core.auto_create_metrics | Булево | Необязательно | Указывает, будет ли присваиваться идентификатор (UID) метрике при добавлении новой точки данных. Если значение ложно, то точка данных с метрикой, отсутствующей в базе данных, будет отклонена, и будет выброшено исключение. | Ложь | --auto-metric |
| tsd.core.auto_create_tagks (2.1) | Булево | Необязательно | Указывает, будет ли присваиваться идентификатор (UID) имени тега при добавлении новой точки данных. Если значение ложно, то точка данных с именем тега, отсутствующим в базе данных, будет отклонена, и будет выброшено исключение. | Истина | |
| tsd.core.auto_create_tagvs (2.1) | Булево | Необязательно | Указывает, будет ли присваиваться идентификатор (UID) значению тега при добавлении новой точки данных. Если значение ложно, то точка данных со значением тега, отсутствующим в базе данных, будет отклонена, и будет выброшено исключение. | Истина | |
| tsd.core.connections.limit (2.3) | Целое число | Необязательно | Устанавливает максимальное количество подключений, которое TSD будет обрабатывать; дополнительные подключения будут немедленно закрыты. | 0 | |
| tsd.core.enable_api (2.3) | Булево | Необязательно | Указывает, разрешено ли функционирование HTTP API версии 2.x. При отключении, вызовы к конечным точкам, таким как /api/query или /api/suggest, вернут 404. | Истина | --disable-api |
| tsd.core.enable_ui (2.3) | Булево | Необязательно | Указывает, разрешено ли функционирование встроенного пользовательского интерфейса (GUI) и устаревшего HTTP API. При отключении, вызовы к корневой конечной точке или другим, таким как /logs или /suggest, вернут 404. | Истина | --disable-ui |
| tsd.core.meta.enable_realtime_ts | Булево | Необязательно | Указывает, разрешена ли создание объектов TSMeta в реальном времени. Смотрите Метаданные | Ложь | |
| tsd.core.meta.enable_realtime_uid | Булево | Необязательно | Указывает, разрешена ли создание объектов UIDMeta в реальном времени. Смотрите Метаданные | Ложь | |
| tsd.core.meta.enable_tsuid_incrementing | Булево | Необязательно | Указывает, разрешено ли отслеживание TSUIDs путём инкремента счётчика при каждом записи точки данных. Смотрите Метаданные (Переопределяет "tsd.core.meta.enable_tsuid_tracking") | Ложь | |
| tsd.core.meta.enable_tsuid_tracking | Булево | Необязательно | Указывает, разрешено ли отслеживание TSUIDs путём сохранения 1 вместе с текущей меткой времени при каждой записи точки данных. Смотрите Метаданные
| Ложь | |
| tsd.core.plugin_path | Строка | Необязательно | Путь для поиска плагинов при запуске TSD. Если путь некорректный, TSD не запустится. Плагины всё равно могут быть включены, если они находятся в пути класса. | ||
| tsd.core.preload_uid_cache (2.1) | Булево | Необязательно | Включает предварительную загрузку кэшей UID при запуске TSD. | Ложь | |
| tsd.core.preload_uid_cache.max_entries (2.1) | Целое число | Необязательно | Количество строк для сканирования при предварительной загрузке UID. | 300,000 | |
| tsd.core.storage_exception_handler.enable (2.2) | Булево | Необязательно | Указывает, включен ли настроенный плагин обработчика исключений хранилища. | Ложь | |
| tsd.core.storage_exception_handler.plugin (2.2) | Строка | Необязательно | Полное имя класса плагина обработчика исключений хранилища, который вы хотите использовать. | ||
| tsd.core.timezone | Строка | Необязательно | Локализованная строка идентификации часового пояса, используемая для переопределения локального часового пояса системы при преобразовании абсолютных времен в UTC при выполнении запроса. Это не влияет на метки времени входящих данных. Например, America/Los_Angeles | Настроены в системе | |
| tsd.core.tree.enable_processing | Булево | Необязательно | Указывает, включено ли обработка новых/изменённых TSMeta через правила дерева | ложь | |
| tsd.core.uid.random_metrics (2.2) | Булево | Необязательно | Указывает, будут ли случайным образом присваиваться идентификаторы (UID) новым метрикам по мере их создания | ложь | |
| tsd.core.bulk.allow_out_of_order_timestamps *(2.3) | Булево | Необязательно | Указывает, разрешено ли импортировать данные из текстового файла с несортированными значениями временных меток. | ложь | |
| tsd.http.cachedir | Строка | Обязательно | Полный путь к расположению, где можно записывать временные файлы. Например, /tmp/opentsdb | --cachedir | |
| tsd.http.query.allow_delete | Булево | Необязательно | Указывает, разрешено ли удаление точек данных из хранилища во время запроса. | Ложь | |
| tsd.query.enable_fuzzy_filter | Булево | Необязательно | Указывает, разрешено ли использование FuzzyRowFilter для HBase при выполнении запросов с использованием флага explicitTags. | Истина | |
| tsd.http.request.cors_domains | Строка | Необязательно | Список доменных имён, разделённых запятыми, для разрешения доступа к OpenTSDB, когда в заголовке Origin указано клиентом. Если пусто, запросы CORS пропускаются без проверки. Список не может содержать общедоступный символ * и конкретные домены одновременно. | ||
| tsd.http.request.cors_headers (2.1) | Строка | Необязательно | Список заголовков, разделённых запятыми, отправляемых клиентам при выполнении запроса CORS. Буквальное значение этого параметра будет передано клиентам. | Authorization, Content-Type, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since | |
| tsd.http.request.enable_chunked | Булево | Необязательно | Указывает, разрешено ли использование фрагментации входящих запросов для HTTP RPC | ложь | |
| tsd.http.request.max_chunk | Целое число | Необязательно | Максимальный размер тела запроса, поддерживаемого для входящих HTTP-запросов при включении фрагментации. | 4096 | |
| tsd.http.rpc.plugins (2.2) | Строка | Необязательно | Список плагинов RPC, разделённых запятыми, которые нужно загрузить при запуске TSD. Должно быть указано полное имя класса. | ||
| tsd.http.show_stack_trace | Булево | Необязательно | Указывает, нужно ли возвращать стек вызовов в ответе на запрос API при возникновении исключения. | ложь | |
| tsd.http.staticroot | Строка | Обязательно | Расположение каталога, где хранятся статические файлы, такие как JavaScript-файлы для веб-интерфейса. Например, /opt/opentsdb/staticroot | --staticroot | |
| tsd.mode (2.1) | Строка | Необязательно | Указывает, разрешено ли TSD запись точек данных. Должно быть либо rw, чтобы разрешить запись данных, или ro, чтобы заблокировать запись точек данных. Обратите внимание, что метаданные, такие как идентификаторы (UID), всё ещё могут записываться/изменяться. | rw | |
| tsd.network.async_io | Булево | Необязательно | Указывает, использовать ли NIO или традиционный блокирующий ввод-вывод | Истина | --async-io |
| tsd.network.backlog | Целое число | Необязательно | Глубина очереди подключений для завершенных или незавершенных запросов подключения в зависимости от операционной системы. По умолчанию может быть ограничена значением 'somaxconn' ядра или установлена Netty в 3072. | См. описание | --backlog |
| tsd.network.bind | Строка | Необязательно | IP-адрес IPv4 для привязки входящих запросов. По умолчанию прослушивается на всех интерфейсах. Например, 127.0.0.1 | 0.0.0.0 | --bind |
| tsd.network.keep_alive | Булево | Необязательно | Указывает, разрешены ли соединения keep-alive | Истина | |
| tsd.network.port | Целое число | Обязательно | TCP-порт для приема подключений | --port | |
| tsd.network.reuse_address | Булево | Необязательно | Указывает, разрешено ли повторное использование связанного порта в Netty | Истина | |
| tsd.network.tcp_no_delay | Булево | Необязательно | Указывает, отключить ли буферизацию TCP перед отправкой данных | Истина | |
| tsd.network.worker_threads | Целое число | Необязательно | Количество потоков асинхронного ввода-вывода для Netty | #Количество ядер процессора * 2 | --worker-threads |
| tsd.no_diediedie (2.1) | Булево | Необязательно | Включает или отключает diediedie HTML и ASCII команды для остановки TSD. | Ложь | |
| tsd.query.allow_simultaneous_duplicates (2.2) | Булево | Необязательно | Указывает, разрешены ли одновременные дублирующие запросы от одного и того же хоста. При отключении второй запрос, совпадающий с уже запущенным, получит исключение. | Ложь | |
| tsd.query.filter.expansion_limit (2.2) | Целое число | Необязательно | Максимальное количество значений тегов, включаемых в регулярное выражение, отправленное в хранилище во время сканирования данных. Большее значение означает больше вычислений на серверах HBase. | 4096 | |
| tsd.query.skip_unresolved_tagvs (2.2) | Булево | Необязательно | Указывает, продолжать ли запрос, когда запрос включает значение тега, которому ещё не присвоен идентификатор (UID), и которое может отсутствовать. | Ложь | |
| tsd.query.timeout (2.2) | Целое число | Необязательно | Время в миллисекундах, в течение которого запрос будет отменён. Значение 0 означает, что запросы не будут ограничены по времени. | 0 |
| tsd.rollups.enable (2.4) | Булево | Необязательно | Включить или выключить хранение и запись агрегаций и предварительной агрегации. | false | |
| tsd.rollups.tag_raw (2.4) | Булево | Необязательно | Присваивать метку неагрегированным и непредварительно агрегированным значениям с использованием ключа метки, настроенного в tsd.rollups.agg_tag_key и значения, настроенного в tsd.rollups.raw_agg_tag_value. | false | |
| tsd.rollups.agg_tag_key (2.4) | Строка | Необязательно | Специальный ключ для метки предварительно агрегированных данных при записи в хранилище. | _aggregate | |
| tsd.rollups.raw_agg_tag_value (2.4) | Строка | Необязательно | Специальное значение метки для неагрегированных и непредварительно агрегированных данных при записи в хранилище. tsd.rollups.tag_raw должно быть установлено в значение true. | RAW | |
| tsd.rollups.block_derived (2.4) | Булево | Необязательно | Блокировать хранение производных агрегаций, таких как AVG и DEV. | true | |
| tsd.rpc.plugins | Строка | Необязательно | Список RPC-плагинов, разделяемых запятыми, которые нужно загрузить при запуске TSD. Должно содержать полное имя класса. | ||
| tsd.rpc.telnet.return_errors (2.4) | Булево | Необязательно | Возвращать ли ошибки на сокет в стиле Telnet при записи данных через put или rollup. | true | |
| tsd.rtpublisher.enable | Булево | Необязательно | Включить или выключить плагин публикации в реальном времени. Если true, вы должны указать корректное имя класса tsd.rtpublisher.plugin. | False | |
| tsd.rtpublisher.plugin | Строка | Необязательно | Имя класса плагина публикации в реальном времени для инициализации. Если tsd.rtpublisher.enable установлено в false, это значение игнорируется. Например, net.opentsdb.tsd.RabbitMQPublisher | ||
| tsd.search.enable | Булево | Необязательно | Включить или выключить функциональность поиска. Если true, вы должны указать корректное имя класса tsd.search.plugin. | False | |
| tsd.search.plugin | Строка | Необязательно | Имя класса плагина поиска для инициализации. Если tsd.search.enable установлено в false, это значение игнорируется. Например, net.opentsdb.search.ElasticSearch | ||
| tsd.stats.canonical | Булево | Необязательно | Возвращать ли FQDN в запросах статистики. По умолчанию статистика возвращается с host=<hostname>, что не гарантирует поиск и возврат FQDN. Установка в значение true выполнит поиск имени и вернёт FQDN, если найдено, в противном случае может вернуть IP-адрес. Вывод статистики должен быть fqdn=<hostname>. | false | |
| tsd.storage.compaction.flush_interval (2.2) | Целое число | Необязательно | Сколько секунд ждать между вызовами очистки очереди уплотнения. | 10 | |
| tsd.storage.compaction.flush_speed (2.2) | Целое число | Необязательно | Множитель, используемый для определения скорости попыток очистки очереди уплотнения. Например, значение 2 означает, что вся очередь будет очищена примерно за 30 минут. Значение 1 займет час. | 2 | |
| tsd.storage.compaction.max_concurrent_flushes (2.2) | Целое число | Необязательно | Максимальное количество вызовов уплотнения, ожидающих обработки в HBase в любой момент времени. | 10000 | |
| tsd.storage.compaction.min_flush_threshold (2.2) | Целое число | Необязательно | Размер очереди уплотнения, который должен быть превышен перед запуском очистки. | 100 | |
| tsd.storage.enable_appends (2.2) | Булево | Необязательно | Добавлять ли данные в столбцы при записи точек данных вместо создания новых столбцов для каждого значения. Избегает необходимости уплотнений после каждого часа, но может использовать больше ресурсов в HBase. | False | |
| tsd.storage.enable_compaction | Булево | Необязательно | Включить ли уплотнения. | True | |
| tsd.storage.fix_duplicates (2.1) | Булево | Необязательно | Принимать ли последнее записанное значение при обработке точек данных с дублирующими метками времени. При включении в сочетании с уплотнениями уплотненный столбец будет записан с последними точками данных. | False | |
| tsd.storage.flush_interval | Целое число | Необязательно | Как часто (в миллисекундах) очищать буфер записи хранилища точек данных. | 1000 | --flush-interval |
| tsd.storage.hbase.data_table | Строка | Необязательно | Имя таблицы HBase, где хранятся точки данных. | tsdb | --table |
| tsd.storage.hbase.meta_table | Строка | Необязательно | Имя таблицы HBase, где хранится метаданные. | tsdb-meta | |
| tsd.storage.hbase.prefetch_meta (2.2) | Булево | Необязательно | Предварительно загружать ли регионы для таблиц TSDB перед запуском сетевого интерфейса. Это может улучшить производительность. | False | |
| tsd.storage.hbase.tree_table | Строка | Необязательно | Имя таблицы HBase, где хранятся данные дерева. | tsdb-tree | |
| tsd.storage.hbase.uid_table | Строка | Необязательно | Имя таблицы HBase, где хранится информация о UID. | tsdb-uid | --uidtable |
| tsd.storage.hbase.zk_basedir | Строка | Необязательно | Путь к znode для региона -ROOT- | /hbase | --zkbasedir |
| tsd.storage.hbase.zk_quorum | Строка | Необязательно | Список хостов ZooKeeper, разделённых запятыми, для подключения, с указанием или без указания портов. Например, 192.168.1.1:2181,192.168.1.2:2181 | localhost | --zkquorum |
| tsd.storage.repair_appends (2.2) | Булево | Необязательно | Перезаписывать ли добавленные столбцы точек данных во время запроса, если в столбцах есть дубликаты или данные в неправильном порядке. | False | |
| tsd.storage.max_tags (2.2) | Целое число | Необязательно | Максимальное количество меток на точку данных. ПРИМЕЧАНИЕ Пожалуйста, учтите влияние на производительность при чрезмерном использовании меток writing | 8 | |
| tsd.storage.salt.buckets (2.2) | Целое число | Необязательно | Количество ведер соли, используемых для распределения нагрузки по регионам. ПРИМЕЧАНИЕ Изменение этого значения после записи данных может привести к сбоям запросов, основанных на TSUID. | 20 | |
| tsd.storage.salt.width (2.2) | Целое число | Необязательно | Ширина префикса соли в байтах, используемого для указания ведра, в котором находится временной ряд. Значение 0 означает, что сортировка отключена. ПРЕДУПРЕЖДЕНИЕ Не изменяйте после записи данных в HBase, иначе ваши таблицы будут повреждены, и запросы больше не будут работать. | 0 | |
| tsd.storage.uid.width.metric (2.2) | Целое число | Необязательно | Ширина метрических UID в байтах. ПРЕДУПРЕЖДЕНИЕ Не изменяйте после записи данных в HBase, иначе ваши таблицы будут повреждены, и запросы больше не будут работать. | 3 | |
| tsd.storage.uid.width.tagk (2.2) | Целое число | Необязательно | Ширина UID имени метки в байтах. ПРЕДУПРЕЖДЕНИЕ Не изменяйте после записи данных в HBase, иначе ваши таблицы будут повреждены, и запросы больше не будут работать. | 3 | |
| tsd.storage.uid.width.tagv (2.2) | Целое число | Необязательно | Ширина UID значения метки в байтах. ПРЕДУПРЕЖДЕНИЕ Не изменяйте после записи данных в HBase, иначе ваши таблицы будут повреждены, и запросы больше не будут работать. | 3 |
Типы данных
Некоторые значения конфигурации требуют особого внимания:
-
Булевы значения — следующие литералы будут интерпретированы как
True:1trueyes
Любые другие значения приведут к
False. Разбор нечувствителен к регистру. -
Строки — строки, даже с пробелами, не требуют кавычек, но некоторые моменты следует учитывать:
-
Специальные символы должны быть экранированы обратной косой чертой, включая
#,!,=, и:. Например:my.property = Hello World\!
-
Символы Юникода должны быть экранированы их шестнадцатеричным представлением, например:
my.property = \u0009
-
© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/user_guide/configuration.html