PowerCLI Script to add Syslog Servers

less than 1 minute read

I was asked earlier about this. So I figured I would throw this together real quick. There was a concern about adding syslog server settings to an enormous number of hosts in a cluster for Log Insight (or other). So here is a quick PowerCLI script to do this for us. Nothing too fancy but it works.

# PowerCLI Script for adding syslogserver to hosts
# @mrlesmithjr
# EverythingShouldBeVirtual.com
# Change the following to match your environment
# vi_server is your vCenter
$vi_server = vcenterservername
$vcuser = "vcenterserverusername"
$vcpass = "vcenterserverpassword"
# Make sure to tweak the protocol and ports below to match your environment
$syslogservers = udp://graylog2:514,tcp://logstash:514,udp://loginsight:514

Connect-VIServer -Server $vi_server -User $vcuser -Password $vcpass

# Setup variable to use in script for all hosts in vCenter
$vmhosts = @(Get-VMHost)

# Configure syslog on each host in vCenter
foreach ($vmhost in $vmhosts) {
Write-Host $vmhost =  $vmhost
Set-VMHostAdvancedConfiguration -Name Syslog.global.logHost -Value "$syslogservers" -VMHost $vmhost
$esxcli = Get-EsxCli -VMHost $vmhost
$esxcli.system.syslog.reload()
}

Disconnect-VIServer * -Confirm:$false

Enjoy!

Updated:

Leave a comment