Skip to content

Commit

Permalink
collect waagent logs from Linux and Windows nodes.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jiaxun Song committed Jul 1, 2021
1 parent 906ec43 commit 1fef847
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 2 deletions.
3 changes: 2 additions & 1 deletion diagnosis/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ This script automates the process of gathering the following logs:
- Log file `/var/log/azure/deploy-script-dvm.log` (if deployed using Azure Stack's Kubernetes Cluster marketplace item)
- Static manifests in directory `/etc/kubernetes/manifests`
- Static addons in directory `/etc/kubernetes/addons`
- Waagent logs
- kube-system containers metadata and logs
- kubelet status and journal
- etcd status and journal
Expand Down Expand Up @@ -62,7 +63,7 @@ az account set --subscription <Subscription ID>
# download the scripts.
mkdir -p $HOME/kuberneteslogs
cd $HOME/kuberneteslogs
curl -L https://github.com/msazurestackworkloads/azurestack-gallery/releases/download/diagnosis-v1.0.0/diagnosis-v1.0.0.tar.gz -o diagnosis.tar.gz
curl -L https://github.com/msazurestackworkloads/azurestack-gallery/releases/download/diagnosis-v1.1.0/diagnosis-v1.1.0.tar.gz -o diagnosis.tar.gz
tar xvf diagnosis.tar.gz

# use the script to collect logs
Expand Down
10 changes: 10 additions & 0 deletions diagnosis/azs-collect-windows-logs.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,16 @@ else {
Write-Host "Containerd hyperv logs not avalaible"
}

Write-Host "Collecting waagent logs"
Invoke-Expression ((get-childitem -Path c:\windowsazure -Filter CollectGuestLogs.exe -Recurse | Sort-Object LastAccessTime -desc | Select-Object -first 1).FullName + " -FileName:$($ENV:TEMP)\waagent\")
$collectGuestLogsOutput = "$($ENV:HOME)\AutoLogs_ProcessModules.xml"
if (Test-Path $collectGuestLogsOutput) {
$paths += $collectGuestLogsOutput
}
Get-ChildItem "$($ENV:TEMP)\waagent" | Foreach-Object {
$paths += $_.FullName
}

Write-Host "Compressing all logs to $zipName"
$paths | Format-Table FullName, Length -AutoSize
Compress-Archive -LiteralPath $paths -DestinationPath $zipName
Expand Down
2 changes: 2 additions & 0 deletions diagnosis/collectlogs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,8 @@ if [ -d /var/log/kubeaudit ]; then
fi

sudo cp /var/log/waagent.log ${LOGDIRECTORY}/var/log/k8s-waagent.log || :
mkdir -p ${LOGDIRECTORY}/var/lib
cd /var/lib && sudo zip -q -r ${LOGDIRECTORY}/var/lib/waagent.zip waagent || :

if [ -f /var/log/azure/deploy-script-dvm.log ]
then
Expand Down
12 changes: 12 additions & 0 deletions diagnosis/getkuberneteslogs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,12 @@ uploadLogs()
processHost()
{
host=$1
echo "[$(date +%Y%m%d%H%M%S)][INFO] Checking connectivity to host ${host}"
ssh ${SSH_FLAGS} -o ProxyCommand="${PROXY_CMD}" ${USER}@${host} "exit"
if [ $? -ne 0 ]; then
echo "[$(date +%Y%m%d%H%M%S)][ERR] Error connecting to host ${host}"
return
fi

hostName=$(ssh ${SSH_FLAGS} -o ProxyCommand="${PROXY_CMD}" ${USER}@${host} "hostname")
hostName=$(echo ${hostName} | sed 's/[[:space:]]*$//')
Expand Down Expand Up @@ -138,6 +144,12 @@ processDvmHost()
processWindowsHost()
{
host=$1
echo "[$(date +%Y%m%d%H%M%S)][INFO] Checking connectivity to host ${host}"
ssh ${SSH_FLAGS} -o ProxyCommand="${PROXY_CMD}" ${USER}@${host} "exit"
if [ $? -ne 0 ]; then
echo "[$(date +%Y%m%d%H%M%S)][ERR] Error connecting to host ${host}"
return
fi

# It has to store the hostname in a file first to avoid whitespace from Windows cmd output.
ssh ${SSH_FLAGS} -o ProxyCommand="${PROXY_CMD}" ${USER}@${host} 'powershell; $env:COMPUTERNAME > %HOMEPATH%\hostname.txt'
Expand Down
2 changes: 1 addition & 1 deletion diagnosis/hosts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ LOGDIRECTORY=${TMP}/${WD}
mkdir -p ${LOGDIRECTORY}

test $# -gt 0 && NAMESPACES=$@
test -z "${NAMESPACES}" && echo "[$(date +%Y%m%d%H%M%S)][INFO][$HOSTNAME] CCollecting cluster snapshot from all namespaces"
test -z "${NAMESPACES}" && echo "[$(date +%Y%m%d%H%M%S)][INFO][$HOSTNAME] Collecting cluster snapshot from all namespaces"
test -n "${NAMESPACES}" && NAMESPACES="kube-system${NAMESPACES}" && echo "[$(date +%Y%m%d%H%M%S)][INFO][$HOSTNAME] Collecting cluster snapshot from namespaces: $NAMESPACES"

if [ -z "${NAMESPACES}" ];
Expand Down

0 comments on commit 1fef847

Please sign in to comment.