Prepare Your Environment
Prepare certificates, keys, and environment requirements before installing a hybrid deployment.
Before installing a Hybrid Deployment, prepare your environment by ensuring secure and seamless communication between the Virtual Appliance and your On-Premises Controller. Collect and copy all required artifacts including certificates and keys for the Ingress Controller, Splunk AppDynamics On-Premises Controller, and Database as described in the following sections.
This enables the Virtual Appliance to securely connect, authenticate, and establish encrypted communication channels with the Splunk AppDynamics On-Premises Controller for reliable operation.
Create a Three-Node Cluster
Create a three-node Virtual Appliance cluster from the primary node.
Configure DNS Entries
Configure DNS entries required for hybrid deployment communication.
Verify DNS resolution for the Splunk AppDynamics components. The following script helps identify common network configuration issues that might cause communication issues in Virtual Appliance. It checks if specific host names can be resolved to IP addresses, which is crucial for the proper functioning of the Controller and its services.
globals.yaml.gotmpl contains the primary node IP address of Virtual Appliance. Edit the globals.yaml.gotmpl file as follows:
-
Log in to the console of the primary node.
-
Navigate to the following folder:CODE
cd /var/appd/config -
Edit the
globals.yaml.gotmplfile and updatednsNamesanddnsDomain.CODEvi globals.yaml.gotmplList the Ingress domain names that you require to configure for the Virtual Appliance.
Note:- Include
localhostforappdclito access the cluster. If the domain names are unavailable, specify<nodeip>.nip.iofor each cluster. You must also include thednsDomainas a value, in addition to other specified values. - Some network policies might block the IP address that contains
x.x.x.x.nip.io. In such scenarios, update the/etc/hostsfile. See, Update DNS Configuration for an Air-Gapped Environment. - If you are using domain names for your Virtual Appliance, comment or delete the
range splitfunction. Then, comment thelocalhost.
JSONdnsNames: &dnsNames # - localhost - 10.0.0.1.nip.io - 10.0.0.2.nip.io - 10.0.0.3.nip.io - appd.example.com # If you are using Virtual IP address for your standalone Controller, comment or delete the range split function. {{ range split " " $internalIPs }} {{ printf " - %s.%s" . "nip.io" }} {{ end }} - Include
Enable Self-Monitoring Capabilities
Enable self-monitoring capabilities for the Virtual Appliance by updating the global configuration file.
enableClusterAgent parameter to true in the global.yaml.gotmpl file.
By default, this parameter is set to true. This setting helps you monitor the CPU, Memory, and Network usage of your cluster nodes. See View Container Details
false.
enableClusterAgent: false
Configure Ingress Certificates (Only for SSL Certificates)
Configure custom ingress certificates and required SANs for the Virtual Appliance.
If you require a CA-signed certificate for the Ingress Controller, configure an SSL/TLS certificate for Splunk AppDynamics Self Hosted Virtual Appliance by providing all the required hostnames. This ensures that all components and user access points of the Virtual Appliance are securely accessible. The following script generates a list of Subject Alternative Names (SANs) that would be required for a custom ingress certificate in Virtual Appliance. This is crucial for securing communication with the Virtual Appliance using HTTPS.
Ensure that you have the following files:
- Private key
-
Filename must be
ingress.pem. Ensure thatingress.pemis in PEM plain text format. - PEM certificate bundle
-
Filename must be
ingress.crt. Ensure theingress.pemis in PEM plain text format.The
ingress.crtPEM certificate bundle requires a particular order for the PEM-encoded certificates:- leaf/server certificate
- intermediate CA certificate(s)
- root CA certificate
The SAN of the server certificate in
ingress.pemmust include all the hostnames that are defined in thednsNamessection of theglobal.yaml.gotmplfile.For Secure Application, ensure that you include
*.<DOMAIN-NAME>and all required SAN aliases in the certificate's Subject Alternative Name (SAN) list.
Update the Standalone Controller TLS Certificate
Update the standalone Controller TLS certificate and import required SANs into the Virtual Appliance.
Collect Certificates and Keys for Virtual Appliance
Collect certificates and keys required for secure communication between the Virtual Appliance and existing components.
-
Controller: Go to the location where you have exported the certificate files. For example, <AppD Home>/controller/appserver/jetty/etc/
CODEscp hybrid-controller-ca.crt appduser@<node-IP-address>:/var/appd/config/hybrid-controller-ca.crtNote: Use thehybrid-controller-ca.crtcertificate for HTTPS connections. -
MySQL Database: Go to the database location. For example, <AppD Home>/controller/db/data.
CODEscp ca.pem appduser@<node-IP-address>:/var/appd/config/hybrid-mysql-ca.crt -
(Optional) Kafka: When you generate the CA certificates for Kafka, ensure to specify the Kafka IP addresses. These IP addresses are the same node IP addresses.
Copy a Kafka key to the Virtual Appliance.
CODEscp <kafka.key> appduser@<node-IP-address>:/var/appd/config/hybrid-kafka.keyCopy a Kafka certificate to the Virtual Appliance.
CODEscp <kafka.crt> appduser@<node-IP-address>:/var/appd/config/hybrid-kafka.crt
Complete the following steps to prepare the environment: