sensu.sensu_go.check (1.14.0) — module

Manage Sensu checks

| "added in version" 1.0.0 of sensu.sensu_go"

Authors: Paul Arthur (@flowerysong), Aljaz Kosir (@aljazkosir), Miha Plesko (@miha-plesko), Tadej Borovsak (@tadeboro)

stableinterface | supported by certified

Install collection

Install with ansible-galaxy collection install sensu.sensu_go:==1.14.0


Add to requirements.yml

  collections:
    - name: sensu.sensu_go
      version: 1.14.0

Description

Create, update or delete Sensu Go check.

For more information, refer to the Sensu Go documentation at U(https://docs.sensu.io/sensu-go/latest/reference/checks/).


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Check executing command every 30 seconds
  sensu.sensu_go.check:
    name: check
    command: check-cpu.sh -w 75 -c 90
    subscriptions:
      - checks
    interval: 30
    publish: yes
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Check executing command with cron scheduler
  sensu.sensu_go.check:
    name: check
    command: check-cpu.sh -w 75 -c 90
    subscriptions:
      - systems
    handlers:
      - slack
    cron: "* * * * *"
    publish: yes
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ad-hoc scheduling
  sensu.sensu_go.check:
    name: check
    command: check-cpu.sh -w 75 -c 90
    subscriptions:
      - systems
    handlers:
      - slack
    interval: 60
    publish: no
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Report events under proxy entity name instead of agent entity
  sensu.sensu_go.check:
    name: check
    command: http_check.sh https://sensu.io
    subscriptions:
      - proxy
    handlers:
      - slack
    interval: 60
    proxy_entity_name: sensu-site
    round_robin: yes
    publish: yes
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Event that triggers hooks
  sensu.sensu_go.check:
    name: check
    command: http_check.sh https://sensu.io
    subscriptions: [ proxy ]
    # The upstream JSON payload for the hooks below would look like this:
    #
    #   "check_hooks": [
    #     {"0": ["passing-hook", "always-run-this-hook"]},
    #     {"critical": ["failing-hook", "always-run-this-hook"]}
    #   ]
    #
    # Ansible task simplifies this structure into a simple mapping:
    check_hooks:
      "0":
        - passing-hook
        - always-run-this-hook
      critical:
        - failing-hook
        - always-run-this-hook
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Remove check
  sensu.sensu_go.check:
    name: my-check
    state: absent

Inputs

    
ttl:
    description:
    - Amount of time after which a check result is considered stale.
    type: int

auth:
    description:
    - Authentication parameters. Can define each of them with ENV as well.
    suboptions:
      api_key:
        description:
        - The API key that should be used when authenticating. If this is not set, the
          value of the SENSU_API_KEY environment variable will be checked.
        - This replaces I(auth.user) and I(auth.password) parameters.
        - For more information about the API key, refer to the official Sensu documentation
          at U(https://docs.sensu.io/sensu-go/latest/guides/use-apikey-feature/).
        type: str
        version_added: 1.3.0
        version_added_collection: sensu.sensu_go
      ca_path:
        description:
        - Path to the CA bundle that should be used to validate the backend certificate.
        - If this parameter is not set, module will use the CA bundle that python is using.
        - It is also possible to set this parameter via the I(SENSU_CA_PATH) environment
          variable.
        type: path
        version_added: 1.5.0
        version_added_collection: sensu.sensu_go
      password:
        default: P@ssw0rd!
        description:
        - The Sensu user's password. If this is not set the value of the SENSU_PASSWORD
          environment variable will be checked.
        - This parameter is ignored if the I(auth.api_key) parameter is set.
        type: str
      url:
        default: http://localhost:8080
        description:
        - Location of the Sensu backend API. If this is not set the value of the SENSU_URL
          environment variable will be checked.
        type: str
      user:
        default: admin
        description:
        - The username to use for connecting to the Sensu API. If this is not set the
          value of the SENSU_USER environment variable will be checked.
        - This parameter is ignored if the I(auth.api_key) parameter is set.
        type: str
      verify:
        default: true
        description:
        - Flag that controls the certificate validation.
        - If you are using self-signed certificates, you can set this parameter to C(false).
        - ONLY USE THIS PARAMETER IN DEVELOPMENT SCENARIOS! In you use self-signed certificates
          in production, see the I(auth.ca_path) parameter.
        - It is also possible to set this parameter via the I(SENSU_VERIFY) environment
          variable.
        type: bool
        version_added: 1.5.0
        version_added_collection: sensu.sensu_go
    type: dict

cron:
    description:
    - Schedule check requests using crontab syntax.
    - Cannot be used when I(interval) option is used.
    type: str

name:
    description:
    - The Sensu resource's name. This name (in combination with the namespace where applicable)
      uniquely identifies the resource that Ansible operates on.
    - If the resource with selected name already exists, Ansible module will update it
      to match the specification in the task.
    - Consult the I(name) metadata attribute specification in the upstream docs on U(https://docs.sensu.io/sensu-go/latest/reference/)
      for more details about valid names and other restrictions.
    required: true
    type: str

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Target state of the Sensu object.
    type: str

stdin:
    description:
    - Enables writing of serialized JSON data to the check command's stdin.
    - Only usable with checks written specifically for Sensu Go.
    type: bool

labels:
    default: {}
    description:
    - Custom metadata fields that can be accessed within Sensu, as key/value pairs.
    type: dict

command:
    description:
    - Check command to run.
    - Required if I(state) is C(present).
    type: str

publish:
    description:
    - Enables or disables scheduled publication of check requests.
    type: bool

secrets:
    description:
    - List of secrets that are available to the command.
    elements: dict
    suboptions:
      name:
        description:
        - Variable name that will contain the sensitive data.
        required: true
        type: str
        version_added: 1.6.0
        version_added_collection: sensu.sensu_go
      secret:
        description:
        - Name of the secret that contains sensitive data.
        required: true
        type: str
        version_added: 1.6.0
        version_added_collection: sensu.sensu_go
    type: list
    version_added: 1.6.0
    version_added_collection: sensu.sensu_go

timeout:
    description:
    - Check execution timeout.
    type: int

env_vars:
    description:
    - A mapping of environment variable names and values to use with command execution.
    type: dict

handlers:
    description:
    - List of handlers which receive check results.
    elements: str
    type: list

interval:
    description:
    - Check request interval.
    - Cannot be used when I(cron) option is used.
    type: int

namespace:
    default: default
    description:
    - RBAC namespace to operate in. If this is not set the value of the SENSU_NAMESPACE
      environment variable will be used.
    type: str

annotations:
    default: {}
    description:
    - Custom metadata fields with fewer restrictions, as key/value pairs.
    - These are preserved by Sensu but not accessible as tokens or identifiers, and are
      mainly intended for use with external tools.
    type: dict

check_hooks:
    description:
    - A mapping of response codes to hooks which will be run by the agent when that code
      is returned.
    - Note that the structure of this parameter is a bit different from the one described
      at U(https://docs.sensu.io/sensu-go/latest/reference/checks/#check-hooks-attribute).
    - See check hooks example below for more information on exact mapping structure.
    type: dict

round_robin:
    description:
    - An array of environment variables to use with command execution.
    type: bool

subscriptions:
    description:
    - List of subscriptions which receive check requests.
    - Required if I(state) is C(present).
    elements: str
    type: list

proxy_requests:
    description:
    - Allows you to assign the check to run for multiple entities according to their entity_attributes.
    suboptions:
      entity_attributes:
        description:
        - List of attribute checks for determining which proxy entities this check should
          be scheduled against.
        elements: str
        type: list
      splay:
        description:
        - Enables or disables splaying of check request scheduling.
        type: bool
      splay_coverage:
        description:
        - Percentage of the C(interval) over which to splay checks.
        type: int
    type: dict

runtime_assets:
    description:
    - List of runtime assets required to run the check.
    elements: str
    type: list

proxy_entity_name:
    description:
    - Entity name to associate this check with instead of the agent it ran on.
    type: str

low_flap_threshold:
    description:
    - Low flap threshold.
    type: int

high_flap_threshold:
    description:
    - High flap threshold.
    type: int

output_metric_format:
    choices:
    - graphite_plaintext
    - influxdb_line
    - nagios_perfdata
    - opentsdb_line
    description:
    - Enable parsing of metrics in the specified format from this check's output.
    type: str

output_metric_handlers:
    description:
    - List of handlers which receive check results. I'm not sure why this exists.
    elements: str
    type: list

Outputs

object:
  description: Object representing Sensu check.
  returned: success
  sample:
    command: collect.sh
    handlers:
    - slack
    interval: 10
    metadata:
      name: check_minimum
      namespace: default
    publish: true
    subscriptions:
    - system
  type: dict

See also