Я вытащил это из Новая реликвия документы Ищу способ заменить YourNewRelicLicense
и NameOfYourServer
с переменными среды, установленными в экземпляре ec2.
packages:
yum:
newrelic-sysmond: []
rpm:
newrelic: http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
commands:
"01":
command: nrsysmond-config --set license_key=YourNewRelicLicense
"02":
command: echo hostname=NameOfYourServer >> /etc/newrelic/nrsysmond.cfg
"03":
command: /etc/init.d/newrelic-sysmond start
Это возможно?
Я была такая же проблема. Путем небольшого тестирования я разработал обновленную версию того, что предоставляет New Relic, которая позволяет использовать переменные среды из конфигурации приложения в эластичном beanstalk.
Окончательная версия выглядела так
packages:
yum:
newrelic-sysmond: []
rpm:
newrelic: http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
container_commands:
"01":
command: /usr/sbin/nrsysmond-config --set license_key=${APP_NR_LIC}
"02":
command: echo hostname=$HOSTNAME >> /etc/newrelic/nrsysmond.cfg
"03":
command: /etc/init.d/newrelic-sysmond start
Просто замените APP_NR_LIC
с любой переменной, которую вы используете для установки лицензионного ключа. У меня это работает надежно.
Вот пример скрипта, который работает, получает переменные среды и работает с commands
в отличие от container_commands
.
packages:
yum:
newrelic-sysmond: []
rpm:
newrelic: http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
files:
"/root/env.js":
mode: "00755"
owner: root
group: root
encoding: plain
content: |
#!/usr/bin/env node
var strings = []
process.stdin.resume()
process.stdin.setEncoding('utf8')
process.stdin.on('data', function(data) {
var json = JSON.parse(data)
for (var key in json) {
var val = json[key]
strings.push(key + '="' + val + '"')
}
})
process.stdin.on('end', function() {
var output = strings.join('\n')
process.stdout.write(output)
})
commands:
"05":
command: ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/node /bin/node
"08":
command: sudo /etc/init.d/newrelic-sysmond stop
"09":
command: sudo /opt/elasticbeanstalk/bin/get-config environment | sudo /root/env.js > file
"10":
command: source ./file && sudo nrsysmond-config --set ssl=true license_key=$NEW_RELIC_LICENSE_KEY
"12":
command: sudo /etc/init.d/newrelic-sysmond start