Forge Home


Forked from kemra102 & dsappet (geekify)


263 latest version

4.5 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 5.0.0 (latest)
  • 4.0.2
  • 4.0.1
  • 4.0.0
released Jun 27th 2023
This version is compatible with:
  • Puppet Enterprise 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
  • Puppet > 7.0.0
  • Amazon, Ubuntu, RedHat, CentOS

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'veepshosting-cloudwatchlogs', '5.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add veepshosting-cloudwatchlogs
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install veepshosting-cloudwatchlogs --version 5.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



veepshosting/cloudwatchlogs — version 5.0.0 Jun 27th 2023

cloudwatchlogs Build Status

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with cloudwatchlogs
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module


This module is a fork of this repo that has been fixed to work with hiera. Examples have been adjusted to be hiera yaml examples. Otherwise the functionality is very similar. This module installs, configures and manages the service for the AWS Cloudwatch Logs Agent on Amazon Linux, Ubuntu, Red Hat & CentOS EC2 instances.

Module Description

CloudWatch Logs can be used to monitor your logs for specific phrases, values, or patterns. For example, you could set an alarm on the number of errors that occur in your system logs or view graphs of web request latencies from your application logs. You can view the original log data to see the source of the problem if needed. Log data can be stored and accessed for as long as you need using highly durable, low-cost storage so you don’t have to worry about filling up hard drives.


What cloudwatchlogs affects

  • The awslogs package.
  • Configuration files under /etc/awslogs.
  • The awslogs service.

Setup Requirements

This module does NOT manage the AWS CLI credentials. As such if you are not using an IAM role (recommended) then you will need some other way of managing the credentials.

This module by Justin Downing is recommended for this purpose.

Beginning with cloudwatchlogs


The minimum you need to get this module up and running is (assuming your instance is launched with a suitable IAM role):

- cloudwatchlogs



On NON Amazon Linux instances you also need to provide a default region:

- cloudwatchlogs
  region: 'eu-west-1'

For each log you want send to Cloudwatch Logs you create a cloudwatchlogs::log resource. This shall be set as its own item. It requires a name for each log to create so that a nested object is created.

A simple example that might be used on the RedHat ::osfamily is:

- cloudwatchlogs
  region: 'eu-west-1'
    path: '/var/log/messages'
    path: '/path/to/your/node.log'

See the examples/ directory for further examples.





  • Amazon Linux: /var/lib/awslogs/agent-state
  • Other: /var/awslogs/state/agent-state

State file for the awslogs agent.


Defaults: /etc/awslogs/awslogs_dot_log.conf

Config file for the awslogs agent logging system (


Default: undef


Default: undef

The region your EC2 instance is running in.

NOTE: This is required for none Amazon distros.



Default: undef

Optional. This is the absolute path to the log file being managed. If not set the name of the resource is used instead (and must be an absolute path if that this situation occurs).


Default: {instance_id}

The name of the stream in Cloudwatch Logs. This should be a string like all the others. See the ams cloudwatch logs docs for options. One other common option is {hostname}


Default: %b %d %H:%M:%S

Specifies how the timestamp is extracted from logs. See the official docs for further info.


Default: Resource Name

Specifies the destination log group. A log group will be created automatically if it doesn't already exist.


Default: undef

Optional. This is a regex string that identifies the start of a log line. See the official docs for further info.


- cloudwatchlogs

  region: 'eu-west-1'

    path: '/path/to/your/logfile.log'
    streamname: '{hostname}'
    datetime_format: '%Y-%m-%dT%H:%M:%S%z'
    log_group_name: 'my-node-project'
    path: '/var/log/messages'
    streamname: '{hostname}'
    log_group_name: 'system-messages'

Http Proxy Usage

If you have a http_proxy or https_proxy then run the following puppet code after calling cloudwatchlogs to modify the launcher script as a workaround bcause awslogs python code currently doesn't have http_proxy support:

$launcher = "#!/bin/sh
# Version: 1.3.5
echo -n $$ > /var/awslogs/state/
/usr/bin/env -i AWS_CONFIG_FILE=/var/awslogs/etc/awscli.conf HOME=\$HOME HTTPS_PROXY=${http_proxy} HTTP_PROXY=${http_proxy} NO_PROXY=  /bin/nice -n 4 /var/awslogs/bin/aws logs push --config-file /var/awslogs/etc/awslogs.conf >> /var/log/awslogs.log 2>&1

file { '/var/awslogs/bin/':
  ensure  => file,
  owner   => root,
  group   => root,
  mode    => '0755',
  content => $launcher,
  require => Class['cloudwatchlogs'],


This module is currently only compatible with:

  • Amazon Linux AMI 2014.09 or later.
  • Ubuntu
  • Red Hat
  • CentOS

More information on support as well as information in general about the set-up of the Cloudwatch Logs agent can be found here.


Contributions are welcome via pull requests. To test and build: Download the Puppet Development Kit from [] To build run pdk build from terminal in project folder To run lint and validator pdk validate To run unit tests pdk test unit



Original Repo Authors:

All other contributions: