ハイブリッド展開オプションでは、Splunk AppDynamics On-Premises Virtual ApplianceSplunk AppDynamics On-Premises の現在のコントローラ、イベントサービス、およびエンドユーザーモニタリングコンポーネントを活用し、 異常検知と Cisco Secure Application サービスを Kubernetes クラスタにインストールします。

Splunk AppDynamics Services のインストールの準備

次の手順を実行して、環境を準備します。

  1. appduser ログイン情報を使用していずれかのノードコンソールにログインします。
    このノードは、3 ノードクラスタを作成した後、プライマリノードと見なされます。
  2. 次のフォルダに移動します。

    cd /var/appd/config
    CODE
  3. 必要な設定で globals.yaml.gotmpl ファイルを編集します。

    vi globals.yaml.gotmpl
    CODE
    1. コントローラキーとアカウント名を指定します。
    2. ハイブリッドモードを有効にします。
    3. コントローラのドメイン名を設定します。
    4. スタンドアロンコントローラにアクセスするようにポートを設定します。
    5. sslEnabled フィールドを true に設定します。
    6. スタンドアロンコントローラのコントローラ CA 証明書をアップロードします。
    7. MySQL ホストを設定します。これはコントローラのドメインと同じホストです。
    8. スタンドアロン コントローラ データベースのポートを設定します。
    9. (オプション)MySQL CA 証明書を更新します。
    10. (オプション)Kafka の CA 証明書を更新します。
      # License details
      license:
        controllerKey: &controllerKey  6946ecaa-8072-4825-ae9d-c68ba992f4bf
       
      # Controller details
      controller:
        tenantAccountName: &account customer1
      
      # Hybrid mode
      # domainName and dbHost/ dbPort is for standalone controller
      hybrid:
        enable: true
        controller:
          domainName: controller.nip.io
          port: 8181
          sslEnabled: true
      {{ if isFile "/var/appd/config/hybrid-controller-ca.crt" }}
          controllerCaCertsFile: {{ readFile "/var/appd/config/hybrid-controller-ca.crt" | b64enc | quote }}
      {{ end }}
        mysql:
          dbHost: controller.nip.io
          dbPort: 3388
      {{ if isFile "/var/appd/config/hybrid-mysql-ca.crt" }}
          mysqlCaCertsFile: {{ readFile "/var/appd/config/hybrid-mysql-ca.crt" | b64enc | quote }}
      {{ end }}
      
      kafka:
          kafkaHost0: <node1_ip>
          kafkaPort0: 32101
          kafkaHost1: <node2_ip>
          kafkaPort1: 32102
          kafkaHost2: <node3_ip>
          kafkaPort2: 32103
          defaultCert: true
      {{ if isFile "/var/appd/config/hybrid-kafka.key" }}
          keyFile: {{ readFile "/var/appd/config/hybrid-kafka.key" | b64enc | quote }}
      {{ end }}
      {{ if isFile "/var/appd/config/hybrid-kafka.crt" }}
          certFile: {{ readFile "/var/appd/config/hybrid-kafka.crt" | b64enc | quote }}
      {{ end }}
      YML
    11. (オプション)入力コントローラの CA 証明書を更新します。
      By default, the Ingress controller installs the self-signed certificates.
      CODE
      Kubernetes クラスタには、入力コントローラの CA 証明書が必要です。「globals.yaml.gotmpl ファイルの編集」を参照してください。
      ingress:
        defaultCert: true
      {{ if isFile "server.key" }}
        keyFile: {{ readFile "server.key" | b64enc | quote }}
      {{ end }}
      {{ if isFile "server.crt" }}
        certFile: {{ readFile "server.crt" | b64enc | quote }}
      {{ end }}
      CODE
  4. secret.yaml ファイルを編集して、以下を更新します。

    vi secrets.yaml
    CODE
    1. コントローラと MySQL のログイン情報を更新します。

       hybrid: 
        controller:
          rootPassword: welcome
          adminUsername: admin
          adminPassword: welcome
         mysql:
          dbUser: dbuser
          dbPassword: changeit
      YML
    2. Splunk AppDynamics Services のユーザー名とパスワードを編集します。

      Splunk AppDynamics サービスをインストールすると、secrets.yaml ファイルが暗号化されます。


      secrets.yaml.encrypted ファイルの編集」を参照してください。
  5. スタンドアロンコントローラが Kubernetes クラスタの Kafka ポートにアクセスできるように、ファイアウォールルールを更新します。各クラスタノードのファイアウォールルールを更新します。

    sudo ufw allow AppdNodePorts
    CODE

3 ノードクラスタの作成

  1. プライマリノードコンソールにログインします。
  2. 次のフォルダに移動します。

    cd /home/appduser/appd-charts
    CODE
  3. プライマリノードで次のコマンドを実行し、ピアノードの IP アドレスを指定します。

    appdctl cluster init <Node-2-IP> <Node-3-IP>
    CODE
  4. ノードステータスを確認するには、次のコマンドを実行します。

    appdctl show cluster
    microk8s status
    CODE

    出力に、クラスタの一部であるノードの Running ステータスが true として表示されることを確認します。

    Sample Output

     NODE           | ROLE  | RUNNING 
    ----------------+-------+---------
     10.0.0.1:19001 | voter | true    
     10.0.0.2:19001 | voter | true    
     10.0.0.3:19001 | voter | true 
    CODE

    次のエラーが表示された場合は、端末に再ログインする必要があります。

    Insufficient Permissions to Access Microk8s 
    CODE

Splunk AppDynamics On-Premises でのスタンドアロンコントローラの設定

  1. 次のパスを使用して、コントローラデータベースにログインします。
    <controller-home>/bin/controller.sh login-db
    CODE
  2. MySQL データベースに接続します。
  3. Cisco Secure Application サービスの secapp ユーザーをドロップして作成し、コントローラデータベースにアクセスする権限を付与します。

    DROP USER secapp
    CREATE USER 'secapp'@'%' identified by 'changeit' REQUIRE SSL;
    GRANT USAGE ON *.* TO secapp@%`
    GRANT SELECT  ON `controller`.* TO `secapp`@`%`; 
    CODE
  4. これらの認証設定を ~/appdynamics/platform/product/controller/appserver/jetty/start.d/start.ini
    に追加します。<DNS_DOMAIN> dnsDomain in /var/appd/config/globals.yaml.gotmpl として設定した値に置き換えます。

    -Dappdynamics.auth.service.hosted.zone=-tnt-authn.<DNS_DOMAIN>
    -Dappdynamics.auth.service.port=443
    -Dappdynamics.auth.service.ssl.access.enabled=true
    -Dappdynamics.auth.service.token.generation.enabled=true
    -Dappdynamics.controller.authentication.resource.accessible=true
    -Dappdynamics.auth.client.token.validation.enabled=true   
    CODE

クラスタへのサービスのインストール

  1. クラスタノードコンソールにログインします。
  2. コマンドを実行して、サービスをインストールします。

    appdcli start appd small
    CODE
    appdcli start appd medium
    CODE



    このコマンドは、Splunk AppDynamics サービスをインストールします。仮想マシンを作成するために選択したプロファイルと同じ VA プロファイルを指定することをお勧めします。「仮想アプライアンスのサイジング」を参照してください。

    Sample Output

    NAME               CHART                     VERSION   DURATION
    cert-manager-ext   charts/cert-manager-ext   0.0.1           0s
    ingress-nginx      charts/ingress-nginx      4.8.3           1s
    redis-ext          charts/redis-ext          0.0.1           1s
    ingress            charts/ingress            0.0.1           2s
    cluster            charts/cluster            0.0.1           2s
    reflector          charts/reflector          7.1.216         2s
    monitoring-ext     charts/monitoring-ext     0.0.1           2s
    minio-ext          charts/minio-ext          0.0.1           2s
    eum                charts/eum                0.0.1           2s
    fluent-bit         charts/fluent-bit         0.39.0          2s
    postgres           charts/postgres           0.0.1           2s
    mysql              charts/mysql              0.0.1           3s
    redis              charts/redis              18.1.6          3s
    controller         charts/controller         0.0.1           3s
    events             charts/events             0.0.1           4s
    cluster-agent      charts/cluster-agent      1.16.37         4s
    kafka              charts/kafka              0.0.1           6s
    minio              charts/minio              5.0.14         47s
    CODE
  3. インストールされたポッドとサービスエンドポイントのステータスを確認します。
    • Podskubectl get pods --all-namespaces
  • 仮想マシンが再起動すると、MySQL サービスが自動的に復元されない場合があります。この問題をトラブルシューティングするには、「Restore the MySQL Service」を参照してください。
  • EUM コレクタ、EUM アグリゲータ、および EUM スクリーンショットポッドが複数回再試行しても失敗する場合は、「EUM Health is Failing After Multiple Retries」を参照してください。

ハイブリッド設定ファイルの生成

  1. スクリプトを実行して、Kafka ノードポートをスタンドアロンコントローラに接続します。

    appduser@appd-demo-2:~/appd-charts/utils$ bash prepare-hybrid.sh
    CODE

    Sample Output

    Writing Kafka CA Cert
    Writing Schema registry CA Cert
    Writing AnomalyDetectionKafkaSSLProducer
    Writing AnomalyDetectionKafkaConsumerSSL
    Writing configure script
    Creating archive of hybrid config
    hybrid-config/
    hybrid-config/kafka-ca.crt
    hybrid-config/AnomalyDetectionKafkaConsumerSSL
    hybrid-config/configure.sh
    hybrid-config/schema-registry-ca.crt
    hybrid-config/AnomalyDetectionKafkaSSLProducer
    Completed
    CODE

    このスクリプトは、必要な設定ファイルを含む hybrid-config.tar ファイルを生成します。

  2. hybrid-config.tar ファイルをスタンドアロン コントローラ インスタンスにコピーします。
  3. hybrid-config.tar ファイルの内容を見つけて抽出します。

Kubernetes クラスタ CLI を使用したコントローラプロパティの設定

  1. Kubernetes クラスタにログインします。
  2. コマンドを実行して、スタンドアロンコントローラのプロパティを更新します。

    appdcli run bootstrap_hybrid
    CODE

    このコマンドは、コントローラで次のプロパティを設定します。

    Key: anomaly.detection.enabled, Value: true
    Key: anomaly.detection.deployed.onprem, Value: true
    Key: controller.id, Value: onprem
    Key: controller.unique.id, Value: onprem
    Key: anomaly.detection.kafka.consumer.group.id, Value: pi-alarmservice-transition-consumer-group-onprem
    Key: anomaly.detection.kafka.consumer.topic, Value: pi-alarmservice-transition-onprem
    Key: anomaly.detection.kafka.producer.topic, Value: metadata-lifecycle-events
    Key: anomaly.detection.onprem.output.topic, Value: blitz-processed-metrics
    Key: anomaly.detection.schema.registry.enabled, Value: true
    Key: anomaly.detection.consumer.schema.registry.url, Value: https://https://10.0.0.1.nip.io/schemaregistry
    Key: anomaly.detection.producer.schema.registry.url, Value: https://https://10.0.0.2.nip.io/schemaregistry
    Key: anomaly.detection.kafka.consumer.bootstrap.servers, Value: 10.0.0.1:32101
    Key: anomaly.detection.kafka.producer.bootstrap.servers, Value: 10.0.0.2:32102
    Key: anomaly.detection.kafka.producer.ssl.enabled, Value: true
    Key: anomaly.detection.kafka.consumer.ssl.enabled, Value: true
    Key: anomaly.detection.service.url, Value: https://10.0.0.1.nip.io/pi
    CODE

    または、Kubernetes クラスタの IP アドレスを使用して管理コンソールにアクセスし、各パラメータを手動で編集することもできます。

  3. configure.sh スクリプトを実行して、Kubernetes クラスタに接続するための証明書とシークレットを使用してコントローラをプロビジョニングします。
    このスクリプトは、hybrid-config.tar ファイルから抽出されます。「how to obtain hybrid-config.tar file」を参照してください。

    $ bash configure.sh
    Usage: configure.sh <controller-home> <keystore-passwd>
    Using controller home as /opt/appdynamics and keystore password as changeit
    Do you want to proceed? (y/n): y
    Creating Kafka truststore
    Certificate was added to keystore
    Creating schema registry truststore
    Certificate was added to keystore
    Writing obfuscated producer config
    Writing obfuscated consumer config
    Completed
    CODE
  4. 次のコマンドを使用してコントローラを再起動します。
    cd ~/appdynamics/platform/product/controller/bin/
    ./controller.sh stop
    ./controller.sh start  
    CODE

クラスタへの異常検知サービスのインストール

  1. クラスタノードコンソールにログインします。
  2. コマンドを実行して、サービスをインストールします。

    appdcli start aiops small
    CODE
    appdcli start aiops medium
    CODE


  3. インストールされたポッドとサービスエンドポイントのステータスを確認します。
    • Pods:kubectl get pods --all-namespaces

    • Service endpoints:appdcli ping

異常検知」を参照してください。

コントローラ UI で異常検知にアクセスすると、IOException エラーが発生することがあります。「仮想アプライアンスの問題のトラブルシュート」を参照してください。

Cisco Secure Application サービスの有効化

Cisco Secure Application サービスを有効にするには、管理コンソールで次の手順を実行します。

  1. 管理コンソールにログインします。
    https://<controller-hostname>/controller/admin.jsp
    CODE
  2. アカウントを編集してプロパティを追加します。
    argento.enabled = true 
    CODE
  3. 管理コンソールをログアウトしてから、コントローラにログインします。
    https://<controller-hostname>/controller/
    CODE
  4. 次の権限を持つロールを作成します。
    • Cisco Secure Application の表示
    • Cisco Secure Application の設定
  5. 管理ユーザーロールを割り当てます。

Cisco Secure Application サービスのインストールとセットアップ

  1. ドメインネームシステム(DNS)が設定されていることを確認します。「ドメインネームシステムの設定」を参照してください。 
  2. 仮想アプライアンス入力証明書の作成の要件を確認します。 

  3. クラスタノードコンソールにログインします。
  4. コマンドを実行して、Cisco Secure Application サービスをインストールします。
    appdcli start secapp small
    CODE
    appdcli start secapp medium
    CODE
  5. 次のコマンドを使用して、インストールされたポッドのステータスを確認します。
    kubectl get pods -n cisco-secureapp 
    CODE

Cisco Secure Application のインストールおよび設定

Cisco Secure Application の参考資料

Cisco Secure Application を設定するには、次の手順を実行します。


ステップ参考資料
1

.NET および Java エージェントの場合は、ノードプロパティを追加する必要があります。

enable-secapp-service
CODE

Java エージェントの場合、バージョン 24.4.1 以降である必要があります。.NET エージェントの場合、バージョン 24.4.0.1 以降である必要があります。 

2

エージェントで使用する SSL 証明書を抽出します。

  1. クラスタノードにログインし、次のコマンドを実行します。

    kubectl get secret ingress-cert-secret -n ingress-master -o jsonpath="{.data.tls\.crt}" | base64 --decode > certificate.crt
    CODE
    1. クラスタがデフォルト以外の自己署名証明書を使用している場合は、既存の証明書をグローバル設定の場所にコピーします。
    2. defaultCertfalse の場合は、次のコマンドを実行します。
      kubectl get secret custom-ingress-secret -n ingress-master -o jsonpath="{.data.tls\.crt}" | base64 --decode > certificate.crt
      CODE
      globals.yaml.gotmpl ファイルを参照してください。 
  2. エージェントで使用するためにこの証明書をコピーします。
3

Splunk AppDynamics 管理コンソールを使用してロールを割り当てます。

  1. Cisco Secure Application ダッシュボードの設定可能なフィールドを変更する必要があるユーザーに、[Configure Cisco Secure Application] アカウント権限を割り当てます。
  2. ダッシュボードのモニターのみが必要なユーザーに [View Cisco Secure Application] アカウント権限を割り当てます。
4

上部のナビゲーションバーで [Security] タブをクリックします。

アカウントを使用して必要な Splunk AppDynamics アプリケーション ダッシュボードを起動し、上部ペインの [Security] をクリックします。

これにより、Cisco Secure Application ダッシュボードにリダイレクトされます。

5

Cisco Secure Application ダッシュボードから [Applications] ページに移動し、ターゲットアプリケーションの [Security Setting] [Enabled] として設定します。

[Security Setting] 値は、[Disabled] の設定不可能なテナント設定を継承するすべてのアプリケーションにおいてデフォルトで [Inherit] に設定されます。アプリケーションのセキュリティを有効にするには、[Security Setting] を [Enabled] に設定する必要があります。

6

[Applications] ページから、アプリケーションノードが登録され、アクティブであることを確認します。

[Applications] ページで、特定のアプリケーションの [Active Nodes] および [Registered Nodes] フィールドを確認します。アプリケーションノードがアクティブであることを確認します。ノードがアクティブでない場合、アプリケーションのセキュリティデータはダッシュボードに表示されません。

7

[Libraries] ページから、セキュリティで保護されたアプリケーションのリスクでソートされたライブラリを表示します。

[Libraries] ページには、選択したアプリケーションスコープに基づいて、アプリケーションのすべての既存のライブラリが表示されます。リスクスコアを使用して、修復タスクに優先順位を付けることができます。

詳細については、「Getting Started with Cisco Secure Application」を参照してください。

Splunk AppDynamics エージェントのダウンロード

Splunk AppDynamics On-Premises Virtual Appliance は、Splunk AppDynamics エージェントのインストールをサポートしています。ダウンロードポータルからエージェントをダウンロードします。

詳細については、以下を参照してください。