Adicionar New Relic ao Elastic Beanstalk para .NET

Adicionar New Relic ao Elastic Beanstalk para .NET

As instruções e arquivos nesta postagem podem ser usados ​​para configurar uma instância EC2 para instalar o Agente .NET da New Relic e o Monitor de servidor em um EC2 implantado dentro de um Elastic Beanstalk, sem criar um AMI personalizado. Depois de configurados, os EC2s começarão a relatar as métricas do aplicativo e do servidor automaticamente para a New Relic, mesmo quando o Elastic Beanstalk aumenta e adiciona mais EC2s.

Passos

  1. Crie um diretório de nível superior em seu pacote de origem chamado .ebextensionse adicione newrelic.configa ele.
  2. Altere os valores em newrelic.configpara corresponder à sua configuração, onde: caminho de download para é a URL para baixar o script PowerShell e agentes da New Relic (por exemplo, um intervalo S3), a plataforma é o instalador apropriado para o seu sistema (ou seja, x86 ou x64), a versão é a versão mais recente do New Relic Agent, e new relic license_key é sua chave de licença New Relic.
  3. Adicione uma configuração de aplicativo à configuração de seu aplicativo (ou seja , web.configchamada) NewRelic.AppNamee defina seu valor para o nome do aplicativo.
  4. Implante seu aplicativo no Elastic Beanstalk.

Código

newrelic.config

files:
"C:\Users\Public\Downloads\EnableEc2SetComputerName.ps1":
source
: http://<download_path_to>/EnableEc2SetComputerName.ps1
"C:\Users\Public\Downloads\NewRelicAgent.msi":
source
: http://<download_path_to>/NewRelicAgent_<platform>_<version>.msi
"C:\Users\Public\Downloads\NewRelicServerMonitor.msi":
source
: http://<download_path_to>/NewRelicServerMonitor_<platform>_<version>.msi
commands
:
ec2setcomputername
-enable:
command
: powershell.exe -ExecutionPolicy Bypass -File "C:\Users\Public\Downloads\EnableEc2SetComputerName.ps1"
install_newrelic_agent
:
command
: msiexec.exe /i "C:\Users\Public\Downloads\NewRelicAgent.msi" /qb NR_LICENSE_KEY=<new_relic_license_key> INSTALLLEVEL=50
install_newrelic_servermonitor
:
command
: msiexec.exe /i "C:\Users\Public\Downloads\NewRelicServerMonitor.msi" /L*v install.log /qn NR_LICENSE_KEY=<new_relic_license_key>
container_commands
:
reboot
-instance:
command
: powershell.exe -Command "Restart-Computer"

web.config

<configuration>
<appSettings>
<add key="NewRelic.AppName" value="Your Application Name Here"/>
</appSettings>
</configuration>

EnableEc2SetComputerName.ps1

$EC2SettingsFile="C:Program FilesAmazonEc2ConfigServiceSettingsConfig.xml"
$xml
= [xml](get-content $EC2SettingsFile)
$xmlElement
= $xml.get_DocumentElement()
$xmlElementToModify
= $xmlElement.Plugins

foreach ($element in $xmlElementToModify.Plugin)
{
if ($element.name -eq "Ec2SetComputerName")
{
$element
.State="Enabled"
}
}

$xml
.Save($EC2SettingsFile)

Notas

  • O EnableEc2SetComputerName.ps1script do PowerShell configura a instância EC2 para usar um nome de computador exclusivo baseado em seu endereço IP privado. Isso permite que cada servidor seja relatado independentemente de outras instâncias do EC2 enviando dados para a New Relic. Sem configurar nomes exclusivos, os EC2s aparecerão como um único servidor no NewRelic. Esta modificação no EC2 requer uma reinicialização.

Referência

Fonte