Containers, Kubernetes, OpenShift on Power

 View Only

Dynatrace monitoring Red Hat OpenShift for Linux on IBM Power (ppc64le)

By Mithun H R posted Fri November 03, 2023 09:16 AM

  

Introduction

This tutorial will cover the process of installing and configuring Dynatrace on the IBM Power platform (ppc64le). While Dynatrace offers comprehensive documentation for various environments, specific installation instructions tailored to Linux on IBM Power are currently not available within the official Dynatrace documentation.

To bridge the gap, this guide is created to provide a clear and detailed roadmap for deploying Dynatrace on IBM Power. By following the steps outlined in this article, you can effectively set up Dynatrace to monitor applications and infrastructure in IBM Power environment. Let's get started with the installation and configuration process to enhance monitoring capabilities on the platform.

Prerequisites

Before proceeding with the installation, the following prerequisites must be met:

  1. Mailbox user account is required to log in to the Dynatrace dashboard. This account will be used to deploy Dynatrace and receive the login password.
  2. Ensure that the following infrastructure components are set up.
    • OpenShift Container Platform(OCP) environment on a ppc64le platform.
    • Dynatrace ActiveGate on an x86 platform.
    • Both the Bastion node and the x86 platform should be running the latest version of Red Hat Enterprise Linux (RHEL) 8.x.

Steps

Start by installing Dynatrace Operator, which supports rollout and lifecycle management of various Dynatrace components in Kubernetes and Red Hat OpenShift.

Install Dynatrace Operator

Following are the steps to install Dynatrace Operator.

  1. Log in to the OpenShift cluster from the Bastion node. Use either a login token or console credentials. Use the following command to log in.
    $oc login --token=sha256~g9lfvmZr2cBBYPBpDgozWEN9PbVu_8oVV7Aib_Dax4Q --server=https://api.vp23-11.pic2.isv.ihost.com:6443
  2. Create a new project using the following command.
    $oc new-project Dynatrace
  3. Create a new folder to store all the installation files using the following command.
    $mkdir -p /home/dynatrace/dynatrace-0.13
    $cd /home/dynatrace/dynatrace-0.13
  4. Download the ‘openshift.yaml’ configuration file as described in the Dynatarce documentation.

    Use the ‘wget’ command to download the file.

    $wget https://github.com/Dynatrace/dynatrace-operator/releases/download/v0.13.0/openshift.yaml
  5. Locate any references to ‘registry.connect.redhat.com’ or an image tag and replace them with ‘registry.hub.docker.com’. Since the images for ppc64le are not published on registry.connect.redhat.com, this step is necessary.

    Use the following command to search the image tags.

    $ grep registry.connect.redhat.com openshift.yaml
    and to registry.connect.redhat.com/dynatrace/F for OpenShift'
    image: registry.connect.redhat.com/dynatrace/dynatrace-operator:v0.13.0
    image: registry.connect.redhat.com/dynatrace/dynatrace-operator:v0.13.0
    Replace ‘registry.connect.redhat.com’ with ‘registry.hub.docker.com’
  6. Validate the correctness of image tags using the following command.
    $ grep registry.hub.docker openshift.yaml
    image: registry.hub.docker.com/dynatrace/dynatrace-operator:v0.13.0
    image: registry.hub.docker.com/dynatrace/dynatrace-operator:v0.13.0
  7. Now that the configuration is ready, install the modified ‘openshift.yaml’ file using the following command.
    $ oc apply -f ./openshift.yaml
    poddisruptionbudget.policy/dynatrace-webhook created
    serviceaccount/dynatrace-activegate created
    serviceaccount/dynatrace-kubernetes-monitoring created
    serviceaccount/dynatrace-dynakube-oneagent created
    serviceaccount/dynatrace-operator created
    serviceaccount/dynatrace-webhook created
    customresourcedefinition.apiextensions.k8s.io/dynakubes.dynatrace.com configured
    clusterrole.rbac.authorization.k8s.io/dynatrace-activegate configured
    clusterrole.rbac.authorization.k8s.io/dynatrace-kubernetes-monitoring configured
    clusterrole.rbac.authorization.k8s.io/dynatrace-dynakube-oneagent created
    clusterrole.rbac.authorization.k8s.io/dynatrace-operator configured
    clusterrole.rbac.authorization.k8s.io/dynatrace-webhook configured
    clusterrolebinding.rbac.authorization.k8s.io/dynatrace-activegate configured
    clusterrolebinding.rbac.authorization.k8s.io/dynatrace-kubernetes-monitoring configured
    clusterrolebinding.rbac.authorization.k8s.io/dynatrace-dynakube-oneagent created
    clusterrolebinding.rbac.authorization.k8s.io/dynatrace-operator configured
    clusterrolebinding.rbac.authorization.k8s.io/dynatrace-webhook configured
    role.rbac.authorization.k8s.io/dynatrace-operator created
    role.rbac.authorization.k8s.io/dynatrace-webhook created
    rolebinding.rbac.authorization.k8s.io/dynatrace-operator created
    rolebinding.rbac.authorization.k8s.io/dynatrace-webhook created
    service/dynatrace-webhook created
    deployment.apps/dynatrace-operator created
    deployment.apps/dynatrace-webhook created
    mutatingwebhookconfiguration.admissionregistration.k8s.io/dynatrace-webhook configured
    validatingwebhookconfiguration.admissionregistration.k8s.io/dynatrace-webhook configured
  8. Verify the status of the pods using the following command.
    $oc get pods
    NAME READY STATUS RESTARTS AGE
    dynatrace-operator-6d88dbf9bd-z88db 1/1 Running 0 35s
    dynatrace-webhook-67995d647-bqfj8 1/1 Running 0 35s
    dynatrace-webhook-67995d647-ldv2s 1/1 Running 0 35s

    List of pods along with their status will be displayed, indicating that the Dynatrace Operator is up and running successfully.

Create and deploy custom Dynakube resource

A custom resource of type DynaKube, controls how the Dynatrace components are deployed. The parameters for various Dynatrace features, such as the ActiveGate features and OneAgent deployment mode, will be included in this custom resource.

Follow these steps to create and deploy custom Dynakube resources.

  1. Log in to the Dynatrance
  2. Navigate to Deploy Dynatrace à Start installation à OpenShift.

    Additionally, the search box in the left panel can be utilized for locating it. For instance, enter 'Deploy' in the search box to find 'Deploy Dynatrace'.

  3. In the resultant screen
    1. Provide a Name for the deployment.
    2. Click Create token button corresponding to Dynatrace Operator token.
    3. Click Download Dynakube.yaml to download the ‘Dynakube.yaml’ file.
    4. Copy the downloaded file to the ppc64le cluster.
      deploy Dynatrace
  4. Navigate to Deploy Dynatrace à Start installation à Linux from the left panel.
    1. Click Create token button corresponding to PaaS Token
    2. Select PowerPC (LE) from Choose installer type list.
      Download Dynatrace OneAgent for linux
  5. Open the downloaded ‘dynakube.yaml’ file and replace the environment variables in the ‘oneagent’ section with the installer URL, Operator token, and PaaS token generated in the previous steps.
    env: 
         - name: ONEAGENT_INSTALLER_SCRIPT_URL 
           value: "https://clv13876.live.dynatrace.com/api/v1/deployment/installer/agent/unix/default/latest?arch=ppcle&flavor=default" 
         - name: ONEAGENT_INSTALLER_DOWNLOAD_TOKEN 
           value: dt0c01.UHSRFVKZWYLJLCXH254YISZK.QTLJJUADZNOMJDBQFV3MF6TMWYEOK3OKEZX74JQR2RAAZBVKIZOZAHO43DFDFCYP 
         - name: ONEAGENT_ENABLE_VOLUME_STORAGE 
           value: "false"
    
  6. Modify the content of the ‘dynakube.yaml’ file at lines #72, #141, and #169 as follows.
         image: ""  to 
         image: docker.io/dynatrace/oneagent:latest 
    Around line #141, (Under activeGate:), Comment the capabilities:  like,  
      # capabilities: 
      # - routing 
      # - kubernetes-monitoring 
      # - dynatrace-api 
    Around #169, comment out the following lines 
      # resources: 
      # requests: 
      # cpu: 500m 
      # memory: 512Mi 
      # limits: 
      # cpu: 1000m 
      # memory: 1.5Gi
    
  7. Install ‘dynakube.yaml’ by using the following command.
    $oc apply -f ./dynakube-0.13.yaml
    secret/isvoneagent created
    Warning: Some feature flags are deprecated and will be removed in the future: 'feature.dynatrace.com/automatic-kubernetes-api-monitoring'
    dynakube.dynatrace.com/isvoneagent created
    
  8. Wait for 10-15 seconds for the deployment to complete.
  9. Verify the deployment status of the pods using the following command.
    $oc get pods
    NAME                                  READY   STATUS    RESTARTS   AGE
    dynatrace-operator-6d88dbf9bd-z88db   1/1     Running   0          8m48s
    dynatrace-webhook-67995d647-bqfj8     1/1     Running   0          8m48s
    dynatrace-webhook-67995d647-ldv2s     1/1     Running   0          8m48s
    isvoneagent-oneagent-9d4pd            1/1     Running   0          62s
    isvoneagent-oneagent-dbrxn            1/1     Running   0          62s
    isvoneagent-oneagent-j74gb            1/1     Running   0          62s
    isvoneagent-oneagent-n788t            1/1     Running   0          62s
    isvoneagent-oneagent-tvjgh            1/1     Running   0          62s
    
  10. Verify the status of all the resources in the project using the following command.
    $oc get all
    NAME                                      READY   STATUS    RESTARTS   AGE
    pod/dynatrace-operator-6d88dbf9bd-z88db   1/1     Running   0          8m52s
    pod/dynatrace-webhook-67995d647-bqfj8     1/1     Running   0          8m52s
    pod/dynatrace-webhook-67995d647-ldv2s     1/1     Running   0          8m52s
    pod/isvoneagent-oneagent-9d4pd            1/1     Running   0          66s
    pod/isvoneagent-oneagent-dbrxn            1/1     Running   0          66s
    pod/isvoneagent-oneagent-j74gb            1/1     Running   0          66s
    pod/isvoneagent-oneagent-n788t            1/1     Running   0          66s
    pod/isvoneagent-oneagent-tvjgh            1/1     Running   0          66s
    
    NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
    service/dynatrace-webhook   ClusterIP   172.30.164.143   <none>        443/TCP   8m52s
    
    NAME                                  DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/isvoneagent-oneagent   5         5         5       5            5           <none>          66s
    
    NAME                                 READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/dynatrace-operator   1/1     1            1           8m52s
    deployment.apps/dynatrace-webhook    2/2     2            2           8m52s
    
    NAME                                            DESIRED   CURRENT   READY   AGE
    replicaset.apps/dynatrace-operator-6d88dbf9bd   1         1         1       8m52s
    replicaset.apps/dynatrace-webhook-67995d647     2         2         2       8m52s
    
  11. On the Dynatrace dashboard, click Infrastructure and observability and then click Hosts to view the OCP nodes.
    OneAgent deployment

Install Dynatrace on x86 machine

A Dynatrace ActiveGate acts as a secure proxy between Dynatrace OneAgents and Dynatrace Clusters or between Dynatrace OneAgents and other ActiveGates, closer to the Dynatrace Cluster.

It establishes Dynatrace presence in the local network. In this way it allows you to reduce your interaction with Dynatrace to a single point - available locally. Besides convenience, this solution optimizes traffic volume, reduces the complexity of the network and cost. It also ensures the security of sealed networks.

Follow these steps to install ActiveGate on x86 machine.

  1. Ensure that the x86 machine is ready with root access.
  2. In the Dynatrace menu, click Deploy Dynatrace andthen click Install ActiveGate. (Install ActiveGate button can be found at the end of the page).
  3. Select Linux to redirect to Install Linux Environment ActiveGate page.
  4. Click Create Token and then select x86/64 for Choose installer type.
  5. For the question 1. What’s the purpose of this ActiveGate? Click Route OneAgent traffic to Dynatrace, monitor cloud environments, or monitor remote technologies.
    Install Linux Environment ActiveGate
  6. Log in to the x86 machine as root.
  7. Download the installer using the code in 3. Run this command on the target host to download the installer section.
  8. Verify the signature of the downloaded installer using the code in 4. Verify signature Section.

    For example:

    $wget -O Dynatrace-ActiveGate-Linux-x86-1.271.124.sh "https://clv13876.live.dynatrace.com/api/v1/deployment/installer/gateway/unix/latest?arch=x86" --header="Authorization: Api-Token dt0c01.BAXB6RHTM6C3EJQ4T27QHYDV.EORP3WYVTIJRJCBEH3FMRLME2QNUE3BILIZLVYVCD5FGS33CJ7OSPFY4EGNEBM7W"
    --2023-08-23 05:12:22--  https://clv13876.live.dynatrace.com/api/v1/deployment/installer/gateway/unix/latest?arch=x86
    Resolving clv13876.live.dynatrace.com (clv13876.live.dynatrace.com)... 44.226.63.164, 35.85.202.128, 44.229.25.82
    Connecting to clv13876.live.dynatrace.com (clv13876.live.dynatrace.com)|44.226.63.164|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 226480464 (216M) [application/octet-stream]
    Saving to: Dynatrace-ActiveGate-Linux-x86-1.271.124.sh
    Dynatrace-ActiveGate-Linux-x86-1. 100%[============================================================>] 215.99M  25.6MB/s    in 8.9s
    2023-08-23 05:12:33 (24.4 MB/s) - ëDynatrace-ActiveGate-Linux-x86-1.271.124.shí saved [226480464/226480464]
    $ ls -tlr
    total 448580
    -rw-r--r--. 1 root root      2172 Feb  1  2017 dt-root.cert.pem
    drwxr-xr-x. 2 root root       107 May 25 09:27 old
    -rw-r--r--. 1 root root 232853912 May 25 09:28 Dynatrace-ActiveGate-Linux-x86-1.265.136.sh
    -rw-r--r--. 1 root root 226480464 Aug 23 05:12 Dynatrace-ActiveGate-Linux-x86-1.271.124.sh
    

    Note: If ‘wget’ is not already installed, install it using ‘yum install wget’ command.

  9. Run the installer using the following command.
    $./Dynatrace-ActiveGate-Linux-x86-1.271.124.sh
    2023-08-23 09:13:34 UTC Dynatrace ActiveGate installer version 1.271.124.20230804-163137, architecture x86_64, build date 04.08.2023
    2023-08-23 09:13:34 UTC Log initialized in /tmp/dynatracegateway-install_20230823-051334_2472899.log
    Bash path variable: /bin/bash
    Bash version variable: 4.4.20(1)-release
    Found GNU bash in /proc/self/exe
    
    $systemctl status dynatracegateway
     dynatracegateway.service - Dynatrace ActiveGate service
       Loaded: loaded (/etc/systemd/system/dynatracegateway.service; enabled; vendor preset: disabled)
       Active: active (running) since Wed 2023-08-23 05:14:15 EDT; 50s ago
      Process: 2474252 ExecStop=/opt/dynatrace/gateway/dynatracegateway stop (code=exited, status=0/SUCCESS)
      Process: 2474524 ExecStart=/opt/dynatrace/gateway/dynatracegateway start (code=exited, status=0/SUCCESS)
     Main PID: 2474547 (dynatracegatewa)
        Tasks: 244 (limit: 20000)
       Memory: 2.2G
       CGroup: /system.slice/dynatracegateway.service
               +-2474547 /opt/dynatrace/gateway/launcher/dynatracegateway -bg -config /var/lib/dynatrace/gateway/config/dynatracegateway.i>
               +-2474551 /opt/dynatrace/gateway/jre/bin/java -Dcom.compuware.apm.WatchDogPort=50002 -Dcom.compuware.apm.WatchDogTimeout=18>
    
    Aug 23 05:14:15 vp23-011-activegate systemd[1]: Starting Dynatrace ActiveGate service...
    Aug 23 05:14:15 vp23-011-activegate dynatracegateway[2474524]: 23/08 05:14:15 (1.271.124.20230804-163137) Dynatrace ActiveGate started.
    Aug 23 05:14:15 vp23-011-activegate dynatracegateway[2474524]: 23/08 05:14:15 (1.271.124.20230804-163137)
    Aug 23 05:14:15 vp23-011-activegate systemd[1]: Started Dynatrace ActiveGate service
    

    Note: Ensure that the firewall is installed. If not already installed, install it using ‘yum install firewalld -y’ command.

  10. Ensure that the tcp/9999 is open for the OneAgent to connect.
    $firewall-cmd --add-port=9999/tcp 
    $firewall-cmd --permanent --add-port=9999/tcp
    
  11. Test whether the port 9999 is open on the ActiveGate (x86 host) from the Bastion node.
    $ nc -zv  9999
    
  12. Test whether port 9999 is open on the ActiveGate (x86 host) from OCP cluster nodes.
    $ for i in `oc get nodes| awk '{print $1}' | tail -n +2`; do echo $i && ssh $i nc -zv  9999; done
    
  13. Open Dynatrace dashboard, from the left panel select Deployment status à ActiveGates to confirm the ActiveGate installation.
    ActiveGates
  14. In the left panel, under Deployment status click OneAgents.

    Information about each node, their associated IP addresses, and the currently used ActiveGate is displayed.

    OneAgent deployment

Summary

This technical guide outlines the step-by-step process for installing Dynatrace operator, creating and deploying a custom Dynakube resource, and installing ActiveGate on an x86 machine. Key actions include logging into the Dynatrace dashboard, generating tokens, downloading configuration files, and modifying environment variables. The guide emphasizes verifying successful deployments and ensuring proper connectivity.

To adapt for IBM Linux on Power, the only required change is substituting images with Docker Hub repository references until they become accessible in the Red Hat Registry.

Additional authors

I'd like to acknowledge Shiva Laveti and Calvin Sze who co-authored this blog. Thank you.

References


#Featured-area-1
#Featured-area-1-home

Permalink