Installing and configuring the DEM plug-in for HTTP Server

To enable DEM on HTTP Sever, you must first deploy the DEM plug-in in Unified Agent, and then install and configure the DEM plug-in for HTTP Server.

Before you begin

Make sure that the UA plug-in for DEM is deployed in Unified Agent.

About this task

To deploy the DEM plug-in for HTTP Server, download the plug-in package and then do configurations.

Procedure

  1. Review the part numbers and download appMgtDataCollectors_2019.4.0.2.tar.gz from IBM Passport Advantage. For more information, see Part numbers.
  2. Extract the package to get the ibmapm_dem_ihs_datacollector.tgz package file by running the following command:
    tar xzf appMgtDataCollectors_2019.4.0.2.tar.gz
    cd appMgtDataCollectors_2019.4.0.2
    tar xzf app_mgmt_runtime_dc_2019.4.0.2.tar.gz
    cd app_mgmt_runtime_dc_2019.4.0.2
  3. Extract ibmapm_dem_ihs_datacollector.tgz and find the files mod_wrt_2.2.so, mod_wrt_2.4.so and ihs_dc_enable.sh.
  4. Add the following commands to the Docker file.
    • For IBM HTTP Server 8.5.5:
      COPY mod_wrt_2.2.so /opt/IBM/modules/mod_wrt.so
      COPY ihs_dc_enable.sh /opt/IBM/script/ihs_dc_enable.sh
      RUN /opt/IBM/script/ihs_dc_enable.sh  -c ${HTTPD_CONF_PATH}/httpd.conf
    • For IBM HTTP Server 9.0:
      COPY mod_wrt_2.4.so /opt/IBM/modules/mod_wrt.so
      COPY ihs_dc_enable.sh /opt/IBM/script/ihs_dc_enable.sh
      RUN /opt/IBM/script/ihs_dc_enable.sh  -c ${HTTPD_CONF_PATH}/httpd.conf
    • For Apache HTTP Server 2.2:
      COPY mod_wrt_2.2.so /opt/IBM/modules/mod_wrt.so
      COPY ihs_dc_enable.sh /opt/IBM/script/ihs_dc_enable.sh
      RUN /opt/IBM/script/ihs_dc_enable.sh  -c ${HTTPD_CONF_PATH}/httpd.conf
    • For Apache HTTP Server 2.4:
      COPY mod_wrt_2.4.so /opt/IBM/modules/mod_wrt.so
      COPY ihs_dc_enable.sh /opt/IBM/script/ihs_dc_enable.sh
      RUN /opt/IBM/script/ihs_dc_enable.sh  -c ${HTTPD_CONF_PATH}/httpd.conf
    • For Oracle HTTP Server 11g:
      COPY mod_wrt_2.2.so /opt/IBM/modules/mod_wrt.so
      COPY ihs_dc_enable.sh /opt/IBM/script/ihs_dc_enable.sh
      RUN /opt/IBM/script/ihs_dc_enable.sh  -c ${HTTPD_CONF_PATH}/httpd.conf
    • For Oracle HTTP Server 12c:
      COPY mod_wrt_2.4.so /opt/IBM/modules/mod_wrt.so
      COPY ihs_dc_enable.sh /opt/IBM/script/ihs_dc_enable.sh
      RUN /opt/IBM/script/ihs_dc_enable.sh  -c ${HTTPD_CONF_PATH}/httpd.conf
    Where ${HTTPD_CONF_PATH} is the httpd.conf file path.
    Note:

    DEM module depends on libstdc++.so.6.0.18 or a higher version. Normally libstdc++.so.6 can be automatically located by ihs_dc_enable.sh during docker build. If the automatic positioning fails, check and install libstdc++.so.6.0.18 or a higher version.

    If the ihs_dc_enable.sh script still fails after libstdc++.so.6 is installed, specify the libstdc++.so.6 file path in the Dockerfile, and then run the docker build again. Example:
    RUN /opt/IBM/script/ihs_dc_enable.sh -c ${HTTPD_CONF_PATH}/httpd.conf -l /usr/lib/x86_64-linux-gnu/libstdc++.so.6
  5. Create a ConfigMap file (env-config.yaml) like the following:
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: env-config
    data:
      IBM_APM_DEM_AGENT_ENDPOINT: "uadem.${UA_NAMESPACE}.svc.cluster.local:15001"
      IBM_APM_DEM_ENABLED: "true"
    Where ${UA_NAMESPACE} is the namespace where the Unified Agent is installed.
  6. Create the Kubernetes ConfigMap resource by using the following command:
    kubectl apply -f env-config.yaml
  7. Add the following lines to the deployment yaml file.
    - volumeMounts:
      - mountPath: /etc/config
        name: config-volume
    ...
    volumes:
    - configMap:
        defaultMode: 420
        name: env-config
        name: config-volume
    For example,
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      annotations:
        deployment.kubernetes.io/revision: "2"
      creationTimestamp: 2018-05-05T13:00:27Z
      generation: 1
      labels:
        app: ihs-app-selector
      name: ihs-app-deployment
      namespace: test
    
      
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: ihs-app-selector
      strategy:
        rollingUpdate:
          maxSurge: 1
          maxUnavailable: 0
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: ihs-app-selector
        spec:
          securityContext:
            runAsNonRoot: true
            runAsUser: 1000
            fsGroup: 1000
          containers:
          - volumeMounts:
            - mountPath: /etc/config
              name: config-volume
            image: mycluster.icp:8500/test/ihs:svt
            imagePullPolicy: Always
            name: ihs-app
            resources: {}
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
          volumes:
          - configMap:
              defaultMode: 420
              name: env-config
            name: config-volume
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          securityContext: {}
          terminationGracePeriodSeconds: 30

What to do next

Launch a web request, and then do the following steps to verify whether DEM is successfully enabled on HTTP server:
  1. In the Cloud App Management console, click the Resources tab.
  2. Find Kubernetes Service from the All resource types list and click to open it.
  3. Browse the Resource list, click the resource name that you have enabled HTTP Server monitoring, and open the resource dashboard.
  4. Metrics are displayed in Golden Signal.golden signal for IHS
  5. Click to drill down browser to check whether you can get detailed browser data.browser dashboard for IHS
    Known limitation: If multiple services are connected to the Browser in topology, no browser data can be displayed.
    browser with multiple services in the topology