diff --git a/cmd/aks-diagnostic/aks-diagnostic.go b/cmd/aks-diagnostic/aks-diagnostic.go index 74eea2a7..13047a4f 100644 --- a/cmd/aks-diagnostic/aks-diagnostic.go +++ b/cmd/aks-diagnostic/aks-diagnostic.go @@ -8,14 +8,20 @@ import ( ) func main() { + + timeStamp := time.Now().Format("20060102150405") + containerLogs, _ := actions.PollContainerLogs("kube-system") - storage.WriteToBlob("containerlogs", containerLogs) + storage.WriteToBlob("containerlogs-"+timeStamp, containerLogs) systemlogs, _ := actions.PollSystemLogs([]string{"docker", "kubelet"}) - storage.WriteToBlob("systemlogs", systemlogs) + storage.WriteToBlob("systemlogs-"+timeStamp, systemlogs) networkConnectivity, _ := actions.CheckNetworkConnectivity([]string{"google.com:80", "azurecr.io:80", "bad.site:80"}) - storage.WriteToBlob("networkconnectivity", []string{networkConnectivity}) + storage.WriteToBlob("networkconnectivity-"+timeStamp, []string{networkConnectivity}) + + iptables, _ := actions.DumpIPTables() + storage.WriteToBlob("iptables-"+timeStamp, []string{iptables}) time.Sleep(24 * time.Hour) } diff --git a/pkg/actions/iptables.go b/pkg/actions/iptables.go new file mode 100644 index 00000000..34829294 --- /dev/null +++ b/pkg/actions/iptables.go @@ -0,0 +1,32 @@ +package actions + +import ( + "log" + "os" + "path/filepath" + + "github.com/Azure/aks-diagnostic-tool/pkg/utils" +) + +// DumpIPTables check network connectivity +func DumpIPTables() (string, error) { + rootPath := filepath.Join("/aks-diagnostic", utils.GetHostName()) + err := os.MkdirAll(rootPath, os.ModePerm) + if err != nil { + log.Fatal(err) + return "", err + } + + iptablesFile := filepath.Join(rootPath, "iptables") + file, _ := os.Create(iptablesFile) + defer file.Close() + + output, _ := utils.RunCommandOnHost("iptables", "-t", "nat", "-L") + _, err = file.Write([]byte(output)) + + if err != nil { + log.Println("Error while dumping iptables: ", err) + } + + return iptablesFile, nil +}