Delete Scripts/Zabbix-API-Last-Uptime-All-Hosts.ps1
This commit is contained in:
		
							parent
							
								
									77c29d39d0
								
							
						
					
					
						commit
						30a3d7711e
					
				
					 1 changed files with 0 additions and 92 deletions
				
			
		|  | @ -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 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue