{"id":13581995,"url":"https://github.com/maxwo/snmp_notifier","last_synced_at":"2026-01-22T18:45:02.907Z","repository":{"id":39833996,"uuid":"163203024","full_name":"maxwo/snmp_notifier","owner":"maxwo","description":"A webhook to relay Prometheus alerts as SNMP traps, because sometimes, you have to deal with legacy","archived":false,"fork":false,"pushed_at":"2026-01-01T19:13:37.000Z","size":1977,"stargazers_count":69,"open_issues_count":12,"forks_count":38,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-03T00:21:01.792Z","etag":null,"topics":["alert","alerting","alertmanager","centreon","golang","nagios","notification","prometheus","snmp","snmpv2","snmpv3","trap","webhook"],"latest_commit_sha":null,"homepage":"","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/maxwo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-12-26T17:33:46.000Z","updated_at":"2025-12-30T10:22:27.000Z","dependencies_parsed_at":"2023-11-25T09:42:20.170Z","dependency_job_id":"0a958608-d8eb-4471-93b9-736229f9e162","html_url":"https://github.com/maxwo/snmp_notifier","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/maxwo/snmp_notifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxwo%2Fsnmp_notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxwo%2Fsnmp_notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxwo%2Fsnmp_notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxwo%2Fsnmp_notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxwo","download_url":"https://codeload.github.com/maxwo/snmp_notifier/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxwo%2Fsnmp_notifier/sbom","scorecard":{"id":630150,"data":{"date":"2025-08-11","repo":{"name":"github.com/maxwo/snmp_notifier","commit":"d6e01bb9ae2848e6c1e300f337d141307c5ad415"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.6,"checks":[{"name":"Maintained","score":7,"reason":"6 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 7","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":1,"reason":"Found 3/20 approved changesets -- score normalized to 1","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":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: SECURITY.md:1"],"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/automerge-dependabot.yml:15","Info: jobLevel 'packages' permission set to 'read': .github/workflows/codeql.yml:35","Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:38","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:39","Info: topLevel 'contents' permission set to 'read': .github/workflows/automerge-dependabot.yml:10","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/container_description.yml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/fuzzing.yml:5"],"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":"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":"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":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"Pinned-Dependencies","score":6,"reason":"dependency not pinned by hash detected -- score normalized to 6","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/maxwo/snmp_notifier/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/maxwo/snmp_notifier/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:97: update your workflow using https://app.stepsecurity.io/secureworkflow/maxwo/snmp_notifier/codeql.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/fuzzing.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/maxwo/snmp_notifier/fuzzing.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/fuzzing.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/maxwo/snmp_notifier/fuzzing.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:4","Warn: containerImage not pinned by hash: Dockerfile:14","Info:   7 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   7 out of   9 third-party GitHubAction dependencies pinned","Info:   0 out of   2 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":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.1.0 not signed: https://api.github.com/repos/maxwo/snmp_notifier/releases/240192302","Warn: release artifact v2.0.0 not signed: https://api.github.com/repos/maxwo/snmp_notifier/releases/217783501","Warn: release artifact v1.6.2 not signed: https://api.github.com/repos/maxwo/snmp_notifier/releases/213667927","Warn: release artifact v1.6.1 not signed: https://api.github.com/repos/maxwo/snmp_notifier/releases/199717438","Warn: release artifact v1.6.0 not signed: https://api.github.com/repos/maxwo/snmp_notifier/releases/177459349","Warn: release artifact v2.1.0 does not have provenance: https://api.github.com/repos/maxwo/snmp_notifier/releases/240192302","Warn: release artifact v2.0.0 does not have provenance: https://api.github.com/repos/maxwo/snmp_notifier/releases/217783501","Warn: release artifact v1.6.2 does not have provenance: https://api.github.com/repos/maxwo/snmp_notifier/releases/213667927","Warn: release artifact v1.6.1 does not have provenance: https://api.github.com/repos/maxwo/snmp_notifier/releases/199717438","Warn: release artifact v1.6.0 does not have provenance: https://api.github.com/repos/maxwo/snmp_notifier/releases/177459349"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"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":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 4 commits out of 20 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"}}]},"last_synced_at":"2025-08-21T07:40:06.427Z","repository_id":39833996,"created_at":"2025-08-21T07:40:06.427Z","updated_at":"2025-08-21T07:40:06.427Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28668317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T17:07:18.858Z","status":"ssl_error","status_checked_at":"2026-01-22T17:05:02.040Z","response_time":144,"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":["alert","alerting","alertmanager","centreon","golang","nagios","notification","prometheus","snmp","snmpv2","snmpv3","trap","webhook"],"created_at":"2024-08-01T15:02:22.406Z","updated_at":"2026-01-22T18:45:02.898Z","avatar_url":"https://github.com/maxwo.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# SNMP Notifier\n\n[![CircleCI](https://circleci.com/gh/maxwo/snmp_notifier/tree/main.svg?style=svg)](https://circleci.com/gh/maxwo/snmp_notifier/tree/main)\n[![Go Report Card](https://goreportcard.com/badge/github.com/maxwo/snmp_notifier)](https://goreportcard.com/report/github.com/maxwo/snmp_notifier)\n\n`snmp_notifier` receives alerts from the Prometheus' Alertmanager and routes them as SNMP traps.\n\n## Overview\n\nThe SNMP notifier receives alerts and sends them as SNMP traps to any given SNMP poller.\n\nIt has been created to handle older monitoring and alerting systems such as Nagios or Centreon.\n\nPrometheus' Alertmanager sends the alerts to the SNMP notifier on its HTTP API. The SNMP notifier then looks for OID in the given alerts' labels. Each trap is sent with a unique ID, which allows, if the alert is updated or once it is resolved, to send additional traps with updated status and data.\n\n## Install\n\nThere are various ways to install the SNMP notifier:\n\n### Helm Chart\n\nThe SNMP notifier chart is available via the [Prometheus Community Kubernetes Helm Charts](https://github.com/prometheus-community/helm-charts):\n\n```console\nhelm repo add prometheus-community https://prometheus-community.github.io/helm-charts\nhelm install snmp-notifier prometheus-community/alertmanager-snmp-notifier --set 'snmpNotifier.snmpDestinations={my-snmp-server:162}'\n```\n\nRefer to the [chart values](https://github.com/prometheus-community/helm-charts/blob/main/charts/alertmanager-snmp-notifier/values.yaml) to see the available options.\n\n### Docker Images\n\nDocker images are available on the [Docker Hub](https://hub.docker.com/r/maxwo/snmp-notifier).\n\n### Precompiled binaries\n\nPrecompiled binaries are available in the [_release_ section](https://github.com/maxwo/snmp_notifier/releases) of this repository.\n\n### Compiling the binary\n\nCheck out the source code and build it manually:\n\n```console\ngit clone https://github.com/maxwo/snmp_notifier.git\ncd snmp_notifier\nmake build\n./snmp_notifier\n```\n\n## Running and configuration\n\n### Prometheus' alerts configuration\n\nOID may be added to the alert labels to identify the kind of trap to be sent:\n\n---\n\nA default OID is specified in the SNMP notifier if none is found in the alert. This can be useful if you want all the alerts to share the same OID.\n\n---\n\n```yaml\ngroups:\n  - name: service\n    rules:\n      - alert: ServiceIsDown\n        expr: up == 0\n        for: 5m\n        labels:\n          severity: \"critical\"\n          type: \"service\"\n          oid: \"1.3.6.1.4.1.123.0.10.1.1.1.5.1\"\n          environment: \"production\"\n        annotations:\n          description: \"Service {{ $labels.job }} on {{ $labels.instance }} is down\"\n          summary: \"A service is down.\"\n```\n\n### Alertmanager configuration\n\nThe Alertmanager should be configured with the SNMP notifier as alert receiver:\n\n```yaml\nreceivers:\n  - name: \"snmp_notifier\"\n    webhook_configs:\n      - send_resolved: true\n        url: http://snmp.notifier.service:9464/alerts\n```\n\nNote that the `send_resolved` option allows the notifier to update the trap status to normal.\n\n### SNMP notifier configuration\n\nLaunch the `snmp_notifier` executable with the help flag to see the available options.\n\n```console\n$ ./snmp_notifier --help\nusage: snmp_notifier [\u003cflags\u003e]\n\nA tool to relay Prometheus alerts as SNMP traps\n\n\nFlags:\n  -h, --[no-]help                Show context-sensitive help (also try --help-long and --help-man).\n      --web.listen-address=:9464 ...  \n                                 Addresses on which to expose metrics and web interface. Repeatable for multiple addresses. Examples: `:9100` or `[::1]:9100` for http,\n                                 `vsock://:9100` for vsock\n      --web.config.file=\"\"       Path to configuration file that can enable TLS or authentication. See:\n                                 https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md\n      --alert.severity-label=\"severity\"  \n                                 Label where to find the alert severity.\n      --alert.severities=\"critical,warning,info\"  \n                                 The ordered list of alert severities, from more priority to less priority.\n      --alert.default-severity=\"critical\"  \n                                 The alert severity if none is provided via labels.\n      --snmp.version=V2c         SNMP version. V2c and V3 are currently supported.\n      --snmp.destination=127.0.0.1:162 ...  \n                                 SNMP trap server destination.\n      --snmp.retries=1           SNMP number of retries\n      --snmp.timeout=5s          SNMP timeout duration\n      --snmp.community=\"public\"  SNMP community (V2c only). Passing secrets to the command line is not recommended, consider using the SNMP_NOTIFIER_COMMUNITY environment variable\n                                 instead. ($SNMP_NOTIFIER_COMMUNITY)\n      --[no-]snmp.authentication-enabled  \n                                 Enable SNMP authentication (V3 only).\n      --snmp.authentication-protocol=MD5  \n                                 Protocol for password encryption (V3 only). MD5 and SHA are currently supported.\n      --snmp.authentication-username=USERNAME  \n                                 SNMP authentication username (V3 only). Passing secrets to the command line is not recommended, consider using the SNMP_NOTIFIER_AUTH_USERNAME\n                                 environment variable instead. ($SNMP_NOTIFIER_AUTH_USERNAME)\n      --snmp.authentication-password=PASSWORD  \n                                 SNMP authentication password (V3 only). Passing secrets to the command line is not recommended, consider using the SNMP_NOTIFIER_AUTH_PASSWORD\n                                 environment variable instead. ($SNMP_NOTIFIER_AUTH_PASSWORD)\n      --[no-]snmp.private-enabled  \n                                 Enable SNMP encryption (V3 only).\n      --snmp.private-protocol=DES  \n                                 Protocol for SNMP data transmission (V3 only). DES and AES are currently supported.\n      --snmp.private-password=SECRET  \n                                 SNMP private password (V3 only). Passing secrets to the command line is not recommended, consider using the SNMP_NOTIFIER_PRIV_PASSWORD environment\n                                 variable instead. ($SNMP_NOTIFIER_PRIV_PASSWORD)\n      --snmp.security-engine-id=SECURITY_ENGINE_ID  \n                                 SNMP security engine ID (V3 only).\n      --snmp.context-engine-id=CONTEXT_ENGINE_ID  \n                                 SNMP context engine ID (V3 only).\n      --snmp.context-name=CONTEXT_ENGINE_NAME  \n                                 SNMP context name (V3 only).\n      --snmp.engine-start-time=\"\"  \n                                 UNIX timestamp specifying the engine start time in seconds. Defaults to the host boot time.\n      --trap.default-oid=\"1.3.6.1.4.1.98789.1\"  \n                                 Default trap OID.\n      --trap.oid-label=\"oid\"     Label containing a custom trap OID.\n      --trap.resolution-default-oid=TRAP.RESOLUTION-DEFAULT-OID  \n                                 Resolution trap OID, if different from the firing trap OID.\n      --trap.resolution-oid-label=TRAP.RESOLUTION-OID-LABEL  \n                                 Label containing a custom resolution trap OID, if different from the firing trap OID.\n      --trap.default-objects-base-oid=\"1.3.6.1.4.1.98789.2\"  \n                                 Base OID for default trap objects.\n      --trap.description-template=description-template.tpl  \n                                 Trap description template.\n      --trap.user-objects-base-oid=\"1.3.6.1.4.1.98789.3\"  \n                                 Base OID for user-defined trap objects.\n      --trap.user-object=4=user-object-template.tpl ...  \n                                 User object sub-OID and template, e.g. --trap.user-object=4=new-object.template.tpl to add a sub-object to the trap, with the given template file.\n                                 You may add several user objects using that flag several times.\n      --log.level=info           Only log messages with the given severity or above. One of: [debug, info, warn, error]\n      --log.format=logfmt        Output format of log messages. One of: [logfmt, json]\n      --[no-]version             Show application version.\n```\n\nAlso, it is recommended to use the following environment variables to set the SNMP secrets:\n\n| Environment variable        | Configuration                                 | Default |\n| --------------------------- | --------------------------------------------- | ------- |\n| SNMP_NOTIFIER_COMMUNITY     | SNMP community for SNMP v2c                   | public  |\n| SNMP_NOTIFIER_AUTH_USERNAME | SNMP authentication username for SNMP v3      |         |\n| SNMP_NOTIFIER_AUTH_PASSWORD | SNMP authentication password for SNMP v3      |         |\n| SNMP_NOTIFIER_PRIV_PASSWORD | SNMP private (or server) password for SNMP v3 |         |\n\nAny Go template directive may be used in the `trap.description-template` file.\n\n## Examples\n\n### Simple Usage\n\nHere are 2 example traps received with the default configuration. It includes 2 firing alerts sharing the same OID, and 1 resolved alert.\n\nTraps include 3 fields:\n\n- a trap unique ID;\n- the alert/trap status;\n- a description of the alerts.\n\n```console\n$ snmptrapd -m ALL -m +SNMP-NOTIFIER-MIB -f -Of -Lo -c scripts/snmptrapd.conf\n Agent Address: 0.0.0.0\n Agent Hostname: localhost\n Date: 1 - 0 - 0 - 1 - 1 - 1970\n Enterprise OID: .\n Trap Type: Cold Start\n Trap Sub-Type: 0\n Community/Infosec Context: TRAP2, SNMP v2c, community public\n Uptime: 0\n Description: Cold Start\n PDU Attribute/Value Pair Array:\n.iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance = Timeticks: (853395100) 98 days, 18:32:31.00\n.iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.snmpMIBObjects.snmpTrap.snmpTrapOID.0 = OID: .iso.org.dod.internet.private.enterprises.snmpNotifier.snmpNotifierDefaultTrap\n.iso.org.dod.internet.private.enterprises.snmpNotifier.snmpNotifierAlertsObjects.snmpNotifierAlertId = STRING: \"1.3.6.1.4.1.98789[environment=production,label=test]\"\n.iso.org.dod.internet.private.enterprises.snmpNotifier.snmpNotifierAlertsObjects.snmpNotifierAlertSeverity = STRING: \"critical\"\n.iso.org.dod.internet.private.enterprises.snmpNotifier.snmpNotifierAlertsObjects.snmpNotifierAlertDescription = STRING: \"2/3 alerts are firing:\n\nStatus: critical\n- Alert: TestAlert\n  Summary: this is the summary\n  Description: this is the description on job1\n\nStatus: warning\n- Alert: TestAlert\n  Summary: this is the random summary\n  Description: this is the description of alert 1\"\n --------------\n```\n\n### With User Objects\n\nYou may add additional fields thanks to the `--trap.user-object` arguments.\n\nFor instance, the template `{{ len .Alerts }} alerts are firing.` given in the `--trap.user-object=4=alert-count.tpl` argument will produce:\n\n```console\n$ snmptrapd -m ALL -m +SNMP-NOTIFIER-MIB -f -Of -Lo -c scripts/snmptrapd.conf\n Agent Address: 0.0.0.0\n Agent Hostname: localhost\n Date: 1 - 0 - 0 - 1 - 1 - 1970\n Enterprise OID: .\n Trap Type: Cold Start\n Trap Sub-Type: 0\n Community/Infosec Context: TRAP2, SNMP v2c, community public\n Uptime: 0\n Description: Cold Start\n PDU Attribute/Value Pair Array:\n.iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance = Timeticks: (2665700) 7:24:17.00\n.iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.snmpMIBObjects.snmpTrap.snmpTrapOID.0 = OID: .iso.org.dod.internet.private.enterprises.snmpNotifier.snmpNotifierDefaultTrap\n.iso.org.dod.internet.private.enterprises.snmpNotifier.snmpNotifierAlertsObjects.snmpNotifierAlertId = STRING: \"1.3.6.1.4.1.98789[environment=production,label=test]\"\n.iso.org.dod.internet.private.enterprises.snmpNotifier.snmpNotifierAlertsObjects.snmpNotifierAlertSeverity = STRING: \"critical\"\n.iso.org.dod.internet.private.enterprises.snmpNotifier.snmpNotifierAlertsObjects.snmpNotifierAlertDescription = STRING: \"2/3 alerts are firing:\n\nStatus: critical\n- Alert: TestAlert\n  Summary: this is the summary\n  Description: this is the description on job1\n\nStatus: warning\n- Alert: TestAlert\n  Summary: this is the random summary\n  Description: this is the description of alert 1\"\n.iso.org.dod.internet.private.enterprises.snmpNotifier.snmpNotifierAlertsUserObjects.4 = STRING: \"2 alerts are firing.\"\n--------------\n````\n\n## Contributing\n\nIssues, feedback, PR welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxwo%2Fsnmp_notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxwo%2Fsnmp_notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxwo%2Fsnmp_notifier/lists"}