diff --git a/Scripts/Zabbix-API-Last-Uptime-All-Hosts.ps1 b/Scripts/Zabbix-API-Last-Uptime-All-Hosts.ps1 deleted file mode 100644 index 538879e..0000000 --- a/Scripts/Zabbix-API-Last-Uptime-All-Hosts.ps1 +++ /dev/null @@ -1,92 +0,0 @@ -$ip = "192.168.3.102" -$url = "http://$ip/zabbix/api_jsonrpc.php" -$token = "914ee100f4e8c4b68a70eab2a0a1fb153cfcd4905421d0ffacb82c20a57aa50e" - -function ConvertFrom-UnixTime { - param ( - $intime - ) - $EpochTime = [DateTime]"1/1/1970" - $TimeZone = Get-TimeZone - $UTCTime = $EpochTime.AddSeconds($intime) - $UTCTime.AddMinutes($TimeZone.BaseUtcOffset.TotalMinutes) -} - -function ConvertTo-TimeSpan { - param ( - $insec - ) - $TimeSpan = [TimeSpan]::fromseconds($insec) - "{0:dd' day 'hh\:mm\:ss}" -f $TimeSpan -} - -### Получить список всех хостов (имя и id) -$data = @{ - "jsonrpc"="2.0"; - "method"="host.get"; - "params"=@{ - "output"=@( - "hostid"; - "host"; - ); - }; - "id"=2; - "auth"=$token; -} -$hosts = (Invoke-RestMethod -Method POST -Uri $url -Body ($data | ConvertTo-Json) -ContentType "application/json").Result - -### Получить id элемента данных по наименованию ключа для каждого хоста -$Collections = New-Object System.Collections.Generic.List[System.Object] -foreach ($h in $hosts) { - $data = @{ - "jsonrpc"="2.0"; - "method"="item.get"; - "params"=@{ - "hostids"=@($h.hostid); - }; - "auth"=$token; - "id"=1; - } - $items = (Invoke-RestMethod -Method POST -Uri $url -Body ($data | ConvertTo-Json) -ContentType "application/json").Result - $items_id = ($items | Where-Object key_ -match system.uptime).itemid - if ($items_id -ne $null) { - $Collections.Add([PSCustomObject]@{ - host = $h.host; - hostid = $h.hostid; - item_id_uptime = $items_id - }) - } -} - -### Получить всю историю элемента данных по его id для каждого хоста -$Collections_output = New-Object System.Collections.Generic.List[System.Object] -foreach ($c in $Collections) { - $data = @{ - "jsonrpc"="2.0"; - "method"="history.get"; - "params"=@{ - "hostids"=$c.hostid; - "itemids"=$c.item_id_uptime; - }; - "auth"=$token; - "id"=1; - } - $items_data_uptime = (Invoke-RestMethod -Method POST -Uri $url -Body ($data | ConvertTo-Json) -ContentType "application/json").Result - - ### Convert Secconds To TimeSpan and DateTime - $sec = $items_data_uptime.value - $UpTime = ConvertTo-TimeSpan $sec[-1] - - ### Convert From Unix Time - $time = $items_data_uptime.clock - $GetDataTime = ConvertFrom-UnixTime $time[-1] - - $Collections_output.Add([PSCustomObject]@{ - host = $c.host; - hostid = $c.hostid; - item_id_uptime = $c.item_id_uptime; - GetDataTime = $GetDataTime - UpTime = $UpTime - }) -} -$Collections_output | Format-Table \ No newline at end of file