啟用使用者鑑別問題除錯
啟用 platform-auth-service Liberty 除錯,以取得追蹤日誌來進行使用者鑑別問題除錯。
如果要使用 oc 用戶端來啟用除錯,請執行下列動作:
執行下列指令,以更新配置對映。 然後,更新配置對映並儲存。
oc edit cm platform-auth-idp -n ibm-common-servicesLIBERTY_DEBUG_ENABLED: "false" << true LOG_LEVEL_AUTHSVC: info <<debug LOG_LEVEL_IDMGMT: info <<debug LOG_LEVEL_IDPROVIDER: info <<debug透過刪除 Pod 來重新啟動
auth-idpPod。oc delete pod -l k8s-app=auth-idp -n namespace-common-services等待 Pod 全部 4 個儲存器啟動。
oc get pods -l k8s-app=auth-idp -n namespace-common-services
啟用 auth-idp Pod 儲存器的除錯日誌的步驟
以具有叢集管理者存取權的使用者身分登入 OpenShift Container Platform 主控台。
從導覽功能表中,按一下 配置 > ConfigMaps。
搜尋
platform-auth-idp。按一下 ... > 編輯。
將
LOG_LEVEL_IDPROVIDER、LOG_LEVEL_AUTHSVC、LOG_LEVEL_IDMGMT參數值變更為debug。LIBERTY_DEBUG_ENABLED: "false" << true LOG_LEVEL_AUTHSVC: info <<debug LOG_LEVEL_IDMGMT: info <<debug LOG_LEVEL_IDPROVIDER: info <<debug按一下提交。
從導覽功能表中,按一下 工作量> Pod。
找出
auth-idp並刪除它。按一下 ... > 動作 > 刪除 Pod。
等一下 然後,在 Pod 窗格中檢查
auth-idpPod 的狀態。 所有 Pod 的狀態必須在 備妥 欄位名稱下顯示為4/4。重建問題。 共用所有
auth-idpPod 日誌。 下列日誌可協助收集多個auth-idpPod 的容器日誌及 liberty 日誌,以收集 liberty 日誌。
cat MG-IDP-log.sh
#!/bin/bash
export NAMESPACE=ibm-common-services
export AUTHMGDIR=AuthidpLogs-$(date '+%y%b%dT%H-%M-%S')
mkdir -p $AUTHMGDIR
for pod in $(oc -n $NAMESPACE get pods -l component=auth-idp --no-headers -o custom-columns=name:.metadata.name); do
echo "===== $pod ====="
LIBDIR="$AUTHMGDIR/$pod/liberty"
sudo mkdir -p $LIBDIR
# Collect the liberty logs
echo "===== $pod collect liberty logs ====="
oc -n $NAMESPACE cp $pod:/logs -c platform-auth-service $LIBDIR/logs
echo "===== $pod collect liberty configuration ====="
oc -n $NAMESPACE cp $pod:/opt/ibm/wlp/usr/servers/defaultServer/ -c platform-auth-service $LIBDIR/defaultserver
#collect the idp container logs
echo "===== $pod collect container logs ====="
oc get pods -l component=auth-idp -n $NAMESPACE -o go-template='{{range $i := .items}}{{range $c := $i.spec.containers}}{{println $i.metadata.name $c.name}}{{end}}{{end}}' > $AUTHMGDIR/$pod/container-list.txt
awk '{print "oc -n $NAMESPACE logs "$1" -c "$2" -p > $AUTHMGDIR/$pod/"$1"_"$2"_previous.log && echo gathered previous logs of "$1"_"$2}' $AUTHMGDIR/$pod/container-list.txt | bash
awk '{print "oc -n $NAMESPACE logs "$1" -c "$2" > $AUTHMGDIR/$pod/"$1"_"$2".log && echo gathered logs of "$1"_"$2}' $AUTHMGDIR/$pod/container-list.txt | bash
done
echo;echo
echo "===== tar czf $AUTHMGDIR.tgz $AUTHMGDIR and send the file for analysis ----"
echo;echo
附註:
- 請務必將 NAMESPACE 變更為部署基礎服務的位置。
- 在重建及收集日誌之後停用除錯日誌,以避免過多日誌收集及檔案的 I/O。
取得 Openshift 環境的日誌
使用 Openshift Container 用戶端登入叢集。 如需相關資訊,請參閱 從指令行介面登入叢集。
切換至已安裝基礎服務的專案。 在下列指令中,將
<namespace>取代為用於專案的名稱空間:oc project <namespace>
取得
auth-idpPod 名稱。oc get po | grep auth-idp
附註: 如果有多個 Pod 在執行中,請在指令中記下 Pod 名稱以使用這些 Pod。
逐一取得現行目錄的 Liberty 日誌。 在下列指令中,將
<podname>取代為 Pod 名稱:oc rsync <podname>:/logs -c platform-auth-service
直接從 Docker 儲存器取得日誌
附註: 它偏好用於 IBM Cloud Private (ICP) 環境。
請遵循下列步驟來取得配置和追蹤日誌:
使用 OpenShift Container Platform 主控台或 cloudctl (如果已安裝) 數次來登入產品叢集,以產生日誌。
使用 Secure Shell (SSH) 登入主要節點。
取得
platform-auth儲存器 ID。docker ps | grep platform-auth將配置和日誌複製到主要節點上的資料夾。
docker cp <container-id>:/config/configDropins/defaults auth-service_config docker cp <container-id>:/logs auth-service_logs如果叢集中有多個主要節點,請針對所有其他主要節點重複步驟 2 到步驟 4。
從所有節點取得配置 (
auth-service_config) 和日誌 (auth-service_logs) 資料夾。