Menu

OpenTSDB Configuration

Options:

  • user (object|string)
    The Unix OpenTSDB login name or a user object (see Nikita User documentation).
  • group (object|string)
    The Unix OpenTSDB group name or a group object (see Nikita Group documentation).

Example:

    "opentsdb": {
      "user": {
        "name": "opentsdb", "system": true, "gid": "opentsdb",
        "comment": "OpenTSDB User", "home": "/usr/share/opentsdb"
      },
      "group": {
        "name": "Opentsdb", "system": true
      }
    }
module.exports = (service) ->
  throw Error 'No HBase regionservers configured' unless service.deps.hbase_regionserver.length > 0
  {options} = service

Identities

  # Groups
  options.group = name: options.group if typeof options.group is 'string'
  options.group ?= {}
  options.group.name ?= 'opentsdb'
  options.group.system ?= true
  # User
  options.user = name: options.user if typeof options.user is 'string'
  options.user ?= {}
  options.user.name ?= 'opentsdb'
  options.user.system ?= true
  options.user.comment ?= 'OpenTSDB User'
  options.user.home = '/usr/share/opentsdb'
  options.user.gid = options.group.name
  options.user.limits ?= {}
  options.user.limits.nofile ?= 65535
  options.user.limits.nproc ?= true

Package

  options.version ?= '2.3.0'
  options.source ?= "https://github.com/OpenTSDB/opentsdb/releases/download/v#{options.version}/opentsdb-#{options.version}.rpm"

Kerberos

  options.krb5 ?= {}
  options.krb5.realm ?= service.deps.krb5_client.options.etc_krb5_conf?.libdefaults?.default_realm
  throw Error 'Required Options: "realm"' unless options.krb5.realm
  options.krb5.admin ?= service.deps.krb5_client.options.admin[options.krb5.realm]

Configuration

  options.iptables ?= service.deps.iptables and service.deps.iptables.options.action is 'start'
  options.fqdn ?= service.node.fqdn
  options.hbase ?= {}
  options.hbase.default_namespace ?= "opentsdb"
  options.hbase.bloomfilter ?= 'ROW'
  options.hbase.compression ?= 'SNAPPY'
  throw Error "Invalid hbase.bloomfilter '#{options.hbase.bloomfilter}' (NONE|ROW|ROWCOL)" unless options.hbase.bloomfilter in ['NONE', 'ROW', 'ROWCOL']
  throw Error "Invalid hbase.compression '#{options.hbase.compression}' (NONE|LZO|GZIP|SNAPPY)" unless options.hbase.compression in ['NONE', 'LZO', 'GZIP', 'SNAPPY']
  # Config
  options.config ?= {}
  options.config['tsd.core.auto_create_metrics'] ?= 'true'
  options.config['tsd.http.staticroot'] ?= "#{options.user.home}/static/"
  options.config['tsd.http.cachedir'] ?= '/tmp/opentsdb'
  options.config['tsd.core.plugin_path'] ?= "#{options.user.home}/plugins"
  options.config['tsd.core.meta.enable_realtime_ts'] ?= 'true'
  options.config['tsd.http.request.cors_domains'] ?= '*'
  options.config['tsd.network.port'] ?= 4242
  # Zookeeper
  # Get ZooKeeper Quorum
  options.config['tsd.storage.hbase.zk_quorum'] ?= (
    for srv in service.deps.zookeeper_server
      continue unless srv.options.config['peerType'] is 'participant'
      "#{srv.node.fqdn}:#{srv.options.config['clientPort']}"
  ).join ','
  options.config['tsd.storage.hbase.zk_basedir'] ?= service.deps.hbase_regionserver[0].options.hbase_site['zookeeper.znode.parent']
  options.config['tsd.storage.fix_duplicates'] ?= 'true'
  options.config['tsd.storage.repair_appends'] ?= 'true'
  ns = (table) -> if options.hbase.default_namespace? then "#{options.hbase.default_namespace}:#{table}" else table
  options.config['tsd.storage.hbase.data_table'] ?= ns 'tsdb'
  options.config['tsd.storage.hbase.uid_table'] ?= ns 'tsdb-uid'
  options.config['tsd.storage.hbase.tree_table'] ?= ns 'tsdb-tree'
  options.config['tsd.storage.hbase.meta_table'] ?= ns 'tsdb-meta'
  options.config['tsd.query.allow_simultaneous_duplicates'] ?= 'true'
  options.config['hbase.security.authentication'] ?= service.deps.hbase_regionserver[0].options.hbase_site['hbase.security.authentication']
  if options.config['hbase.security.authentication'] is 'kerberos'
    options.config['hbase.security.auth.enable'] ?= 'true' 
    options.config['hbase.kerberos.regionserver.principal'] ?= service.deps.hbase_regionserver[0].options.hbase_site['hbase.regionserver.kerberos.principal']
    options.config['java.security.auth.login.config'] ?= '/etc/opentsdb/opentsdb.jaas'
    options.config['hbase.sasl.clientconfig'] ?= 'Client'
  # Env
  options.env ?= {}
  options.env['java.security.auth.login.config'] ?= options.config['java.security.auth.login.config']
  # Opts
  options.java_opts ?= ''

Ranger Admin properties

  options.install ?= {}
  options.install['POLICY_MGR_URL'] ?= service.deps.ranger_admin.options.install['policymgr_external_url']
  options.install['REPOSITORY_NAME'] ?= 'hadoop-ryba-hbase'

Ranger Plugin User

Create the opentsdb user if ranger hbase plugin is enabled.

  if service.deps.ranger_plugin_hbase
    options.plugin_user = merge
      'name': options.user.name
      'firstName': ''
      'lastName': ''
      'emailAddress': ''
      'password': null
      'userSource': 1
      'userRoleList': ['ROLE_USER']
      'groups': []
      'status': 1
    , options.plugin_user
    throw Error 'Required Option: plugin_user.password' unless options.plugin_user.password