sensu.sensu_go.check 模块 – 管理 Sensu 检查

注意

此模块是 sensu.sensu_go 集合 (版本 1.14.0) 的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install sensu.sensu_go。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:sensu.sensu_go.check

注意

由于违反了 Ansible 包含要求,sensu.sensu_go 集合将从 Ansible 12 中移除。该集合有未解决的健全性测试失败。有关更多信息,请参阅 讨论线程

sensu.sensu_go 1.0.0 中的新增功能

概要

要求

执行此模块的主机需要满足以下要求。

  • python >= 2.7

参数

参数

注释

annotations

字典

自定义元数据字段,限制较少,为键/值对。

这些字段由 Sensu 保留,但不能作为令牌或标识符访问,主要用于外部工具。

默认值: {}

auth

字典

身份验证参数。也可以使用 ENV 定义每个参数。

api_key

字符串

在 sensu.sensu_go 1.3.0 中添加

身份验证时应使用的 API 密钥。如果未设置此项,将检查 SENSU_API_KEY 环境变量的值。

这将替换 auth.userauth.password 参数。

有关 API 密钥的更多信息,请参阅官方 Sensu 文档 https://docs.sensu.io/sensu-go/latest/guides/use-apikey-feature/

ca_path

路径

在 sensu.sensu_go 1.5.0 中添加

应使用以验证后端证书的 CA 捆绑包的路径。

如果未设置此参数,模块将使用 python 正在使用的 CA 捆绑包。

也可以通过 SENSU_CA_PATH 环境变量设置此参数。

password

字符串

Sensu 用户的密码。如果未设置此项,将检查 SENSU_PASSWORD 环境变量的值。

如果设置了 auth.api_key 参数,则忽略此参数。

默认值: "P@ssw0rd!"

url

字符串

Sensu 后端 API 的位置。如果未设置此项,将检查 SENSU_URL 环境变量的值。

默认值: "https://127.0.0.1:8080"

user

字符串

用于连接到 Sensu API 的用户名。如果未设置此项,将检查 SENSU_USER 环境变量的值。

如果设置了 auth.api_key 参数,则忽略此参数。

默认值: "admin"

verify

布尔值

在 sensu.sensu_go 1.5.0 中添加

控制证书验证的标志。

如果您使用的是自签名证书,则可以将此参数设置为 false

仅在开发场景中使用此参数!如果您在生产中使用自签名证书,请参阅 auth.ca_path 参数。

也可以通过 SENSU_VERIFY 环境变量设置此参数。

选择

  • false

  • true ← (默认)

check_hooks

字典

响应代码到钩子的映射,该钩子将在返回该代码时由代理运行。

请注意,此参数的结构与 https://docs.sensu.io/sensu-go/latest/reference/checks/#check-hooks-attribute 中描述的结构略有不同。

有关确切的映射结构的更多信息,请参阅下面的检查钩子示例。

command

字符串

要运行的检查命令。

如果 statepresent,则为必需项。

cron

字符串

使用 crontab 语法安排检查请求。

使用 interval 选项时不能使用。

env_vars

字典

要与命令执行一起使用的环境变量名称和值的映射。

handlers

列表 / 元素=字符串

接收检查结果的处理程序的列表。

high_flap_threshold

整数

高抖动阈值。

interval

整数

检查请求间隔。

使用 cron 选项时不能使用。

labels

字典

可以在 Sensu 中访问的自定义元数据字段,为键/值对。

默认值: {}

low_flap_threshold

整数

低抖动阈值。

name

字符串 / 必需

Sensu 资源的名称。此名称(与适用的命名空间结合使用)唯一标识 Ansible 操作的资源。

如果具有所选名称的资源已存在,则 Ansible 模块将更新它以匹配任务中的规范。

有关有效名称和其他限制的更多详细信息,请参阅上游文档中关于 https://docs.sensu.io/sensu-go/latest/reference/name 元数据属性规范。

namespace

字符串

要操作的 RBAC 命名空间。如果未设置此项,将使用 SENSU_NAMESPACE 环境变量的值。

默认值: "default"

output_metric_format

字符串

启用从此检查的输出中解析指定格式的指标。

选择

  • "graphite_plaintext"

  • "influxdb_line"

  • "nagios_perfdata"

  • "opentsdb_line"

output_metric_handlers

列表 / 元素=字符串

接收检查结果的处理程序列表。我不确定为什么会存在这个。

proxy_entity_name

字符串

与此检查关联的实体名称,而不是运行该检查的代理。

proxy_requests

字典

允许您根据实体属性指定多个实体运行该检查。

entity_attributes

列表 / 元素=字符串

用于确定应针对哪些代理实体安排此检查的属性检查列表。

splay

布尔值

启用或禁用检查请求调度的错开。

选择

  • false

  • true

splay_coverage

整数

interval 中错开检查的百分比。

publish

布尔值

启用或禁用计划的检查请求发布。

选择

  • false

  • true

round_robin

布尔值

用于命令执行的环境变量数组。

选择

  • false

  • true

runtime_assets

列表 / 元素=字符串

运行检查所需的运行时资产列表。

secrets

list / elements=dictionary

在 sensu.sensu_go 1.6.0 中添加

可用于命令的秘密列表。

name

字符串 / 必需

在 sensu.sensu_go 1.6.0 中添加

包含敏感数据的变量名称。

secret

字符串 / 必需

在 sensu.sensu_go 1.6.0 中添加

包含敏感数据的秘密名称。

state

字符串

Sensu 目标对象的状态。

选择

  • "present" ←(默认)

  • "absent"

stdin

布尔值

启用将序列化的 JSON 数据写入检查命令的 stdin。

仅可用于专门为 Sensu Go 编写的检查。

选择

  • false

  • true

subscriptions

列表 / 元素=字符串

接收检查请求的订阅列表。

如果 statepresent,则为必需项。

timeout

整数

检查执行超时。

ttl

整数

检查结果被视为过时的时间量。

另请参阅

另请参阅

sensu.sensu_go.check_info

列出 Sensu 检查。

示例

- 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

- 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

- 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

- 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

- 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

- name: Remove check
  sensu.sensu_go.check:
    name: my-check
    state: absent

返回值

常见的返回值记录在这里,以下是此模块独有的字段

描述

对象

字典

表示 Sensu 检查的对象。

已返回: 成功

示例: {"command": "collect.sh", "handlers": ["slack"], "interval": 10, "metadata": {"name": "check_minimum", "namespace": "default"}, "publish": true, "subscriptions": ["system"]}

作者

  • Paul Arthur (@flowerysong)

  • Aljaz Kosir (@aljazkosir)

  • Miha Plesko (@miha-plesko)

  • Tadej Borovsak (@tadeboro)