{"id":36801970,"url":"https://github.com/e-travel/cloudwatchlogsbeat","last_synced_at":"2026-01-12T13:34:50.100Z","repository":{"id":55586037,"uuid":"94295965","full_name":"e-travel/cloudwatchlogsbeat","owner":"e-travel","description":"A beat for AWS CloudWatch Logs","archived":false,"fork":false,"pushed_at":"2023-02-14T15:47:49.000Z","size":28239,"stargazers_count":64,"open_issues_count":4,"forks_count":25,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-06-20T14:29:11.214Z","etag":null,"topics":["aws","cloudwatch","elastic","elasticsearch","golang","logs","logstash"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/e-travel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-14T06:13:35.000Z","updated_at":"2024-01-03T14:14:54.000Z","dependencies_parsed_at":"2024-06-20T14:11:11.788Z","dependency_job_id":"d5c5c1f2-d2b6-42e0-9621-90645c7b6de4","html_url":"https://github.com/e-travel/cloudwatchlogsbeat","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/e-travel/cloudwatchlogsbeat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-travel%2Fcloudwatchlogsbeat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-travel%2Fcloudwatchlogsbeat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-travel%2Fcloudwatchlogsbeat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-travel%2Fcloudwatchlogsbeat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/e-travel","download_url":"https://codeload.github.com/e-travel/cloudwatchlogsbeat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-travel%2Fcloudwatchlogsbeat/sbom","scorecard":{"id":363003,"data":{"date":"2025-08-11","repo":{"name":"github.com/e-travel/cloudwatchlogsbeat","commit":"12e6ac2236a782bc53282a789838c129be3a4347"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.4,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":3,"reason":"Found 7/20 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:1","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.0.0 not signed: https://api.github.com/repos/e-travel/cloudwatchlogsbeat/releases/20971284","Warn: release artifact v1.2.0 not signed: https://api.github.com/repos/e-travel/cloudwatchlogsbeat/releases/10107123","Warn: release artifact v1.1.0 not signed: https://api.github.com/repos/e-travel/cloudwatchlogsbeat/releases/9385505","Warn: release artifact v1.0.0 not signed: https://api.github.com/repos/e-travel/cloudwatchlogsbeat/releases/8791278","Warn: release artifact v2.0.0 does not have provenance: https://api.github.com/repos/e-travel/cloudwatchlogsbeat/releases/20971284","Warn: release artifact v1.2.0 does not have provenance: https://api.github.com/repos/e-travel/cloudwatchlogsbeat/releases/10107123","Warn: release artifact v1.1.0 does not have provenance: https://api.github.com/repos/e-travel/cloudwatchlogsbeat/releases/9385505","Warn: release artifact v1.0.0 does not have provenance: https://api.github.com/repos/e-travel/cloudwatchlogsbeat/releases/8791278"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 18 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0391 / GHSA-6jvc-q2x7-pchv / GHSA-76wf-9vgp-pj7w","Warn: Project is vulnerable to: GO-2022-0635 / GHSA-7f33-f4f5-xwgw","Warn: Project is vulnerable to: GO-2022-0646 / GHSA-f5pg-7wfw-84q9","Warn: Project is vulnerable to: GO-2023-2413 / GHSA-hj4r-2c9c-29h3"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T11:14:30.427Z","repository_id":55586037,"created_at":"2025-08-18T11:14:30.427Z","updated_at":"2025-08-18T11:14:30.427Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28339240,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cloudwatch","elastic","elasticsearch","golang","logs","logstash"],"created_at":"2026-01-12T13:34:49.977Z","updated_at":"2026-01-12T13:34:50.067Z","avatar_url":"https://github.com/e-travel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Travis Build Status](https://travis-ci.org/e-travel/cloudwatchlogsbeat.svg?branch=master)](https://travis-ci.org/e-travel/cloudwatchlogsbeat)\n[![Go Report\nCard](https://goreportcard.com/badge/github.com/e-travel/cloudwatchlogsbeat)](https://goreportcard.com/report/github.com/e-travel/cloudwatchlogsbeat)\n\n# Cloudwatchlogsbeat\n\nCloudwatchlogsbeat is a [beat](https://www.elastic.co/products/beats)\nfor the [elastic stack](https://www.elastic.co/products). Its purpose\nis to harvest data from AWS Cloudwatch Log Groups and ship them to a\nvariety of sinks that include logstash, elasticsearch etc. The beat is\nproduction-tested and is currently being used to harvest some\nthousands of stream events per minute.\n\n# Description\n\nCloudwatchlogsbeat operates by monitoring a set of AWS Cloudwatch Log\nGroups specified in its [configuration](cloudwatchlogsbeat.yml),\nwhich also defines a set of configuration values that influence the\nbeat's operational behaviour. In general, the log groups are\nperiodically probed for new streams which are then polled for new\nevents.\n\nThe state of the beat is saved in a user-specified S3 bucket on a\nper-stream basis. This way, the beat knows what is the last event that\nwas harvested per stream and can resume its operation once restarted.\n\nThe beat is fully concurrent in terms of the monitored log groups and\nstreams and makes use of AWS SDK's exponential back-off retry policy\nfor all its requests to the AWS APIs. However, the beat's operation is\nsubject to AWS limitations and throttling policies which are\nsummarized\n[here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html).\n\nThrottling errors are dealt with gracefully without losing stream\nevents (stream monitoring is resumed from where it left off) and can\nbe mitigated to some degree by tuning the beat's configuration with\nrespect to the various refresh frequencies. The beat also defines two\nkinds of streams, frequently updated (aka hot) and standard, which can\nbe configured differently to further control/reduce the rate of AWS\nAPI requests.\n\n# Setup / Installation\n\n## Binaries\n\nThe latest beat release can be found\n[here](https://github.com/e-travel/cloudwatchlogsbeat/releases/latest).\n\n## Development\n\nMake sure you use Go of at least version 1.14 for module \nsupport.\n\nThe following steps will result in a working installation:\n\n    $ git clone github.com/e-travel/cloudwatchlogsbeat\n    $ cd cloudwatchlogsbeat\n    $ go mod vendor\n    $ go build -mod=vendor -i # builds the beat and builds/installs the dependencies\n    $ ./cloudwatchlogsbeat -e -d '*'\n\n# AWS configuration\n\nCloudwatchlogsbeat authenticates with AWS services using\nthe\n[standard AWS guidelines](https://aws.amazon.com/blogs/security/a-new-and-standardized-way-to-manage-credentials-in-the-aws-sdks/). This\nmeans that the following environmental variables need to be set for\nthe program to use:\n\n    AWS_ACCESS_KEY_ID\n    AWS_SECRET_ACCESS_KEY\n\nAlternatively, if there are profiles setup in the file\n`~/.aws/credentials`, the following environmental variables are\nnecessary:\n\n    AWS_PROFILE\n\nThe AWS region must be set in the beat's configuration file.\n\nIf the beat is deployed to an EC2 instance, there's also the option of\nan IAM Role that is attached to the EC2 instance. In this case, the\nactions that must be allowed in the IAM policy document are as\nfollows:\n\n```\nlogs:GetLogEvents\nlogs:FilterLogEvents\nlogs:Describe*\n```\n\nplus permissions to the S3 bucket resource:\n```\ns3:GetObject\ns3:ListBucket\ns3:HeadObject\ns3:PutObject\n```\n\nA common pitfall in S3 persmissions is that the target resources\nshould include both the bucket and its contents as follows:\n\n```\narn:aws:s3:::BUCKET_NAME\narn:aws:s3:::BUCKET_NAME/*\n```\n\n# Tests\n\nThe beat's tests can be executed as follows:\n\n    $ go test -v -cover ./...\n\nThe test coverage report can be generated by adding the\n`-coverprofile=coverage.out` switch to the above command. The\ngenerated `coverage.out` file can be then viewed using:\n\n    $ go tool cover -html=coverage.out\n\n# Docker\n\nHere are steps to build and push a Docker version\n\n```bash\ndocker build -t e-travel/cloudwatchlogsbeat .\ndocker push e-travel/cloudwatchlogsbeat\n```\n\n# Contributing\n\nBug reports and pull requests are welcome on GitHub at\nhttps://github.com/e-travel/cloudwatchlogsbeat. This project is\nintended to be a safe, welcoming space for collaboration, and\ncontributors are expected to adhere to\nthe [Contributor Covenant](http://contributor-covenant.org) code of\nconduct.\n\n\n# License\n\nThe beat is available as open source under the terms of\nthe [MIT License](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-travel%2Fcloudwatchlogsbeat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fe-travel%2Fcloudwatchlogsbeat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-travel%2Fcloudwatchlogsbeat/lists"}