{"id":37212915,"url":"https://github.com/opsvision/snap-plugin-collector-syslog","last_synced_at":"2026-01-15T00:31:41.231Z","repository":{"id":144511892,"uuid":"77624571","full_name":"opsvision/snap-plugin-collector-syslog","owner":"opsvision","description":"Snap-Telemetry collector plugin for Syslog messages","archived":false,"fork":false,"pushed_at":"2017-01-06T22:33:53.000Z","size":50,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-31T09:45:46.635Z","etag":null,"topics":["snap-telemetry-collector","syslog"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opsvision.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2016-12-29T16:17:51.000Z","updated_at":"2017-01-05T20:31:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"310352ac-7019-4330-b95b-ae6927328a20","html_url":"https://github.com/opsvision/snap-plugin-collector-syslog","commit_stats":null,"previous_names":["dishmael/snap-plugin-collector-syslog"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/opsvision/snap-plugin-collector-syslog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsvision%2Fsnap-plugin-collector-syslog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsvision%2Fsnap-plugin-collector-syslog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsvision%2Fsnap-plugin-collector-syslog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsvision%2Fsnap-plugin-collector-syslog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opsvision","download_url":"https://codeload.github.com/opsvision/snap-plugin-collector-syslog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsvision%2Fsnap-plugin-collector-syslog/sbom","scorecard":{"id":711171,"data":{"date":"2025-08-11","repo":{"name":"github.com/opsvision/snap-plugin-collector-syslog","commit":"494690b8e4a0c2bc9f913c7a209bb4a7239f3f0f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","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":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"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":"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":"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":"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"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"}}]},"last_synced_at":"2025-08-22T08:14:28.521Z","repository_id":144511892,"created_at":"2025-08-22T08:14:28.521Z","updated_at":"2025-08-22T08:14:28.521Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28439710,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T22:37:52.437Z","status":"ssl_error","status_checked_at":"2026-01-14T22:37:31.496Z","response_time":107,"last_error":"SSL_read: 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":["snap-telemetry-collector","syslog"],"created_at":"2026-01-15T00:31:40.453Z","updated_at":"2026-01-15T00:31:41.212Z","avatar_url":"https://github.com/opsvision.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nhttp://www.apache.org/licenses/LICENSE-2.0.txt\n\n\nCopyright 2017 OpsVision Solutions\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n--\u003e\n# **Snap-Telemetry Collector for Syslog** [![Build Status](https://travis-ci.org/opsvision/snap-plugin-collector-syslog.svg?branch=master)](https://travis-ci.org/opsvision/snap-plugin-collector-syslog) [![Go Report Card](https://goreportcard.com/badge/github.com/opsvision/snap-plugin-collector-syslog)](https://goreportcard.com/report/github.com/opsvision/snap-plugin-collector-syslog)\n\nThis Snap-Telemetry plugin collects events from Syslog in response to the [wishlist request](https://github.com/intelsdi-x/snap/issues/1117) for this feature.\n\n1. [Getting Started](#getting-started)\n  * [System Requirements](#system-requirements)\n  * [Installation](#installation)\n  * [Configuration and Usage](#configuration-and-usage)\n2. [Documentation](#documentation)\n  * [Collected Metrics](#collected-metrics)\n  * [Examples](#examples)\n  * [Issues and Roadmap](#issues-and-roadmap)\n3. [Acknowledgements](#acknowledgements)\n\n## Getting Started\nRead the system requirements, supported platforms, and installation guide for obtaining and using this Snap plugin.\n### System Requirements \n* [golang 1.7+](https://golang.org/dl/) (needed only for building)\n\n### Operating systems\nAll OSs currently supported by snap:\n* Linux/amd64\n* Darwin/amd64\n\n### Installation\nThe following sections provide a guide for obtaining the Syslog collector plugin.\n\n#### Download\nThe simplest approach is to use ```go get``` to fetch and build the plugin. The following command will place the binary in your ```$GOPATH/bin``` folder where you can load it into snap.\n```\n$ go get github.com/opsvision/snap-plugin-collector-syslog\n```\n\n#### Building\nThe following provides instructions for building the plugin yourself if you decided to downlaod the source. We assume you already have a $GOPATH setup for [golang development](https://golang.org/doc/code.html). The repository utilizes [glide](https://github.com/Masterminds/glide) for library management.\n```\n$ mkdir -p $GOPATH/src/github.com/opsvision\n$ cd $GOPATH/src/github.com/opsvision\n$ git clone http://github.com/opsvision/snap-plugin-collector-syslog\n$ glide up\n[INFO]\tDownloading dependencies. Please wait...\n[INFO]\t--\u003e Fetching updates for ...\n[INFO]\tResolving imports\n[INFO]\t--\u003e Fetching updates for ...\n[INFO]\tDownloading dependencies. Please wait...\n[INFO]\tSetting references for remaining imports\n[INFO]\tExporting resolved dependencies...\n[INFO]\t--\u003e Exporting ...\n[INFO]\tReplacing existing vendor dependencies\n[INFO]\tProject relies on ... dependencies.\n$ go install\n```\n\n#### Source structure\nThe following file structure provides an overview of where the files exist in the source tree. The [syslog.go](https://github.com/opsvision/snap-plugin-collector-syslog/blob/master/syslog/syslog.go) file does all the work.\n```\nsnap-plugin-collector-syslog\n├── glide.yaml\n├── LICENSE\n├── main.go\n├── README.md\n└── syslog\n    ├── syslog.go\n    └── syslog_test.go\n```\n\n### Configuration and Usage\nSet up the [Snap framework](https://github.com/intelsdi-x/snap/blob/master/README.md#getting-started)\n\n#### Load the Plugin\nOnce the framework is up and running, you can load the plugin.\n```\n$ snaptel plugin load snap-plugin-collector-syslog\n$ snaptel metric list\nNAMESPACE                            VERSIONS\n/opsvision/syslog/counter            1\n/opsvision/syslog/event/*/message \t 1\n/opsvision/syslog/event/*/summary    1\n```\n\n#### Task File\nCreate a file called, for example, syslog.yaml shown below or download the example [task file](https://raw.githubusercontent.com/opsvision/snap-plugin-collector-syslog/master/tasks/syslog.yaml). For our task example, we are using a file publisher that outputs the collected content to /tmp/syslog_metrics.log.\n```\n---\n  version: 1\n  schedule:\n    type: \"simple\"\n    interval: \"1s\"\n  max-failures: 10\n  workflow:\n    collect:\n      config:\n        /opsvision/syslog:\n          port: 1514\n          bufsize: 1024\n      metrics:\n        /opsvision/syslog/counter: {}\n        /opsvision/syslog/event/*/summary: {}\n        /opsvision/syslog/event/*/message: {}\n      publish:\n        - plugin_name: \"file\"\n          config:\n            file: \"/tmp/syslog_metrics.log\"\n```\nOnce the task file has been created, you can create and watch the task.\n```\n$ snaptel task create -t syslog.yaml\n$ snaptel task list\nID                                       NAME                                         STATE\nf3ad05b2-3706-4991-ab29-c96e15813893     Task-f3ad05b2-3706-4991-ab29-c96e15813893    Running\n$ snaptel task watch f3ad05b2-3706-4991-ab29-c96e15813893\n```\n\n## Documentation\n### Collected Metrics\nThis plugin has the ability to gather the following metrics:\n\n| Namespace | Description (optional) |\n| ----------|----------------------- |\n| /opsvision/syslog/counter | a 64bit counter representing the number of log messages processed since the start of the collector |\n| /opsvision/syslog/events/[source]/message | the entire syslog payload in JSON format |\n| /opsvision/syslog/events/[source]/summary | the syslog message |\n\n_Note: The [source] will be either the source hostname or IP address._\n\n### Example output\nThe following provides an example of the output from the Syslog collector. Here, the [source] is *localhost*.\n```\n/opsvision/syslog/counter                        39              2017-01-01 10:00:00.000000000 +0000 UTC\n/opsvision/syslog/event/localhost/message        {...}           2017-01-01 10:00:00.000000000 +0000 UTC\n/opsvision/syslog/event/localhost/summary        Test message    2017-01-01 10:00:00.000000000 +0000 UTC\n```\nThe ```/opsvision/syslog/event/[source]/message``` metric will be a JSON string containing the following fields:\n```\n{\n    \"app_name\":\"root\",\n    \"client\":\"127.0.0.1:45147\",\n    \"facility\":1,\n    \"hostname\":\"localhost\",\n    \"message\":\"Test message\",\n    \"msg_id\":\"-\",\n    \"priority\":13,\n    \"proc_id\":\"-\",\n    \"severity\":5,\n    \"structured_data\":\"[meta sequenceId=\\\"15\\\"]\",\n    \"timestamp\":\"2017-01-01T10:00:00Z\",\n    \"tls_peer\":\"\",\n    \"version\":1\n}\n```\n### Issues and Roadmap\n* **Testing:** The testing being done is rudimentary at best. Need to improve the testing in [syslog_test.go](https://github.com/opsvision/snap-plugin-collector-syslog/blob/master/syslog/syslog_test.go).\n* **Syslog Format:** The [Syslog library](https://github.com/mcuadros/go-syslog) being used allows for different formats (RFC3164, RFC6587 or RFC5424). Need to update the code to allow for selection of one of these. Currently, the default is RFC5424.\n* **Leverage a Stream-based Collector Model:** The Snap collector workflow is schedule based. This means that the Syslog collector will spit out null values in the log if there are no messages in the queue. There have been discussions on the Snap Slack #snap-developers channel about a collector that can handle stream data. This will greatly improve the Syslog collector as well as other collection sources such as SNMP Traps, NetFlow, and so on.\n\n_Note: Please let me know if you find a bug or have feedbck on how to improve the collector._\n\n## Acknowledgements\n* Author: [@dishmael](https://github.com/dishmael/)\n* Company: [OpsVision Solutions](https://github.com/opsvision)\n\n### Libraries\n* Syslog Library: [@mcuadros](https://github.com/mcuadros/go-syslog/tree/v2.2.1)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopsvision%2Fsnap-plugin-collector-syslog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopsvision%2Fsnap-plugin-collector-syslog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopsvision%2Fsnap-plugin-collector-syslog/lists"}