Моя компания развернула Splunk для сбора журналов и отчетов об изменениях в системе.
Splunk использует два файла - input.conf и server.conf, чтобы отслеживать существующее имя хоста и сообщать об этом элементу управления Splunk.
Если имя хоста изменяется (обычно в нашей среде), система сообщает «Проверка нарушенного хоста», требуя, чтобы мы вошли в каждую систему и заменили старое имя хоста новым.
Это сложно с 1000 системами в полевых условиях.
Я хочу автоматизировать этот процесс, и у меня возникают проблемы с написанным мной сценарием (см. Ниже).
И входы, и сервер используют этот формат для файлов .conf (.conf - это просто текстовый файл с расширением .conf).
Host = systemname
Сценарий, приведенный ниже, в данный момент будет читать текстовый файл, а затем вместо замены 'systemname' добавит изменения в конец существующего значения. то есть. вместо hostname1
& hArr; hostname2
Это Hostname2Hostname1
.
$InputsOLD = "host = *"
$InputsNEW = "host = $Env:COMPUTERNAME"
Get-Content "C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs.conf" |
Foreach-Object {$_ -replace "$InputsOLD","$InputsNEW"} |
Set-Content "C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs_1.conf"
$ServerOLD = "serverName = *"
$ServerNew = "serverName = $Env:COMPUTERNAME"
Get-Content "C:\Program Files\SplunkUniversalForwarder\etc\system\local\server.conf" |
Foreach-Object {$_ -replace "$ServerOLD","$ServerNew"} |
Set-Content "C:\Program Files\SplunkUniversalForwarder\etc\system\local\server_1.conf"