How To Setup AWS Logs Agent on Ubuntu 16.04 Instance

aws logs agent on ubuntu 16

This tutorial will guide you through the steps for configuring awslogs agent on an EC2 Ubuntu 16.04 server instance.

Install and Configure AWSLogs

Step1: Update the system and install python.

sudo apt-get update -y
sudo apt-get install python

Step2: Download the latest agent installation script.

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

Step3: Run the agent setup command with the region parameter. Replace the eu-west-2 with the aws region code where you are operating.

sudo python ./awslogs-agent-setup.py --region us-west-2

Fill in the required parameters when prompted.

Setup AWSLogs as a service

There is no support for creating awslogs as a service in Ubuntu 16.04. So we need to create our own systemd unit file for running it as a service.

1. cd into /etc/systemd/system directory.

cd /etc/systemd/system

2. Create a file named awslogs.service

vim awslogs.service

3. Copy the following content on the awslogs.service file.

[Unit]
Description=Service for CloudWatch Logs agent
After=rc-local.service

[Service]
Type=simple
Restart=always
KillMode=process
TimeoutSec=infinity
PIDFile=/var/awslogs/state/awslogs.pid
ExecStart=/var/awslogs/bin/awslogs-agent-launcher.sh --start --background --pidfile $PIDFILE --user awslogs --chuid awslogs &

[Install]
WantedBy=multi-user.target

4. Now start the agent using the following command.

systemctl start awslogs.service

To stop and restart, you can use the following commands.

systemctl stop awslogs.service
systemctl restart awslogs.service

5. To enable awslogs service on boot, execute the following command.

systemctl enable awslogs.service
3 comments
  1. Hey DevopsCube Team!

    Thanks for the great article. It fails on the last step for me on the Ubuntu EC2 instance I’m using. Error output is this:

    Synchronizing state of awslogs.service with SysV init with /lib/systemd/systemd-sysv-install…
    Executing /lib/systemd/systemd-sysv-install enable awslogs
    insserv: warning: current start runlevel(s) (0 1 2 3 4 5 6) of script `awslogs’ overrides LSB defaults (2 3 4 5).
    insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `awslogs’ overrides LSB defaults (0 1 6).
    insserv: warning: current start runlevel(s) (0 1 2 3 4 5 6) of script `awslogs’ overrides LSB defaults (2 3 4 5).
    insserv: can not symlink(../init.d/awslogs, ../rc2.d/S01awslogs): File exists
    insserv: can not symlink(../init.d/awslogs, ../rc3.d/S01awslogs): File exists
    insserv: can not symlink(../init.d/awslogs, ../rc4.d/S01awslogs): File exists
    insserv: can not symlink(../init.d/awslogs, ../rc5.d/S01awslogs): File exists

    Any ideas what the cause may be?

    I previously set this up via another method, but am having trouble changing the configuration. See here for the instructions I used: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html

    Best,
    Chris

Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like