Quantcast
Channel: VMware Communities : All Content - All Communities
Viewing all articles
Browse latest Browse all 180923

SYSLOG_CHECK.ps1

$
0
0

##########################################################################################
#
# Script:      SYSLOG_CHECK.ps1
#
# Description: This script get all ESXi hosts and check if the local syslogcollector
#              maintains a coresponding Folder. if not it ask to configure Syslog on
#              the particular ESXi.
#              Script is tested under ESXi 5.1 Build 799733 / vCenter 5.1 Build 799731
#              Change the Vars / connect manualy to your vCenter / copy&paste this code
#              to your powershell session.
#
# Autor:       hofstetter.adrian[AT]gmail.com
#
# Created:     09.04.2013
#
# Changelog:   09.04.2013 Script created
#
##########################################################################################

 


####################### Vars
$sqlserverName = 'sqlserver'
$databaseName  = 'vCenterDB'
$syslogsrv     = '10.10.10.10'
$lowestbuild   =  799732
$localsyslpath = 'F:\ProgramData\VMware\VMware Syslog Collector\Data\'

 


####################### Functions
function yesno {
    param(
        [Parameter(Mandatory=$true, HelpMessage="What's default yes=y no=n Quote it!!”)][String]$d,
        [Parameter(Mandatory=$true, HelpMessage="Enter the Y/N Question! Quote it!!”)][String]$Q
    )

    $retval = read-host -Prompt "$Q (y/n) default=$d"
   
    if($retval -eq "") {
        if($d -eq "y" -OR $d -eq "Y") {
            return $true
        }
        else {
            if($d -eq "n" -OR $d -eq "N") {
                return $false
            }
        }
    }
    else {
        if($retval[0] -eq "y" -OR $retval[0] -eq "Y") {
            return $true
        }
        else{
            if($retval[0] -eq "n" -OR $retval[0] -eq "N") {
                return $false
            }
            else{
                echo "Your answer was not valid. Answer with y or n"
                yesno $d $Q
            }
        }
    }
} #yesno


function Get-SqlData {
    param([string]$sqlserverName=$(throw 'serverName is required.'), [string]$databaseName=$(throw 'databaseName is required.'),
          [string]$query=$(throw 'query is required.')
    )

    Write-Verbose "Get-SqlData serverName:$sqlserverName databaseName:$databaseName query:$query"

    $connString = "Server=$sqlserverName;Database=$databaseName;Integrated Security=SSPI;"
    $da = New-Object "System.Data.SqlClient.SqlDataAdapter" ($query,$connString)
    $dt = New-Object "System.Data.DataTable"
    $da.fill($dt) > $null
#    $da.fill($dt)
    return $dt

} #Get-SqlData

 


####################### Main Code
$sqlres = Get-SqlData $sqlserverName $databaseName 'select DNS_NAME,IP_ADDRESS from dbo.VPX_HOST ORDER BY 1'

foreach($row in $sqlres) {
     if(!(Test-Path ($localsyslpath + $row.IP_ADDRESS))) {
         echo ($row.DNS_NAME + ' (' + $row.IP_ADDRESS +  ") Syslog Folder does not exist!")
         if((get-vmhost $row.DNS_NAME).Build -gt $lowestbuild) {
             if(yesno y "    should i configure syslog for you?") {
                 echo ('    + configuring advanced Settings syslogHost: ' + $syslogsrv)
                 Set-VMHostAdvancedConfiguration -Name Syslog.global.logHost -Value "$syslogsrv" -VMHost $row.DNS_NAME
                 echo ('    + restartsyslog service')
                 $esxcli = Get-EsxCli -VMHost $row.DNS_NAME
                 $esxcli.system.syslog.reload()
                 echo ('    + open firewallport for syslog')
                 Get-VMHostFirewallException -Name "syslog" -VMHost $row.DNS_NAME | set-VMHostFirewallException -Enabled:$true
             }
         }
         else {
             echo "    Syslog has to be configured manualy"
         }
     }
     else {
         echo ($row.DNS_NAME + ' (' + $row.IP_ADDRESS +  ") Syslog Folder OK")
     }
}


Viewing all articles
Browse latest Browse all 180923

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>