-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathPush-vLIMessage.psm1
115 lines (97 loc) · 6.82 KB
/
Push-vLIMessage.psm1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
function Push-vLIMessage {
<#
.NOTES
===========================================================================
Created by: Markus Kraus
Twitter: @VMarkus_K
Private Blog: mycloudrevolution.com
===========================================================================
Changelog:
2016.08 ver 1.0 Base Release
===========================================================================
External Code Sources:
===========================================================================
Tested Against Environment:
vRealize Log Inisght Version: 3.6
PowerShell Version: 4.0, 5.0
OS Version: Windows 8.1, Server 2012 R2
===========================================================================
Keywords: VMware, vRealize, Log Insight
===========================================================================
.SYNOPSIS
Push Messages to VMware vRealize Log Inisght.
.DESCRIPTION
Push Messages to VMware vRealize Log Inisght.
.EXAMPLE
Push-vLIMessage -vLIServer "loginsight.lan.local -vLIAgentID "12862842-5A6D-679C-0E38-0E2BE888BB28" -Text "My Test"
.EXAMPLE
Push-vLIMessage -vLIServer "loginsight.lan.local -vLIAgentID "12862842-5A6D-679C-0E38-0E2BE888BB28" -Text "My Test" -Hostname MyTEST -FieldName myTest -FieldContent myTest
.PARAMETER vLIServer
Specify the vLI FQDN
.PARAMETER vLIAgentID
Specify the vLI Agent ID
.PARAMETER Text
Specify the Event Text
.PARAMETER Hostname
Specify the Hostanme displayed in vLI
.PARAMETER FieldName
Specify the a Optinal Field Name for vLI
.PARAMETER FieldContent
Specify the a Optinal FieldContent for the Field in -FieldName for vLI
If FielName is missing and FielContent is given, it will be ignored
.Link
http://mycloudrevolution.com/
#Requires PS -Version 2.0
#>
[cmdletbinding()]
param (
[parameter(Mandatory=$true)]
[string]$Text,
[parameter(Mandatory=$true)]
[string]$vLIServer,
[parameter(Mandatory=$true)]
[string]$vLIAgentID,
[parameter(Mandatory=$false)]
[string]$Hostname = $env:computername,
[parameter(Mandatory=$false)]
[string]$FieldName,
[parameter(Mandatory=$false)]
[string]$FieldContent = ""
)
$Field_vLI = [ordered]@{
name = "PS_vLIMessage"
content = "true"
}
$Field_HostName = [ordered]@{
name = "hostname"
content = $Hostname
}
$Fields = @($Field_vLI, $Field_HostName)
if ($FieldName) {
$Field_Custom = [ordered]@{
name = $FieldName
content = $FieldContent
}
$Fields += @($Field_Custom)
}
$Restcall = @{
messages = ([Object[]]($Messages = [ordered]@{
text = ($Text)
fields = ([Object[]]$Fields)
}))
} | convertto-json -Depth 4
$Resturl = ("http://" + $vLIServer + ":9000/api/v1/messages/ingest/" + $vLIAgentID)
try
{
$Response = Invoke-RestMethod $Resturl -Method Post -Body $Restcall -ContentType 'application/json' -ErrorAction stop
Write-Host "REST Call to Log Insight server successful"
Write-Host $Response
}
catch
{
Write-Host "REST Call failed to Log Insight server"
Write-Host $error[0]
Write-Host $Resturl
}
}