File tree 4 files changed +53
-23
lines changed
4 files changed +53
-23
lines changed Original file line number Diff line number Diff line change @@ -37,6 +37,15 @@ resource "aws_autoscaling_group" "cluster" {
37
37
}
38
38
}
39
39
40
+ resource "template_file" "user_data" {
41
+ template = " ${ file (" ${ path . module } /user-data.sh" )} "
42
+ vars {
43
+ vpc = " ${ var . vpc } "
44
+ bucket_id = " ${ aws_s3_bucket . ecs_config . id } "
45
+ newrelic_license_key = " ${ var . newrelic_license_key } "
46
+ }
47
+ }
48
+
40
49
resource "aws_launch_configuration" "cluster" {
41
50
name_prefix = " ${ var . vpc } -cluster"
42
51
image_id = " ${ var . image_id } "
@@ -45,24 +54,5 @@ resource "aws_launch_configuration" "cluster" {
45
54
security_groups = [" ${ aws_security_group . cluster . id } " , " ${ aws_security_group . microservices . id } " ]
46
55
key_name = " ${ aws_key_pair . instance . key_name } "
47
56
depends_on = [" aws_s3_bucket_object.ecs_config" , " aws_s3_bucket_object.awslogs_conf" ]
48
- user_data = << EOF
49
- #!/bin/bash
50
- yum -y update --security
51
- yum install -y aws-cli awslogs jq
52
-
53
- # copy configurations
54
- aws s3 cp s3://${ aws_s3_bucket . ecs_config . id } /ecs.config /etc/ecs/ecs.config
55
- aws s3 cp s3://${ aws_s3_bucket . ecs_config . id } /awslogs.conf /etc/awslogs/awslogs.conf
56
-
57
- # substitute container id
58
- sed -i -e "s/{container_instance_id}/$HOSTNAME/g" /etc/awslogs/awslogs.conf
59
-
60
- # substitute region
61
- region=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone | sed s'/.$//')
62
- sed -i -e "s/region = us-east-1/region = $region/g" /etc/awslogs/awscli.conf
63
-
64
- # start aws logs
65
- service awslogs start
66
- chkconfig awslogs on
67
- EOF
57
+ user_data = " ${ template_file . user_data . rendered } "
68
58
}
Original file line number Diff line number Diff line change @@ -20,8 +20,13 @@ resource "aws_s3_bucket_object" "awslogs_conf" {
20
20
key = " awslogs.conf"
21
21
content = << EOF
22
22
[general]
23
- state_file = /var/lib/awslogs/agent-state
24
-
23
+ state_file = /var/lib/awslogs/agent-state
24
+
25
+ [/var/log/newrelic/nrsysmond.log]
26
+ file = /var/log/newrelic/nrsysmond.log
27
+ log_group_name = ${ aws_cloudwatch_log_group . cluster . name }
28
+ log_stream_name = {container_instance_id}/var/log/newrelic/nrsysmond.log
29
+
25
30
[/var/log/dmesg]
26
31
file = /var/log/dmesg
27
32
log_group_name = ${ aws_cloudwatch_log_group . cluster . name }
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+ yum -y update
3
+ yum install -y aws-cli awslogs jq
4
+
5
+ # copy configurations
6
+ aws s3 cp s3://${bucket_id} /ecs.config /etc/ecs/ecs.config
7
+ aws s3 cp s3://${bucket_id} /awslogs.conf /etc/awslogs/awslogs.conf
8
+
9
+ # substitute container id
10
+ instanceId=$( curl 169.254.169.254/latest/meta-data/instance-id)
11
+ sed -i -e " s/{container_instance_id}/$instanceId /g" /etc/awslogs/awslogs.conf
12
+
13
+ # substitute region
14
+ region=$( curl 169.254.169.254/latest/meta-data/placement/availability-zone | sed s' /.$//' )
15
+ sed -i -e " s/region = us-east-1/region = $region /g" /etc/awslogs/awscli.conf
16
+
17
+ # start aws logs
18
+ service awslogs start
19
+ chkconfig awslogs on
20
+
21
+ # configure and start new relic server monitoring
22
+ if [" ${newrelic_license_key} " = " none" ]; then
23
+ echo " no newrelic key set, skipping"
24
+ else
25
+ rpm -Uvh https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
26
+ yum install -y newrelic-sysmond
27
+ nrsysmond-config --set license_key=${newrelic_license_key}
28
+ echo " labels=Type:cluster;VPC:${vpc} ;Instance:$instanceId " >> /etc/newrelic/nrsysmond.cfg
29
+
30
+ /etc/init.d/newrelic-sysmond start
31
+ fi
Original file line number Diff line number Diff line change @@ -48,7 +48,11 @@ variable "to_port" {
48
48
default = 8010
49
49
}
50
50
51
+ variable "newrelic_license_key" {
52
+ description = " new relic license key"
53
+ default = " none"
54
+ }
55
+
51
56
variable "ssh_public_key" {
52
57
description = " public key to allow ssh to cluster instances"
53
58
}
54
-
You can’t perform that action at this time.
0 commit comments