Installing Instana backend and data stores
Install Self-Hosted Standard Edition on a single-node or multi-node cluster.
The Standard Edition installer first installs a cluster. Then, it installs and configures both the Instana backend and data stores on the cluster.
If you are installing in an air-gapped environment, you need a bastion host that has access to the internet and to the host that is in your air-gapped environment.
The installation commands in the following sections are for a root user. If you are a non-root user, you can run these commands by using sudo
.
- Before you begin
- Adding Instana repository and installing stanctl tool in online and air-gapped environments
- Installing the Standard Edition in an online environment
- Installing the Standard Edition in an air-gapped environment
- What's next
Before you begin
Before you begin the installation, make sure you have the following information ready. You need it later when you run the stanctl up
command.
Parameter | Prompt at which you specify the parameter | Example parameter | stanctl up flag |
More information |
---|---|---|---|---|
Installation type | ? Choose installation type: |
The default value for a single-node cluster is demo . . The default value for a multi-node cluster is production . |
--install-type |
Single-node cluster hardware requirements Multi-node cluster hardware requirements |
Base domain name | ? Enter the domain under which Instana will be reachable: |
instana.example.com |
--core-base-domain |
Single-node cluster DNS settings Multi-node cluster DNS settings |
Download key | ? Enter the download key or an official agent key: |
UYB_02_pltyNHJ9lg_56er |
--download-key |
Purchasing a license |
Sales key | ? Enter the sales key: |
qemiOPI_808dklkOIIJWEF |
--sales-key |
Purchasing a license |
Tenant name | ? Enter your tenant name: |
marketing |
--unit-tenant-name |
Tenant and unit names |
Unit name | ? Enter your unit name: |
test |
--unit-unit-name |
Tenant and unit names |
Instana admin password | ? Enter Instana admin password: ? Confirm Instana admin password: |
any value | --unit-initial-admin-password |
Decide on a password for the Instana admin user. |
TLS certificate file | ? Enter TLS certificate file (hit ENTER to auto-generate): |
NA | --core-tls-crt |
Do not enter any value at the prompt to use an automatically generated self-signed certificate. To use a custom certificate, specify the full path and name of your custom Transport Layer Security (TLS) certificate. For example, /opt/instana/key-and-certificate/tls.crt .
For more information, see TLS certificate and key. |
TLS key file | ? Enter TLS key file (hit ENTER to auto-generate): |
NA | --core-tls-key |
If you specify a custom TLS certificate, you must also specify a custom TLS key. For example, /opt/instana/key-and-certificate/tls.key . For more information, see TLS certificate and key. |
Autogenerate TLS certificate and key | NA | No | --core-tls-generate-cert |
During installation, you must provide a TLS certificate and key by using one of the following methods: Method 1: Specify the TLS certificate and key Use the --core-tls-crt and --core-tls-key flags
to specify the TLS certificate and key.Method 2: Automatically generate the TLS certificate and key Use the --core-tls-generate-cert flag to automatically generate the TLS certificate and key during installation.If you do not follow either method, you see the following results: - If you are using the --quiet flag, the installation fails.- If you are not using the --quiet flag, the installation prompts for the certificate
and key.
|
If you are installing on a multi-node cluster by running the stanctl up --multi-node-enable
, you need the following parameters in addition to the items in the previous table.
Parameter | Prompt at which you specify the parameter | Example parameter | stanctl up --multi-node-enable flag |
More information |
---|---|---|---|---|
IP addresses | ? Enter the IPs for all three nodes, separated by commas: |
10.8.1.10,10.8.1.11,10.8.1.12 ; Private IP addresses of the three nodes. |
--multi-node-ips |
See IP addresses. Enter the IP addresses in the correct sequence: first IP address is of node0 that you prepared for the backend, the second IP address is of node1 that you prepared for the data stores, and the third IP address is of node2 for other uses. |
Adding Instana repository and installing stanctl tool in online and air-gapped environments
If you are installing in an online environment, run these commands on your Instana host. In a multi-node cluster, run these commands on node0 (instana-0
).
If you are installing in an air-gapped environment, you have two options to install Standard Edition:
- Install from the Instana repository. To do so, complete the steps in Adding Instana repository, Installing stanctl command-line tool, and Installing in an air-gapped environment.
- Mirror the Instana repository to your internal repository and install from the internal repository. To do so, complete the steps in Mirroring the repositories.
Adding Instana repository
Add the Instana repository to the sources.list
file on your host so that the host has access to the Instana installation package.
As a root user on your host, run the following commands to add the repository:
In the following command, replace <download_key> with the download key that you got with your license. For more information, see Purchasing a license.
-
If you have an Ubuntu or Debian host, run these commands:
export DOWNLOAD_KEY=<download_key> echo 'deb [signed-by=/usr/share/keyrings/instana-archive-keyring.gpg] https://artifact-public.instana.io/artifactory/rel-debian-public-virtual generic main' > /etc/apt/sources.list.d/instana-product.list cat << EOF > /etc/apt/auth.conf machine artifact-public.instana.io login _ password $DOWNLOAD_KEY EOF wget -nv -O- --user=_ --password="$DOWNLOAD_KEY" https://artifact-public.instana.io/artifactory/api/security/keypair/public/repositories/rel-debian-public-virtual | gpg --dearmor > /usr/share/keyrings/instana-archive-keyring.gpg
-
If you have a Red Hat® Enterprise Linux®, CentOS Stream, Amazon Linux, or Oracle Linux host, run these commands:
export DOWNLOAD_KEY=<download_key> cat << EOF > /etc/yum.repos.d/Instana-Product.repo [instana-product] name=Instana-Product baseurl=https://_:$DOWNLOAD_KEY@artifact-public.instana.io/artifactory/rel-rpm-public-virtual/ enabled=1 gpgcheck=0 gpgkey=https://_:$DOWNLOAD_KEY@artifact-public.instana.io/artifactory/api/security/keypair/public/repositories/rel-rpm-public-virtual repo_gpgcheck=1 EOF
-
If you have a SUSE Linux Enterprise Server (SLES) host, run these commands:
export DOWNLOAD_KEY=<download_key> cat << EOF > /etc/zypp/credentials.d/instana_auth username=_ password=$DOWNLOAD_KEY EOF cat << EOF > /etc/zypp/repos.d/Instana-Product.repo [instana-product] name=Instana-Product baseurl=https://artifact-public.instana.io/artifactory/rel-rpm-public-virtual/?credentials=instana_auth enabled=1 gpgcheck=0 gpgkey=https://artifact-public.instana.io/artifactory/api/security/keypair/public/repositories/rel-rpm-public-virtual?credentials=instana_auth repo_gpgcheck=1 EOF
Mirroring the repositories
Mirror the following repositories as required:
- If you want to mirror the Docker registry, mirror the following repository:
https://artifact-public.instana.io/artifactory/rel-docker-public-virtual
- If you want to mirror the Helm repository, mirror the following repository:
https://artifact-public.instana.io/artifactory/rel-helm-customer-virtual
- If you want to mirror cluster artifacts, mirror the following repository:
https://artifact-public.instana.io/artifactory/rel-generic-instana-virtual/k3s-io/k3s/releases/download
Then, on your bastion host, install the stanctl
command-line tool.
Installing stanctl command-line tool
The Standard Edition is managed by a command-line tool named stanctl
that you must install.
-
If you have an Ubuntu or Debian host, run these commands:
-
Update the package index files on your host.
apt update -y
-
Install
stanctl
.apt install -y stanctl
-
To avoid automatic updates, set the
stanctl
package version.apt-mark hold stanctl
-
-
If you have a Red Hat Enterprise Linux or CentOS Stream host, run these commands:
-
Refresh your
yum
repositories.yum clean expire-cache -y
-
Update the package index files on your host.
yum update -y
-
Install
stanctl
.yum install -y stanctl
-
If the versionlock plug-in is not installed on your host, run the following command to install the plug-in.
yum install python3-dnf-plugin-versionlock
-
To avoid automatic updates, set the
stanctl
package version.yum versionlock add stanctl
-
-
If you have an Amazon Linux or Oracle Linux host, run these commands:
-
Refresh your
dnf
repositories.dnf clean expire-cache -y
-
Update the package index files on your host.
dnf update -y
-
Install
stanctl
.dnf install -y stanctl
-
To avoid automatic updates, set the
stanctl
package version.dnf versionlock add stanctl
-
-
If you have an SLES host, run these commands:
-
Refresh and update the package index files on your host.
zypper refresh
Enter
a
, which means trust always, when you see the questionDo you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r):
-
Install
stanctl
.zypper install -y stanctl
-
After you install the tool, it is automatically added to your $PATH
. You can run the stanctl
commands from any directory.
To check the version of stanctl
that you installed, run the following command:
stanctl --version
For more information about stanctl
commands, see Using stanctl commands.
Installing the Standard Edition in an online environment
Install the cluster, Instana backend, and all the required data stores.
The command not only creates the cluster, but also completes the Instana installation. You can use flags with the command to specify configurations. For example, if you run stanctl up --install-type demo
, you won't need to specify
the installation type at the prompt in the next step.
If you used custom directories for the data stores, make sure to add the --volume-<directory-name>
flag for each directory to the stanctl up
command.
Or, use environment variables. See Environment variables.
If your environment must have an HTTP proxy for external connectivity, configure the proxy settings as described in the Configuring an HTTP proxy server section. Also, when you
run the stanctl up
command to install the Standard Edition, make sure to add the --core-proxy-host
, --core-proxy-port
, --core-proxy-user
, and --core-proxy-password
flags. Or,
use environment variables. See Environment variables.
-
To install a single-node cluster, run the following command:
stanctl up
-
To install a multi-node cluster, run the following command:
stanctl up --multi-node-enable
Enter the parameter values at the prompt. For more information about the prompts, see the Before you begin section.
You can use stanctl up --quiet
to suppress the prompts for parameters. If you do so, default values are applied unless you explicitly specify the parameter values by using CLI flags or environment variables.
? Choose installation type: demo
? Enter the download key or an official agent key: **********************
? Enter the sales key: **********************
? Enter the domain under which Instana will be reachable: instana.example.com
? Enter your tenant name: marketing
? Enter your unit name: test
? Enter Instana admin password: *****
? Confirm Instana admin password: *****
? Enter TLS certificate file (hit ENTER to auto-generate):
When installation of the Standard Edition is successfully initialized, it starts setting up the cluster. You might see the following message:
⠧ Setting up the Kubernetes cluster [9s]
It might take several minutes for the Instana backend to be ready.
When you see the following message, your cluster is ready. You can log in to the Instana UI by using the URL that is shown in the message, and by using the admin
user credentials.
****************************************************************
* Successfully installed Instana Self-Hosted Standard Edition! *
* *
* URL: https://instana.example.com *
* Username: admin@instana.local *
****************************************************************
Installing the Standard Edition in an air-gapped environment
In an air-gapped environment, you must create an installation package on your bastion host, transfer it to the host that is in the air-gapped environment, then use the package to install the Standard Edition.
Creating the air-gapped installation package
Create an installation package on your bastion host.
-
On your bastion host, make sure that you installed
stanctl
as described in the Installing stanctl command-line tool section. -
Create the air-gapped package. By default, the package is created in the current directory. To specify another location, use the
--output-dir <full-path-to-directory>
flag with the command. For the disk space requirement of the directory, see Storage requirements.-
If you did not mirror any repositories for the installation, run the following command:
stanctl air-gapped package
-
If you mirrored Instana repositories, use the following flags with the
stanctl air-gapped package
command as applicable:- If you mirrored the Docker registry, use the following flag:
--registry-use-in-air-gapped
- If you mirrored the Helm repository, use the following flag:
--helm-repo-use-in-air-gapped
- If you mirrored cluster artifacts, use the following flags:
--cluster-use-in-air-gapped
The following command is an example that uses all the flags:
stanctl air-gapped package --registry-use-in-air-gapped --helm-repo-use-in-air-gapped --cluster-use-in-air-gapped
- If you mirrored the Docker registry, use the following flag:
-
-
Enter the download key and sales key at the prompt. For more information about the prompts, see the Before you begin section.
? Enter the download key or an official agent key: ********************** ? Enter the sales key: **********************
If the keys that you entered are valid, the installer starts downloading the artifacts and creates the air-gapped package. You might see the following message:
⠇ Packaging stanctl artifacts [1s] ✓
⠇ Packaging BuildMeta artifacts [1s] ✓
⠇ Packaging Cluster artifacts [1s] ✓
⠦ Packaging Geodb artifacts [0s] ✓
⠸ Packaging Helm artifacts [12s] ✓
⠙ Packaging License artifacts [0s] ✓
⠴ Packaging Registry artifacts [2m00s]
Depending on network conditions, it might take several minutes for the air-gapped package to be created.
When you see the following message, your air-gapped package is ready.
------------------------------------------
Air-gapped package successfully exported!
File: instana-airgapped.tar.gz
------------------------------------------
Transferring the air-gapped installation package
Transfer the air-gapped package from the bastion host to the Instana host that is in your air-gapped environment. In a multi-node cluster, transfer the air-gapped package to node0 (instana-0
).
You must install the command-line tool stanctl
on the Instana host that is in your air-gapped environment. In a multi-node cluster, you must install stanctl
on node0 (instana-0
).
You can install the tool by using the binary file that is provided in the air-gapped package.
-
Extract the air-gapped package and copy the
stanctl
file to the/usr/local/bin
directory on your Instana host.tar -xzf </path/to/instana-airgapped.tar.gz> -C /usr/local/bin --strip-components 1 airgapped/stanctl
-
Import the air-gapped package.
-
If you did not mirror any repositories for the installation, run the following command:
stanctl air-gapped import --file </path/to/instana-airgapped.tar.gz>
-
If you mirrored Instana repositories, use the following flags with the
stanctl air-gapped import
command as applicable:- If you mirrored the Docker registry, use the following flag:
--registry-use-in-air-gapped
- If you mirrored the Helm repository, use the following flag:
--helm-repo-use-in-air-gapped
- If you mirrored the cluster artifacts, use the following flags:
--cluster-use-in-air-gapped
The following command is an example that uses all the flags:
stanctl air-gapped import --file </path/to/instana-airgapped.tar.gz> --registry-use-in-air-gapped --helm-repo-use-in-air-gapped --cluster-use-in-air-gapped
- If you mirrored the Docker registry, use the following flag:
-
Installing the Standard Edition (air-gapped)
Install a cluster, the Instana backend, and all required data stores in an air-gapped environment. Follow the instructions in Installing the Standard Edition in an online environment.
-
To install a single-node cluster, run the following command. At the prompt, enter the parameter values.
- If you are using the Instana repository for installation, run the following command:
stanctl up --air-gapped
- If you are using a mirrored repository for installation, use the following commands:
- For using your Docker registry, run the following command:
stanctl up --air-gapped --registry-url <url> --registry-user <username> --registry-password <password> --registry-use-in-air-gapped
- For using your Helm repository, run the following command:
stanctl up --air-gapped --helm-repo-url <url> --helm-repo-user <username> --helm-repo-password <password> --helm-repo-use-in-air-gapped
- For using your cluster artifacts, run the following command:
stanctl up --air-gapped --cluster-url <url> --cluster-user <username> --cluster-password <password> --cluster-use-in-air-gapped
- For using Docker registry, Helm repository, and cluster artifacts, run the following command:
stanctl up --air-gapped --registry-url <url> --registry-user <username> --registry-password <password> --registry-use-in-air-gapped --helm-repo-url <url> --helm-repo-user <username> --helm-repo-password <password> --helm-repo-use-in-air-gapped --cluster-url <url> --cluster-user <username> --cluster-password <password> --cluster-use-in-air-gapped
- For using your Docker registry, run the following command:
- If you are using the Instana repository for installation, run the following command:
-
To install a multi-node cluster, run the following command on node0 (
instana-0
) as the user that you configured for SSH access. At the prompt, enter the parameter values.- If you are using the Instana repository for installation, run the following command:
stanctl up --air-gapped --multi-node-enable
- If you are using a mirrored repository for installation, use the following commands:
- For using your Docker registry, run the following command:
stanctl up --air-gapped --multi-node-enable --registry-url <url> --registry-user <username> --registry-password <password> --registry-use-in-air-gapped
- For using your Helm repository, run the following command:
stanctl up --air-gapped --multi-node-enable --helm-repo-url <url> --helm-repo-user <username> --helm-repo-password <password> --helm-repo-use-in-air-gapped
- For using your Cluster artifacts, run the following command:
stanctl up --air-gapped --multi-node-enable --cluster-url <url> --cluster-user <username> --cluster-password <password> --cluster-use-in-air-gapped
- For using Docker registry, Helm repositories, and Cluster artifacts, run the following command:
stanctl up --air-gapped --multi-node-enable --registry-url <url> --registry-user <username> --registry-password <password> --registry-use-in-air-gapped --helm-repo-url <url> --helm-repo-user <username> --helm-repo-password <password> --helm-repo-use-in-air-gapped --cluster-url <url> --cluster-user <username> --cluster-password <password> --cluster-use-in-air-gapped
- For using your Docker registry, run the following command:
- If you are using the Instana repository for installation, run the following command:
What's next
When you install the Instana backend, some components are available by default. For more information, see Components.
To install agents and optional features, see Configuring Instana.
If required, you can enable autocompletion for your shell to get prompts for the stanctl
commands. For more information, run the stanctl completion -h
command.