search
数据采集 采集源配置 ansible 数据采集

ansible 数据采集

简介

采集ansible task playbook 数据并上报到 DataFlux 中。

前置条件

  • 已安装 DataKit(DataKit 安装文档
  • python 脚本 task_info.py 在 datakit 安装目录下的 externals/ansible/ 中
  • 需要将 python 脚本放到 ansible.cfg callback plugin 指定目录 callback_plugins = /x/x
  • 安装 python 脚本所需环境 pip install -r requirement.txt
  • ansible 中需配置 bin_ansible_callbacks = True
  • ansible 中需启动callback plugin 白名单 callback_whitelist = task_info

配置

进入 DataKit 安装目录下的 conf.d/ansible 目录,复制 ansible.conf.sample 并命名为 ansible.conf。示例如下:

    [[inputs.ansible]]
        path = "/ansible"  # 此处的path建议默认 如需更改 还需更改python脚本中的路径 

打开 datakit 安装目录下的 externals/ansible/task_info.py 脚本,配置 DOCUMENTATION

设置:

callback: task_info
    type: notification
    short_description: write playbook output to es
    description:
        - this plugins will output task_info to datakit
    requirements:
        - pip install -r requests.txt
        - set Whitelist in ansible.cfg
        - move plugins info  callback dir set in ansible.cfg
    options:
        output_task_stats:
            version_added: '2.9'
            default: ["unreachable","failed","ok"]   # 将列表中三种task状态的数据打入 keyevent 更改此处即可
            description: choose task stats
            env:
              - name: ANSIBLE_TASK_INFO
            ini:
              - section: callback_task_info
                key: output_task_stats
        datakit_host :
            version_added: '2.9'
            default: 'http://0.0.0.0:9529'  # 配置 datakit host 要跟 datakit配置一致
            description: choose task stats
            env:
              - name: ANSIBLE_TASK_INFO
            ini:
              - section: callback_task_info
                key: datakit_host

采集数据

指标集:play_book_stats

fields

指标 类型
changed int
failures int
ignored int
ok int
rescued int
skipped int
unreachable int

tag

tag 描述
host host
play_book_name play_book_name

关键事件

tag

tag 描述
__source 来源 此处ansible
__status 由 ansible原生状态映射到dataflux官方指定状态
ansible_status ansible 原有任务状态
host host