As part of the VMware open source program, we have to update this repository with the correct license and copyright information. We add the BSD-2 Clause License for this repository. We mark all source code provided by VMware with the Copyright notice under BSD-2 Clause license. * Update repository license to BSD 2-Clause License * Update Copyright
123 lines
3.3 KiB
PowerShell
123 lines
3.3 KiB
PowerShell
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
|
|
}
|
|
}
|
|
} |