Where does output from cloud-init (automatically runs scripts when starting up a virtual machine in the cloud, for example at Amazon EC2) go? I would like to know that my initialization scripts executed successfully.

There is a /var/log/cloud-init.log file, but it seems to contain only partial output (namely from the SSH key initialization).

7 Answers 7


Since cloud-init 0.7.5 (released on Apr 1 2014), all output from cloud-init is captured by default to /var/log/cloud-init-output.log. This default logging configuration was added in a commit from Jan 14 2014:

# this tells cloud-init to redirect its stdout and stderr to
# 'tee -a /var/log/cloud-init-output.log' so the user can see output
# there without needing to look on the console.
output: {all: '| tee -a /var/log/cloud-init-output.log'}

To add support for previous versions of cloud-init, you can manually add this configuration manually to your Cloud Config Data.


I couldn't find way a "native" way for doing that. Before passing the script to cloud-init, I've simply (automatically) appended a >> /tmp/init-script-log 2>&1 to each line of the script, to forward stout and stderr to a file.

  • 1
    As Valko pointed out, neither /var/log/cloud-init.log nor /var/log/cloud-init-output.log captures output from user-data scripts. Roberto's solution here answers that concern. Another way I've seen this done is to preamble your user-data script to send all output to syslog with exec 1> >(logger -s -t "WhateverNameYouWantToMakeSiftingLogMessagerEasier") 2>&1 Jan 29, 2018 at 17:00

The log is stored in systemd:

journalctl -u cloud-final
  • 1
    Welcome to Stackexchange, and thanks for your contribution. However, the question was asked ten years ago before systemd was widely used (or even before it existed). Even when systemd is used, I am not sure if your answer is correct. cloudinit documentation says something else. Feb 24, 2021 at 9:48

On my EC2 box (running the Amazon Linux AMI) it's stored in /var/log/cloud-init.log

  • 2
    Thanks, but it doesn't seem to contain output from user scripts. Feb 19, 2011 at 7:24

On the Centos 7 AMI I am using, the output of my user data script is in /var/log/cloud-init-output.log.


I've found log output in /var/log/messages (CentOS7 AWS AMI)


First of all let me congratulate you on using cloud-init, it's a quite amazing tool!

There's no way yet to setup a log level but by default cloud-init will run with DEBUG enabled.

It's still in heavy development, I expect it to be a lot better by the release of Ubuntu Natty

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.