Last active
November 3, 2016 12:29
-
-
Save vMarkusK/a547608b89353f1b6c66340c0ae9b72c to your computer and use it in GitHub Desktop.
Push Messages to VMware vRealize Log Inisght
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
add-type @" | |
using System.Net; | |
using System.Security.Cryptography.X509Certificates; | |
public class TrustAllCertsPolicy : ICertificatePolicy { | |
public bool CheckValidationResult( | |
ServicePoint srvPoint, X509Certificate certificate, | |
WebRequest request, int certificateProblem) { | |
return true; | |
} | |
} | |
"@ | |
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy | |
<# | |
.NOTES | |
=========================================================================== | |
Created by: Markus Kraus | |
Organization: Private | |
Personal Blog: mycloudrevolution.com | |
Twitter: @vMarkus_K | |
=========================================================================== | |
Tested Against Environment: | |
vRealize Log Insight 3.3.1 | |
PowerShell Version: 4.0, 5.0 | |
OS Version: Windows 8.1, Server 2012 R2 | |
Keyword: vRealize, RestAPI | |
Dependencies: | |
PowerCLI Version: PowerCLI 6.3 R1 | |
.SYNOPSIS | |
Push Messages to VMware vRealize Log Insight. | |
.DESCRIPTION | |
Creates a Messages in VMware vRealize Log Insight via the Ingestion API | |
.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 FQDN of your vRealize Log Insight Appliance | |
.PARAMETER vLIAgentID | |
Specify the vRealize Log Insight Agent ID, e.g. "12862842-5A6D-679C-0E38-0E2BE888BB28" | |
.PARAMETER Text | |
Specify the Event Text | |
.PARAMETER Hostname | |
Specify the Hostanme displayed in vRealize Log Insight | |
.PARAMETER FieldName | |
Specify the a Optional Field Name for vRealize Log Insight | |
.PARAMETER FieldContent | |
Specify the a Optional FieldContent for the Field in -FieldName for vRealize Log Insight | |
If FielName is missing and FieldContent is given, it will be ignored | |
#Requires PS -Version 3.0 | |
#> | |
function Push-vLIMessage { | |
[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 = "" | |
) | |
Process { | |
$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[]]([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-Information "REST Call to Log Insight server successful" | |
Write-Verbose $Response | |
} | |
catch | |
{ | |
Write-Error "REST Call failed to Log Insight server" | |
Write-Verbose $error[0] | |
Write-Verbose $Resturl | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment