Как узнать время работы сервера ESXI, за минуту

Обновлено 20.05.2020

время

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов на просторах рунета Pyatilistnik.org. В прошлый раз вам подробно рассказал принцип работы двух замечательных утилит "Robocopy"и "Iperf", благодаря им мы научились тестировать скорость сетевого канала и копировать файлы. Двигаемся дальше и сегодня вновь поговорим про гипервизор VMware. В данной публикации я расскажу, как узнать время работы сервера ESXI, это так называемый "Uptime". Рассажу и покажу известные мне методы.

Для чего нужно уметь определять время работы сервера?

Перед тем, как я разберу все известные мне методы, я бы хотел привести несколько примеров, когда вам это будет полезно. У одного моего приятеля на работе есть кластер ESXI с 20-ю гипервизорами на базе VMware ESXI 6.5. Сами ESXI хосты еще не успели поставить на мониторинг в Zabbix, там были настроены только виртуальные машины. В какой-то момент приходят уведомления, что несколько виртуальных серверов стали недоступны по PING и были перезапущены в итоге.

Зайдя потом на виртуальные машины, там выскакивало сообщение, что они были выключены не запланированно, и в логах Windows было событие с кодом ID 1074. Зайдя на vCenter все ESXI хосты визуально ошибок не имели, нужно было понять происходило ли падение системы, для этого можно посмотреть логи ESXI, но быстрее воспользоваться любым из методов позволяющих посмотреть время работы гипервизора.

Второй пример, когда необходимо уметь узнавать время работы сервера ESXI, это с целью безопасности. Каждый месяц разработчики программного обеспечения выпускают новые обновления безопасности и улучшения функциональности, затягивать с этим процессом особо не стоит, особенно если это очень опасно с получением несанкционированного доступа.

Методы определения времени работы сервера ESXI

Лично я знаю, как минимум пять способов определения Uptme у серверов ESXI, они ни чем не сложнее определения времени работы в Windows.

  1. Узнать время работы сервера можно из интерфейса vCenter или веб-формы ESXI
  2. Через ssh и команду Uptime
  3. Через ssh и команду esxtop
  4. Через PowerCLI
  5. Через файл лога vmksummary.log

Узнаем время работы через web-интерфейс

И так если у вас есть vCenter сервер, то подключаемся к его интерфейсу, выбираем корень и переходим на вкладку "Hosts & Cluster". Далее вкладка "Hosts", тут вы найдете список всех ваших сервером, где будет отдельный столбец "Uptime".

uptime esxi vcenter

Если столбца "Uptime" не будет, то щелкните правым кликом по любому столбцу и из контекстного меню выберите пункт "Show/Hide Columins".

Добавление столбца uptime в vcenter

Далее выберите пункт "Uptime", это добавит данный столбец.

Добавление столбца uptime в vcenter

Так же в vCenter вы можете выбрать отдельный хост ESXI и на вкладке "Summary" можно обнаружить пункт "Uptime".

как выяснить время работы ESXI хоста

То же самое вы обнаружите зайдя на веб-интерфейс отдельного хоста ESXI.Там нужно выбрать раздел "Host", на главном экране будет так же пункт "Uptime", он покажет время работы в днях.

Как определить время работы Vmware сервера

Узнаем время работы сервера ESXI через ssh команды

Перед тем, как вы будите выполнять представленные ниже команды, вам необходимо включить ssh на ESXI хосте. Далее введите простую команду:

uptime

В результате вы увидите информативную строку, по типу "13:54:34 up 10 days, 15:49:33"

Как узнать время работы сервера ESXI через ssh

Второй вариант, это воспользоваться мега командой esxtop. Введите в ssh консоли:

esxtop

В результате у вас откроется информация, о производительности ESXI хоста, но тут в левом верхнем углу вы обнаружите время работы сервера.

Как определить время работы Vmware сервера через esxtop

Узнаем время работы сервера ESXI через PowerCLI

Напоминаю PowerCLI, это дополнительные командлеты PowerShell, позволяющие управлять и автоматизировать виртуальной инфраструктурой. Чтобы вывести список всех ваших серверов со значениями времени работы, вам нужно выполнить вот такую команду:

Get-VMHost | Get-View | select Name, @{N="Uptime"; E={(Get-Date) - $_.Summary.Runtime.BootTime}}|ft

В моем примере есть даже сервер ESXI с "Uptime" в 314 дней.

Узнаем время работы сервера ESXI через PowerCLI

Еще один вариант, это использование вот такой конструкции с сортировкой по убыванию:

Get-VMHost | Select Name, @{N="Uptime"; E={New-Timespan -Start $_.ExtensionData.Summary.Runtime.BootTime -End (G
et-Date) | Select -ExpandProperty Days}} | Sort-Object -Descending -Property "Uptime"

Узнаем время работы сервера ESXI через скрипт PowerCLI

Так же вы можете запускать скрипт PowerShell по расписанию, который будет вам присылать отчет по почте:

#Импорт VMware модулей
Get-Module -Name VMware* -ListAvailable | Import-Module

#Подключение к вашему vCenter серверу.
Connect-VIServer <IP Address или DNS имя сервера> -User '<Domain\UserName>' -Password '<Пароль>'

$head = @'
<style>
body { background-color:#FFFFFF;
font-family:calibri;
font-size:11pt; }
td, th { border:1px solid black;
border-collapse:collapse; }
th { color:white;
background-color:black; }
table, tr, td, th { padding: 2px; margin: 0px }
table { margin-left:50px; }
</style>
'@
$Output = Get-VMHost | Sort-Object -Property Name
$body = $PP1Output | select Name,Parent,ConnectionState,@{N="Uptime(Days)"; E={New-Timespan -Start $_.ExtensionData.Summary.Runtime.BootTime -End (Get-Date) | Select -ExpandProperty Days}} | ConvertTo-Html -PreContent "<h1>PP1 ESXi Availability Report:- $D</h1>" | foreach {if ($_ -like "*<td>Maintenance</td>*"){$_ -replace "<tr>","<tr bgcolor=yellow>"} elseif($_ -notlike "*<td>Connected</td>*"){$_ -replace "<tr>","<tr bgcolor=red>"}else{$_} } | Out-String
$body1 = Get-Cluster | Select @{N="Cluster Name";E={Get-Cluster -Name $_}}, @{N="ESXi Host Count"; E={($_ | Get-VMHost).Count} },@{N="VM Count"; E={($_ | Get-VM).Count}} | ConvertTo-Html -PreContent "<h2>ESXi & VM Count in vCenter: </h2>" | Out-String
$finalout = ConvertTo-HTML -head $head -PostContent $body,$body1 | Out-String

#Отправка электронного письма
Send-MailMessage -From 'Sender@pyatilistnik.org' -To 'reciever@pyatilistnik.org' -Subject 'Host Health Check' -body "$finalout" -BodyAsHtml -SmtpServer '<SMTP IP ADDRESS>'
#Отключаемся от сервера vCenter
disconnect-viserver -confirm:$false

Как узнать время работы сервера ESXI через логи

Существует такой журнал vmksummary.log в нем можно найти время загрузки ESXI сервера. Подключитесь по ssh к своему хосту и выполните запрос к системе:

cat /var/log/vmksummary.log |grep booted

В итоге вы получите все записи, с загрузками гипервизора.

Как узнать время работы сервера ESXI через логи

Как видите методов определить время работы сервера ESXI очень много, вы можете выбрать любой, что подходить только вам. На этом у меня все, с вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *