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
- Crie um diretório de nível superior em seu pacote de origem chamado
.ebextensions
e adicionenewrelic.config
a ele. - Altere os valores em
newrelic.config
para 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. - Adicione uma configuração de aplicativo à configuração de seu aplicativo (ou seja ,
web.config
chamada)NewRelic.AppName
e defina seu valor para o nome do aplicativo. - 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.ps1
script 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
- AWS Customizando o Software em Instâncias EC2 Executando Windows
- AWS Configurando uma instância do Windows usando o serviço EC2Config
- Instalação do agente .NET da New Relic
- Instalação do New Relic Server Monitor para Windows