キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
722
閲覧回数
5
いいね!
0
コメント
mnagao
Cisco Employee
Cisco Employee
このドキュメントでは AI Analytics 有効化時の Issue Settings の自動設定変更 (Enabled status のトグル) を例に Cisco DNA Center での実装確認例をご紹介します。ブラウザの開発者ツールを用いて API トレースを取得し、Kong の API route から Kubernetes Pod を特定してログを確認するという典型的な流れで様々な機能の実装を確認することができます。
 
 
AI アイコンの付いている Wireless clients took a long time to connect - Total time above baseline という Display Name の issue に着目します。この issue の初期状態 (AI Analytics 有効化前) は Enabled ですが、
 
AI-ML-Analytics_2021-06-17-19-27-42.png
AI Analytics を有効化すると Disabled に自動的に変更されます。トグルスイッチにマウスオーバーすると Cloud Agent is running. Enable/Disable is not allowed. というツールチップが表示されて設定変更ができません。(ブラウザやマウスオーバーの仕方によってはツールチップがうまく表示されない場合があります)
AI-ML-Analytics_2021-06-17-19-29-45.png
 
 
設定自動変更の前後の差分は AI Analytics の有効化ですので、関連する Pod を特定するためにブラウザの開発者ツールで適当な Assurance > TREND AND INSITES ページを開く際のトレースを確認すると /api/kairos/v1/proxy API に対して GraphQL を実行していることが分かります。
AI-ML-Analytics_2021-07-27-18-03-41.png
 
この API について Cisco DNA Center で使用している API Gateway である Kong に登録されている Upstream URL を確認すると、namespace = ai-network-analytics の kairos-agent という Pod であることが分かります。
$ magctl api routes

    {
      "http_if_terminated": false, 
      "retries": 0, 
      "name": "ai-network-analytics_kairos-agent__api_kairos_v1_proxy", 
      "https_only": false, 
      "upstream_url": "http://kairos-agent.ai-network-analytics.svc.cluster.local:8088", 
      "strip_uri": true, 
      "created_at": 1626854932905, 
      "uris": [
        "/api/kairos/v1/proxy"
      ], 
      "preserve_host": false, 
      "upstream_send_timeout": 60000, 
      "upstream_read_timeout": 60000, 
      "upstream_connect_timeout": 60000, 
      "id": "b019af9d-7e3c-4851-8688-71a2f9e97929"
    }, 

$ kubectl get pods -n ai-network-analytics 
NAME                            READY   STATUS    RESTARTS   AGE
kairos-agent-6d7f9dbccb-jqk8r   1/1     Running   0          6d1h
 
AI Analytics 有効化時の kairos-agent Pod のログを確認すると AI Analytics Cloud の API サーバへの登録を行った後で複数の issue の設定が自動的に変更されていることが分かります (enabling/disabling issue..)
$ kubectl logs -n ai-network-analytics kairos-agent-6d7f9dbccb-jqk8r
{"component":"configserver","endpoint":"https://api.euc1.prd.kairos.ciscolabs.com/ca/v1/ping","level":"info","msg":"cloud is reachable","object":"Server","package":"config.server","time":"2021-06-17T08:16:44.977Z"}
{"component":"configserver","endpoint":"https://api.euc1.prd.kairos.ciscolabs.com/ca/v1/ping","level":"info","msg":"cloud is reachable","object":"Server","package":"config.server","time":"2021-06-17T08:16:45.719Z"}
{"Content-Length":["156"],"Content-Type":["application/json; charset=utf-8"],"Date":["Sat, 12 Jun 2021 13:55:40 GMT"],"Server":["Python/3.5 aiohttp/2.2.5"],"component":"configserver","level":"info","method":"GET","msg":"read","name":"config-tnt0","namespace":"ai-network-analytics","object":"MaglevCredBackend","package":"store","status":"404 Not Found","time":"2021-06-17T08:17:12.815Z","url":"https://credentialmanager.maglev-system.svc.cluster.local:443/api/v1/credentialmanager/k8s-secret/name/config-tnt0/namespace/ai-network-analytics"}
{"component":"configserver","level":"info","msg":"getting proxy from system","object":"Server","package":"config.server","time":"2021-06-17T08:17:12.815Z"}
{"component":"configserver","endpoint":"https://api.use1.prd.kairos.ciscolabs.com/ca/v1/ping","level":"info","msg":"cloud is reachable","object":"Server","package":"config.server","time":"2021-06-17T08:17:14.547Z"}
{"component":"agent","level":"warning","msg":"waiting for API proxy to be configured","package":"main","time":"2021-06-17T08:17:26.300Z"}
{"component":"agent","level":"warning","msg":"waiting for API proxy to be configured","package":"main","time":"2021-06-17T08:18:35.263Z"}
{"component":"configserver","level":"info","msg":"received setup data","object":"Server","package":"config.api.setup","time":"2021-06-17T08:18:36.704Z"}
{"component":"configserver","level":"info","msg":"setup data passed the validation","object":"Server","package":"config.api.setup","time":"2021-06-17T08:18:36.704Z"}
{"component":"configserver","level":"info","msg":"getting proxy from system","object":"Server","package":"config.api.setup","time":"2021-06-17T08:18:36.704Z"}
{"component":"configserver","level":"info","msg":"using http proxy from system settings 'http://proxy.xxxxxx.cisco.com:8080'","object":"Server","package":"config.api.setup","time":"2021-06-17T08:18:36.717Z"}
{"component":"configserver","level":"info","msg":"cloud location 'us-east-1' received, signer URL will be updated","object":"Server","package":"config.api.setup","time":"2021-06-17T08:18:36.717Z"}
{"component":"configserver","level":"info","msg":"signer URL updated to 'https://api.use1.prd.kairos.ciscolabs.com'","object":"Server","package":"config.api.setup","time":"2021-06-17T08:18:36.717Z"}
{"component":"configserver","level":"info","msg":"generated random anonymization key","object":"Server","package":"config.api.setup","time":"2021-06-17T08:18:36.717Z"}
{"Content-Length":["161"],"Content-Type":["application/json; charset=utf-8"],"Date":["Sat, 12 Jun 2021 13:56:30 GMT"],"Server":["Python/3.5 aiohttp/2.2.5"],"component":"configserver","level":"info","method":"GET","msg":"read","name":"issuepoller-tnt0","namespace":"ai-network-analytics","object":"MaglevCredBackend","package":"store","status":"404 Not Found","time":"2021-06-17T08:18:36.725Z","url":"https://credentialmanager.maglev-system.svc.cluster.local:443/api/v1/credentialmanager/k8s-secret/name/issuepoller-tnt0/namespace/ai-network-analytics"}
{"component":"configserver","level":"info","msg":"POST request on '/api/ndp/v1/data/store/app/assurance_issue_triggers/query' succeeded (response len 211)","object":"SetCursorFromDocStoreIfMissing","package":"docstore","time":"2021-06-17T08:18:36.736Z"}
{"component":"configserver","level":"info","msg":"no Kairos issues found on NDP, not setting the cursor","object":"SetCursorFromDocStoreIfMissing","package":"docstore","time":"2021-06-17T08:18:36.736Z"}
{"component":"configserver","level":"info","msg":"querying 'http://nsa-webapp.assurance-backend.svc.cluster.local:8054/api/assurance/v1/threshold/issues?role=All' to get trigger states","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.737Z"}
{"component":"configserver","level":"info","msg":"GET request on 'http://nsa-webapp.assurance-backend.svc.cluster.local:8054/api/assurance/v1/threshold/issues?role=All' succeedeed (response len 86945)","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.788Z"}
{"component":"configserver","level":"info","msg":"we will toggle '26' issues out of '27' we have in our issues list","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.790Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_assoc_time_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.790Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_aaa_time_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.790Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_onboarding_time_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.790Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_dhcp_fail_server_timeout_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.790Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_excess_auth_aaa_fail_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.790Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_auth_fail_aaa_timeout_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.180Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_onboarding_failure_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.212Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_dhcp_fail_client_timeout_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.226Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_auth_fail_aaa_rej_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.258Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_excess_auth_wlc_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.259Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_auth_fail_pmk_notfound_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.367Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'client_global_onboarding_time_issue_by_site_baseline_ml'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.367Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_aaa_failure_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.483Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_dhcp_time_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.483Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_auth_fail_wlc_error_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.582Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_assoc_failure_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.583Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_dhcp_fail_dhcp_timeout_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.639Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_auth_fail_client_timeout_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.805Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_auth_fail_sec_param_mismatch_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.806Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_dhcp_failure_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.844Z"}
{"component":"configserver","level":"info","msg":"disabling issue 'global_wireless_client_exclude_ip_theft_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.852Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_radio_social_app_throughput_drop_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.901Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_radio_cloud_app_throughput_drop_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.966Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_radio_media_app_throughput_drop_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.967Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_radio_collaboration_app_throughput_drop_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:38.030Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_radio_throughput_drop_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:38.047Z"}
 
 
これらの issue name と displayName の mapping は Issue Settings ページをロードした際の API トレースを取れば確認できます。
  • Issue Settings ページをロードする際に API trace を取得します。
AI-ML-Analytics_2021-07-27-17-17-13.png
  • API トレースを確認すると、/api/assurance/v1/threshold/issues API のレスポンスより、Wireless clients took a long time to connect - Total time above baseline issue の issue name は kairos-agent のログで無効化されていることが確認できる client_global_onboarding_time_issue_by_site_baseline_ml であることが分かります。
    また、この On-prem ML issue は displayName および description より onboarding total time がベースラインよりも大きい場合に issue として通知を行なうことも分かります。
 AI-ML-Analytics_2021-07-27-17-16-58.pngAI-ML-Analytics_2021-07-27-17-16-44.png
 
 
このように API トレースとログを組み合わせて確認することで、クラウドベースの AI Analytics を有効化する際に Onboarding のトータル時間に基づく On-prem ML Issue である client_global_onboarding_time_issue_by_site_baseline_ml が無効化されることが分かりますが、代替としてより詳細なフェーズ毎の所要時間についてベースライン学習を行なう様々な issue が有効化されていることや、その displayName の確認を行なうこともできます。
{"component":"configserver","level":"info","msg":"disabling issue 'client_global_onboarding_time_issue_by_site_baseline_ml'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.367Z"}

{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_assoc_time_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.790Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_aaa_time_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.790Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_onboarding_time_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:36.790Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_onboarding_failure_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.212Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_aaa_failure_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.483Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_dhcp_time_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.483Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_assoc_failure_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.583Z"}
{"component":"configserver","level":"info","msg":"enabling issue 'global_wireless_kairos_excessive_dhcp_failure_trigger'","object":"IssueSettingsClient","package":"assurance","time":"2021-06-17T08:18:37.844Z"}
 
AI-ML-Analytics_2021-07-27-19-01-18.png
 
 
Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします