Установка
OpenTSDB можно скомпилировать из исходного кода или установить из пакета. Выпуски можно найти на Github.
Требования к среде выполнения
Для фактического запуска OpenTSDB вам необходимо выполнить следующие условия:
- Система Linux (или Windows с ручным построением)
- Java Runtime Environment 1.6 или более поздняя версия
- HBase 0.92 или более поздняя версия
- GnuPlot 4.2 или более поздняя версия
Установка
Сначала вам нужно настроить HBase. Если вы новичок в HBase и/или OpenTSDB, мы рекомендуем вам протестировать работу с автономным экземпляром, так как это самый простой способ начать работу. Лучше всего начать с руководства Apache Quick Start. В качестве альтернативы вы можете попробовать упакованное дистрибутивное решение, такое как CDH от Cloudera, HDP от Hortonworks или `MapR<https://www.mapr.com/>`_.
Прежде чем продолжить работу с OpenTSDB, убедитесь, что Zookeeper доступен. Один из способов — просто подключиться к нужному порту через telnet и выполнить команду stats.
root@host:~# telnet localhost 2181 Trying 127.0.0.1... Connected to myhost. Escape character is '^]'. stats Zookeeper version: 3.4.3-cdh4.0.1--1, built on 06/28/2012 23:59 GMT Clients: Latency min/avg/max: 0/0/677 Received: 4684478 Sent: 4687034 Outstanding: 0 Zxid: 0xb00187dd0 Mode: leader Node count: 127182 Connection closed by foreign host.
Если вы не можете подключиться к Zookeeper, проверьте IP-адреса и разрешение имен. HBase может быть капризным.
Если HBase работает, вы можете выбрать установку OpenTSDB из пакета (доступного в разделе Выпуски на Github) или из исходного кода с помощью GIT или исходного tar-архива.
Компиляция из исходного кода
Требования к компиляции включают:
- Система Linux
- Java Development Kit 1.6 или более поздняя версия
- GnuPlot 4.2 или более поздняя версия
- Autotools
- Make
- Python
- Git
- Подключение к Интернету
Загрузите последнюю версию, используя команду git clone или загрузите выпуск с сайта или Github. Затем просто запустите скрипт build.sh. Этот скрипт помогает выполнить все необходимые процессы для компиляции OpenTSDB: он запускает ./bootstrap (только один раз, при первом получении кода), затем ./configure и make. Выходные данные процесса сборки помещаются в папку build, и JAR-файлы, необходимые OpenTSDB, будут загружены.
git clone git://github.com/OpenTSDB/opentsdb.git cd opentsdb ./build.sh
Если компиляция прошла успешно, у вас должен быть файл tsdb.jar в ./build, а также скрипт tsdb. Теперь вы можете выполнить инструмент командной строки, вызвав ./build/tsdb, или вы можете запустить make install, чтобы установить OpenTSDB в вашей системе. Если вы передумаете, есть также make uninstall, так что никаких ограничений нет.
Если вам нужно распространить OpenTSDB на машины без подключения к Интернету, вызовите ./build.sh dist, чтобы упаковать каталог сборки в tar-архив, который можно затем скопировать на дополнительные машины.
Структура исходного кода
В репозитории GIT есть две основные ветки. Ветка master — это последняя стабильная версия вместе со всеми исправлениями ошибок, внесёнными между выпусками. В настоящее время ветка master — это OpenTSDB 2.0.1. Ветка next — это следующая основная или дополнительная версия OpenTSDB с новыми функциями и разработкой. Когда next будет стабильной, она будет объединена с master. В настоящее время ветка next — это 2.1.0 RC 1. Могут присутствовать и другие ветки, используемые для тестирования или разработки определённых функций.
Пакет Debian
Вы можете сгенерировать пакет Debian, вызвав sh build.sh debian. Пакет будет расположен в ./build/opentsdb-2.x.x/opentsdb-2.x.x_all.deb. Затем просто распределите пакет и установите его в обычном порядке. Например dpkg -i opentsdb-2.0.0_all.deb.
Пакет Debian создаст следующие каталоги:
- /etc/opentsdb — Файлы конфигурации
- /tmp/opentsdb — Временные кеш-файлы
- /usr/share/opentsdb — Файлы приложения
- /usr/share/opentsdb/bin — Скрипт запуска «tsdb», который запускает TSD или инструменты командной строки
- /usr/share/opentsdb/lib — Файлы Java JAR-библиотеки
- /usr/share/opentsdb/plugins — Местоположение для файлов плагинов и зависимостей
- /usr/share/opentsdb/static — Статические файлы для графического интерфейса
- /usr/share/opentsdb/tools — Скрипты и другие инструменты
- /var/log/opentsdb — Логи
Установка включает скрипт инициализации в /etc/init.d/opentsdb, который может запускать, останавливать и перезапускать OpenTSDB. Просто вызовите service opentsdb start, чтобы запустить tsd, и service opentsdb stop, чтобы корректно завершить работу. Обратите внимание, что после установки tsd не будет запущена, чтобы вы могли изменить файл конфигурации. Измените файл конфигурации, затем запустите TSD.
Пакет Debian также создаёт пользователя и группу opentsdb для запуска TSD, что повышает безопасность. TSD требует только права записи в каталоги временных файлов и логов. Если вы не можете использовать стандартные расположения, измените их в /etc/opentsdb/opentsdb.conf и /etc/opentsdb/logback.xml соответственно и примените соответствующие права для пользователя opentsdb.
При первой установке OpenTSDB вам потребуется создать таблицы HBase с помощью скрипта, расположенного в /usr/share/opentsdb/tools/create_table.sh. Следуйте инструкциям ниже.
Создание таблиц
Если это первый запуск OpenTSDB с вашим экземпляром HBase, вам сначала необходимо создать необходимые таблицы HBase. Предоставлен простой скрипт для создания соответствующих таблиц с возможностью включения или выключения сжатия. Выполните:
env COMPRESSION=NONE HBASE_HOME=path/to/hbase-0.94.X ./src/create_table.sh
где значение COMPRESSION равно NONE, LZO, GZIP или SNAPPY. Это создаст четыре таблицы: tsdb, tsdb-uid, tsdb-tree и tsdb-meta. Если вы просто тестируете OpenTSDB, пока не беспокойтесь о сжатии. В производстве и при масштабировании обязательно используйте действительную библиотеку сжатия, так как это значительно сэкономит объём хранилища.
Запуск TSD
OpenTSDB 2.3 работает с файлом конфигурации, который совместно используется между демоном и инструментами командной строки. Если вы скомпилировали из исходного кода, скопируйте файл ./src/opentsdb.conf в соответствующий каталог, как описано в Конфигурация, и отредактируйте следующие необходимые параметры:
- tsd.http.cachedir — Путь для записи временных файлов
-
tsd.http.staticroot — Путь к статическим файлам графического интерфейса, расположенным в
./build/staticroot - tsd.storage.hbase.zk_quorum — Если HBase и Zookeeper не работают на одной машине, укажите здесь хост и порт.
После написания файла конфигурации вы можете запустить tsd с помощью команды:
./build/tsdb tsd
В качестве альтернативы, вы также можете использовать следующие команды для создания временного каталога и передачи только флагов командной строки:
tsdtmp=${TMPDIR-'/tmp'}/tsd # For best performance, make sure
mkdir -p "$tsdtmp" # your temporary directory uses tmpfs
./build/tsdb tsd --port=4242 --staticroot=build/staticroot --cachedir="$tsdtmp" --zkquorum=myhost:2181
В этот момент вы можете получить доступ к веб-интерфейсу TSD по адресу http://127.0.0.1:4242 (если он запущен на вашем локальном компьютере).
Примечание
Каталог кэша хранит временные файлы, созданные при запросе графика через встроенный графический интерфейс. Эти файлы следует периодически очищать, чтобы освободить место. OpenTSDB на данный момент не очищает за собой, но есть скрипт, который следует запускать как cron хотя бы раз в день, расположенный по адресу tools/clean_cache.sh.
Обновление с версии 1.x
OpenTSDB 2.3 полностью совместим со старыми данными 1.x. Мы приложили большие усилия, чтобы вы могли скачать 2.3, скомпилировать, остановить ваш старый TSD и запустить новый. Ваши существующие инструменты будут читать и записывать в TSD без проблем. 2.3 добавляет две новые таблицы в схему HBase для хранения метаданных. Из каталога, где вы загрузили исходный код (или каталог инструментов, если вы установили пакет Debian), выполните:
env COMPRESSION=NONE HBASE_HOME=path/to/hbase-0.94.X ./src/upgrade_1to2.sh
где COMPRESSION такое же, как у вас в существующей таблице сжатия.
Хотя вы можете запустить TSD 2.3 с теми же параметрами командной строки, что и TSD 1.0, мы настоятельно рекомендуем создать файл конфигурации, основанный на конфигурации, включённой в ./src/opentsdb.conf. Или, если вы установили пакет, вам нужно будет изменить включённую стандартную конфигурацию. Файл конфигурации включает в себя гораздо больше параметров, чем доступно через командную строку, и он общий для инструментов командной строки. Подробности см. в Конфигурация.
Вам не нужно обновлять все ваши TSD до версии 2.3 одновременно. Некоторые пользователи сначала обновляют свои только для чтения TSD, чтобы получить доступ к полному API HTTP и протестировать новые функции. Позже вы можете обновлять только для записи TSD по мере необходимости. Вы также можете выполнить поэтапное обновление без проблем. Просто остановите трафик для одного TSD, обновите его, восстановите трафик и продолжайте, пока не обновите все свои TSD.
Если вы выполнили поэтапное обновление с несколькими TSD, учтите следующее предупреждение:
Предупреждение
Не записывайте Аннотации или Точки данных с отметками времени в миллисекундах, пока вы работаете с смесью 1.x и 2.x. Поскольку эти данные хранятся в тех же строках, что и обычные точки данных, они могут повлиять на сжатие и запросы.
Перед обновлением до 2.x вы можете обновить все свои TSD до OpenTSDB 1.2. Этот выпуск полностью совместим с будущими версиями, так как он проигнорирует аннотации и отметки времени в миллисекундах и будет работать как ожидается. Если вы случайно запишете аннотацию или точку данных с отметкой времени в миллисекундах, работа ваших TSD 1.2 будет нормальной.
Обновление с 2.x до более поздней версии 2.x
В целом, обновление в рамках одной ветви основного выпуска сводится к обновлению бинарных файлов или пакета и перезапуску TSD. В рамках ветки мы будем поддерживать настройки, API и схему. Однако могут добавляться новые функции с каждой дополнительной версией, в том числе новые настройки конфигурации с полезными значениями по умолчанию.
Примечание
Исключением на данный момент является введение закодированных строк в 2.2.0. По умолчанию отключено, использование этой функции требует создания новой таблицы HBase с новым набором предварительных разделов и изменения конфигурации каждого TSD для использования новой таблицы с включённым сортированием. Схема сортированных и несортированных таблиц несовместима, поэтому, если у пользователей много данных в предыдущей таблице, лучше оставить несколько TSD для запросов к старой таблице и новых TSD для записи и чтения из новой сортированной таблицы. Для небольших объёмов данных инструмент scan может быть использован для экспорта и повторного импорта данных.
Примечание
Аналогично с 2.3, добавление новых бэкэндов (Bigtable или Cassandra) требует настройки новых таблиц хранения и миграции данных.
Перевод на более старую версию
Поскольку мы усердно работали над сохранением обратной совместимости, вы можете отключить TSD 2.x и перезапустить ваш старый TSD 1.x. Единственные исключения — если вы использовали аннотации или миллисекунды, как вы видели в предупреждении выше. В этих случаях необходимо понизить версию до 1.2 или более поздней. Вы также можете удалить таблицы tsdb-tree и tsdb-meta, если это необходимо.
Перевод на более старую версию в рамках одной основной версии идемпотентен.
Предупреждение
Если вы записывали данные с использованием таблицы с солью или изменили ширину идентификаторов UID для метрик, ключей тегов или значений тегов, то понизить версию не получится. Создайте новую таблицу и экспортируйте данные из старой таблицы, затем запишите данные в новую таблицу, используя более старую версию TSD.
© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/installation.html