Comment rechercher dans les journaux d’un hôte ESXi en utilisant PowerCli
Nous avons eu ces derniers jours quelques soucis et nous avons parcouru les logs de nos ESXI. Mon premier réflexe a été de me connecter en ssh et de faire des grep.
Une fois l’incident « Résolu », nous avons voulu scruter de manière automatique les logs de nos Hyperviseurs et la j’ai commencé a parcourir les commandes PowerCli à la recherche d’une solution . Cette solution est la cmdlet Get-log.
Pour connaitre les logs accessibles sur votre Vcenter ou sur un ESXI, il faut utiliser au préalable la commande Get-logtype
Utiliser sans paramètre, cette commande vous listera les journaux accessibles sur votre VCENTER.
Get-LogType
1 2 3 4 5 6 7 8 9 10 |
PS D:\> Get-LogType Key Summary --- ------- vpxd:vpxd-251.log vCenter Server log in 'plain' format vpxd:vpxd-alert-2... vCenter Server log in 'plain' format vpxd:vpxd-profile... vCenter Server log in 'plain' format vpxd-profiler:vpx... vpxd-profiler PS D:\> |
Pour connaitre les logs (Keys) accessible sur un ESXI
Get-LogType -VMHost MonEsxi
1 2 3 4 5 6 7 |
PS D:\> Get-LogType -VMHost MonEsxi* Key Summary --- ------- hostd Server log in 'plain' format vmkernel Server log in 'plain' format vpxa vCenter Server agent log in 'plain' format |
Ou
Get-VMHost MonEsxi* | Get-LogType
1 2 3 4 5 6 7 |
PS D:\> Get-VMHost MonEsxi* | Get-LogType Key Summary --- ------- hostd Server log in 'plain' format vmkernel Server log in 'plain' format vpxa vCenter Server agent log in 'plain' format |
Une fois que l’on connait la clef du log que l’on souhaites analyser , pour lister son contenu il vous suffit de taper la commande :
(Get-Log -VMHost MonEsxi* -Key vmkernel).entries
1 2 3 4 5 6 7 |
PS D:\> (Get-Log -VMHost MonEsxi* -Key hostd).entries 2018-05-31T19:23:22.511Z info hostd[39095B70] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/58591ceb-45cd2277-783c-d89d672ff254/MyVM/MyVM.vmx] State Transition (VM_STAT E_CREATE_SNAPSHOT -> VM_STATE_ON) 2018-05-31T19:23:22.511Z info hostd[39xxxx70] [Originator@6876 sub=Guestsvc.GuestFileTransferImpl] Entered VmPowerStateListener 2018-05-31T19:23:22.511Z info hostd[39xxxx70] [Originator@6876 sub=Guestsvc.GuestFileTransferImpl] VmPowerStateListener succeeded 2018-05-31T19:23:22.511Z info hostd[39xxxx70] [Originator@6876 sub=Hbrsvc] Replicator: powerstate change VM: 84 Old: 1 New: 1 .... |
Si comme dans mon cas vous souhaitez faire un filtre sur une erreur et la date du jour, il vous suffit simplement de lancer
(Get-Log -VMHOST MonEsxi* -key hostd).entries | where{$_ -match « Lost access » } | where{$_ -match [datetime]::Today.ToString(‘yyyy-MM-dd’)}
1 2 3 4 5 6 7 8 |
PS D:\> (Get-Log -VMHost MonEsxi* -Key hostd).entries | where{$_ -match "Lost access" } | where{$_ -match [datetime]::Today.ToString('yyyy-MM-dd')} 2018-05-30T13:28:58.125Z info hostd[FF9E2B20] [Originator@6876 sub=Vimsvc.ha-eventmgr] Event 204891 : Lost access to volume 12345678-abcddcba-1234-460dc7800060 (BAIE-123- ESX-XXXX-XXX) due to connectivity issues. Recovery attempt is in progress and outcome will be reported shortly. 2018-05-30T13:29:01.124Z info hostd[35AC6B70] [Originator@6876 sub=Vimsvc.ha-eventmgr] Event 204892 : Lost access to volume 12345678-abcddcba-1234-460dc7800060 (BAIE-123- ESX-XXXX-XXX) due to connectivity issues. Recovery attempt is in progress and outcome will be reported shortly. 2018-05-30T13:29:04.125Z info hostd[35AC6B70] [Originator@6876 sub=Vimsvc.ha-eventmgr] Event 204893 : Lost access to volume 12345678-abcddcba-1234-460dc7800060 (BAIE-123- ESX-XXXX-XXX) due to connectivity issues. Recovery attempt is in progress and outcome will be reported shortly. |
Pour sélectionner les lignes du fichier de log contenant une sous chaîne spécifique, on peut également utiliser la fonction Select-String .
(Get-Log -VMHOST MonEsxi* -key hostd).entries | Select-String « Lost access »
1 2 3 4 5 6 |
PS D:\> (Get-Log -VMHost MonEsxi* -Key hostd).entries | select-string "Lost access" 2018-05-18T21:21:51.840Z info hostd[1234B70] [Originator@4567 sub=Vimsvc.ha-eventmgr] Event 743 : Lost access to volume 2345abc-200123a3-1234-1234abcd5678 (BAIEABC-ABC-12345-ABC) due to connectivity issues. Recovery attempt is in progress and outcome will be reported shortly. 2018-05-18T21:46:03.899Z info hostd[1234B70] [Originator@4567 sub=Vimsvc.ha-eventmgr] Event 759 : Lost access to volume 12345abc-200123a3-1234-1234abcd5678 (BAIEABC-ABC-12345-ABC) due to connectivity issues. Recovery attempt is in progress and outcome will be reported shortly. |
Si vous souhaitez juste récupérer le nombre d’erreurs, ajouter un count à la fin …
((Get-Log -VMHOST MonEsxi* -key hostd).entries | where{$_ -match « Lost access » } | where{$_ -match [datetime]::Today.ToString(‘yyyy-MM-dd’)}).count
1 2 3 |
PS D:\> ((Get-Log -VMHOST MonEsxi* -key hostd).entries | where{$_ -match "Lost access" } | where{$_ -match [datetime]::Today.ToString('yyyy-MM-dd')}).count 1177 |
Vous pouvez également ne récupérer que les n dernières ligne de votre fichier de log
(Get-Log -VMHOST MonEsxi* -key hostd).entries[-1..-10]
Avec cette syntaxe vous allez récupérer dans le log hostd, les 10 derniers enregistrements du plus récent au moins récent.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
PS D:\> (Get-Log -VMHOST MonEsxi* -key hostd).Entries[-1..-10] [LikewiseGetDomainJoinInfo:355] QueryInformation(): ERROR_FILE_NOT_FOUND (2/0): 2018-06-04T08:14:48.405Z info hostd[392DCB70] [Originator@1234 sub=Vimsvc.TaskManager opID=abcdef12-8f-1234 user=vpxuser:MonVSPHEREProd.LOCAL\vpxd-extension-87654321-abcd-11e7 -ace9-0050569f7810] Task Completed : haTask-ha-host-vim.HostSystem.acquireCimServicesTicket-123418702 Status success 2018-06-04T08:14:48.404Z info hostd[392DCB70] [Originator@1234 sub=Vimsvc.TaskManager opID=abcdef12-8f-1234 user=vpxuser:MonVSPHEREProd.LOCAL\vpxd-extension-87654321-abcd-11e7 -ace9-0050569f7810] Task Created : haTask-ha-host-vim.HostSystem.acquireCimServicesTicket-123418702 2018-06-04T08:14:38.989Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '88' already registered 2018-06-04T08:14:38.989Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '77' already registered 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '66' already registered 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '55' already registered 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '44' already registered 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '33' already registered 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '22' already registered |
(Get-Log -VMHOST MonEsxi* -key hostd).entries | Select -last 5
ici, on affiche les 5 derniers enregistrements du log hostd, du moins récent au plus récent.
1 2 3 4 5 6 7 |
PS D:\> (Get-Log -VMHOST MonEsxi* -key hostd).Entries | select -last 5 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '66' already registered 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '55' already registered 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '44' already registered 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '33' already registered 2018-06-04T08:14:38.988Z warning hostd[1234ABCD] [Originator@4567 sub=VigorStatsProvider(123456789)] AddVirtualMachine: VM '22' already registered |