在 Docker 上配置 Instana 后端

您可以在 Docker 上配置 Instana 后台。

为 settings.hcl 文件创建模板

settings.hcl 文件是在安装过程中生成的。 此文件具有所有配置,例如,下载密钥,销售密钥, Instana 相关配置 (例如,概要文件,租户名称,单元名称和环境主机名)。 安装 Instana 后端需要这些配置。 您可以配置此文件,然后 Instana-console 使用此文件来安装 Self-Hosted Classic Edition (Docker)。

如果要安装 Instana ,那么需要安装 settings.hcl 文件。

如果需要,请通过运行以下命令创建具有缺省 (空) 值的 settings.hcl 文件:

instana settings template

缺省配置

安装期间将填充以下参数的值:

type      = "single"
profile   = "normal"
tenant    = "<Your-tenancy-identifier>"
unit      = "<Your-backend-identifier>"
agent_key = "<Your-agent-key>"
sales_key = "<Your-sales-key>"
host_name = "<The-FQDN-of-the-machine-the-backend-is-installed-on>"
token_secret = "<max_12_digits>"

cert {
  crt     = "<Path-to-your-signed-certificate>"
  key     = "<Path-to-your-private-key-file>"
}

如果要更改参数,请运行 vi settings.hcl 命令。 要将新配置设置应用到经典版,请运行 instana update 命令。

数据目录

Instana 缺省为以下目录结构:

dir {
  metrics  = "/mnt/metrics"
  traces   = "/mnt/traces"
  data     = "/mnt/data"
  logs     = "/var/log/instana"
}
表 1. 数据目录
目录 描述 Type
度量 Cassandra 在此父目录中创建其数据目录。 在具有专用磁盘 (/mnt/metrics) 的高 IO 设备上安装目录。 字符串
跟踪 ClickHouse 在此父目录中创建其数据目录。 在具有专用磁盘 (/mnt/traces) 的高 IO 设备上安装目录。 字符串
数据 Instana 和第三方组件将数据存储在此父目录中。 字符串
日志 Instana 堆栈中的所有组件都在此父目录中创建日志文件。 字符串

数据存储证书

所有数据存储器都需要认证。 可选: 配置凭证。 初始生成未指定的凭证并将其添加到 settings.hcl 文件。 您可以通过在 settings.hcl 文件中更新密码来更改密码。

要应用更改,请运行以下命令:

instana update

只能更改密码。 用户是固定的,不能更改。

...
datastore "cassandra" {
  user     = "cassandra"
  password = "SECURE_PASS"
}
datastore "elasticsearch" {
  user     = "elastic"
  password = "SECURE_PASS"
}
datastore "kafka" {
  user     = "kafka"
  password = "SECURE_PASS"
}
datastore "clickhouse" {
  user     = "clickhouse"
  password = "SECURE_PASS"
}
datastore "postgres" {
  user     = "postgres"
  password = "SECURE_PASS"
}
datastore "aggregator" {
  user     = "aggregator"
  password = "SECURE_PASS"
}
...

特殊情况多主机

对于多主机设置,不会在 Instana 后端主机上自动创建 ClickHouse 凭证,因为它们必须与 ClickHouse 主机中的值匹配。

将 ClickHouse 凭证块从 ClickHouse 主机复制到 Instana 主机的 settings.hcl 文件中。

数据保留

用于基础设施和平台监控的数据保留

安装期间将计算以下数据保留时间参数。 值为零表示系统不会除去此时间范围的累积。 如果滚动范围较小,数值为零会导致磁盘很快填满。

retention {
  metric_roll_up_5     = 86400
  metric_roll_up_60    = 2678400
  metric_roll_up_300   = 8035200
  metric_roll_up_3600  = 34214400
}

启用BeeInstanaMetric Pipeline(公开预览版)后,您可以配置存储在BeeInstana数据存储中的度量的保留时间。 请参阅以下示例:

env_var "FLAGS_retention_10s"{
  value="86400"
}
env_var "FLAGS_retention_60s"{
  value="2678400"
}
env_var "FLAGS_retention_300s"{
  value="8035200"
}
env_var "FLAGS_retention_3600s"{
  value="34214400"
}
表 1. 留用指标
保留 描述 Type
metric_roll_up_5 提供 1 秒和 5 秒滚动的持续时间(以秒为单位 int
metric_roll_up_60 可进行 1 分钟滚动的时间(以秒为单位 int
metric_roll_up_300 可进行 5 分钟滚动的持续时间(以秒为单位 int
metric_roll_up_3600 可进行 1 小时滚动的持续时间(以秒为单位 int
FLAGS_retention_10s BeeInstana 中存储的 10 秒钟度量数据的保留时间(以秒为单位 int
FLAGS_retention_60s BeeInstana 中存储的 60 秒度量数据的保留时间(秒) int
FLAGS_retention_300s 保存在 BeeInstana 中的 5 分钟度量数据的时间(秒) int
FLAGS_retention_3600s BeeInstana 中存储的 1 小时度量数据的保留时间(以秒为单位 int

图表粒度仅根据所选时间范围的持续时间确定。 这意味着更改度量数据保留时间不会影响 Instana 仪表板中显示的度量数据的粒度。 这些度量值保留时间属性仅供参考,不得更改。

为应用前景和最终用户监控保留数据

应用程序透视图最终用户监视 都共享以下数据保留时间参数:

retention {
  app_data_short_term  = 7
}
表 2. 保留时间
保留 描述 Type
app_data_short_term 保留天数。 int

更改 app_data_short_term 字段只会影响新的 应用程序透视图 数据。

只有大于或等于 7 天的值才有效。 小于 7 的值会导致整个系统发生故障。

请参阅以下示例:

  • app_data_short_term 从 7 天更改为 14 天: 如果旧数据早于 7 天,那么将删除旧数据; 如果新数据早于 14 天,那么将删除新数据。
  • app_data_short_term 从 14 天更改为 7 天: 如果旧数据超过 14 天,那么将删除旧数据; 如果新数据超过 7 天,那么将删除新数据。

更改 app_data_short_term 字段会立即影响旧的和新的 最终用户监视 数据。

请参阅以下示例:

  • app_data_short_term 从 7 天更改为 14 天: 如果新旧数据存在 14 天,那么将删除新旧数据。
  • app_data_short_term 从 14 天更改为 7 天: 如果旧数据为 7 天,那么将删除旧数据和新数据。

在保留期结束后,数据的子集将保留 13 个月。

设置

Docker 存储库设置

请参阅以下设置:

docker_repository {
  base_url = "my.mirror.internal/v2/artifact-public.instana.io"
  username = "user"
  password = "pass"
}
表 3. Docker 存储库设置
参数 描述 Type
base_url 镜像存储库的基本 URL,具体取决于您的标记。 字符串
username 存储库服务器的用户名。 字符串
password 存储库服务器的密码。 字符串

最终用户监控 (EUM) 设置

请参阅以下设置:

eum {
  tracking_base_url     = "https://mobile.acmecorp.com/eum/"
}
表 4. 最终用户监控 (EUM) 设置
参数 描述 Type
tracking_base_url URL 下发布最终用户监控摄取端点。 此配置对数据采集或处理没有任何影响。 而是用于在 Instana 用户界面中提供正确的 JavaScript 和移动应用程序代理程序安装指示信息。 有关更多信息,请参阅专用 配置最终用户监视文档 字符串

通知服务器设置

请参阅以下设置:

email {
  smtp {
    from      = "notif@acmecorp.com"
    host      = "relay-1.acme.internal"
    port      = 25
    user      = "ops-notif@acmecorp.com"
    password  = "yUnoEm41l"
    use_ssl   = true
    start_tls = false
  }
}
表 5. 通知服务器设置
参数 描述 Type
from 来自通知电子邮件的发件人的电子邮件地址。 字符串
host 发送通知电子邮件的 SMTP 服务器地址或主机名。 字符串
port 发送通知电子邮件的 SMTP 服务器的端口。 int
user 发送通知电子邮件的 SMTP 服务器的用户名。 字符串
password 发送通知电子邮件的 SMTP 服务器的密码。 字符串
use_ssl 该值指示发送通知电子邮件的 SMTP 服务器是否使用 SSL 加密。 布尔值
start_tls 该值指示在建立连接后,发送通知电子邮件的 SMTP 服务器是否升级到 TLS。 布尔值

OAuth 设置

请参阅以下设置:

o_auth {
  client_id     = "123456-1n574n4adgjlmnop.apps.googleusercontent.com"
  client_secret = "XNLV-fpf_deadBeEf1234"
}
表 6. OAuth 设置
参数 描述 Type
client_id Google oauth 凭证的客户机标识。 字符串
client_secret Google oauth 凭证的客户机密钥密码。 字符串

代理设置

请参阅以下设置:

proxy {
  host     = "10.9.4.13"
  port     = 8080
  user     = "anonymous"
  password = "P4ssword1234"
  non_proxyHosts = ["google.com"]
}
表 7. 代理设置
参数 描述 Type
host 如果后端服务器使用代理服务器与因特网通信,请输入代理地址或主机名。 字符串
port 代理服务器要与之交谈的端口。 int
user 代理服务器的用户名。 字符串
password 代理服务器的密码。 字符串
non_proxyHosts 绕过特定主机代理的设置。 要使用多个域名,请用逗号分隔,例如,["google.com","example.com"]. 字符串

启用 HSTS

要全局启用 HTTP 严格传输安全 ( HSTS ),请在 settings.hcl 文件根目录下添加以下标记:

hsts_enabled = true

生成 REST API 客户端

本地开放式 API 规范的 URL 是 https://{onpremhost}/docs/openapi (在内部部署版本 170 之后)。 有关如何配置 REST API 客户机的更多信息,请参阅 Web REST API 文档

更换现有证书

要将现有证书替换为其他证书,请使用以下命令更新 settings.hcl 文件中证书文件的路径:

cert {
...
}

然后,通过运行以下命令来更新系统:

instana update -f /path/to/settings.hcl
cert {
  crt = "/mnt/cert/tls.crt"
  key = "/mnt/cert/tls.key"
}

用于网络钩子或邮件集成的自定义证书

如果 Instana 无法验证 SMTP 服务器提供的证书,那么您可能会看到以下 TLS 错误:

ERROR c.i.email.service.client.JavaMail - Mail could not be send due to an error
javax.mail.MessagingException: Could not convert socket to TLS

要配置 Instana 安装以成功将数据发送到具有定制证书的 Webhook ,请提供包含 JVM 证书的定制 Java™ 密钥库 (jssecacerts)。

完成以下步骤以配置 Instana 安装:

  1. 从 JVM $JAVA_HOME/lib/security/cacerts复制当前 JVM 密钥库。

  2. 通过使用带有以下命令的 JVM 密钥工具,将定制证书导入到此密钥库中:

    $JAVA_HOME/bin/keytool -importcert -file custom-crt.crt -alias instana.com -keystore cacerts -storepass changeit
    
  3. 通过在 settings.hcl 文件的根目录中设置 custom_keystore 配置密钥,添加密钥库的绝对路径。

    custom_keystore="<path_to_javakeystore>"