logdna.logdna

CircleCI

使用 Ansible 部署 LogDNA Agent

描述

Ansible Galaxy 角色用于安装和配置 LogDNA Agent。

需求

  • Ansible 版本:>=2.1
  • 已在以下操作系统上测试:
    • CentOS 6
    • CentOS 7
    • Ubuntu 12.04 - Precise
    • Ubuntu 14.04 - Trusty
    • Ubuntu 16.04 - Xenial
    • Ubuntu 17.10 - Artful
    • Debian 8 - Jessie

角色变量

任务特定变量

  • agent_install:如果要安装则为 true(默认值:true
  • agent_config:如果要配置则为 true(默认值:true
  • agent_service:(默认值:started),支持:
    • started:如果指定了 conf_key,则启动 LogDNA Agent 服务
    • restarted:重启 LogDNA Agent 服务
    • stopped:停止 LogDNA Agent 服务。

配置变量

这些变量与 LogDNA Agent 的本地配置选项直接对应:

  • conf_key:LogDNA 采集密钥 - 如果未指定 conf_key,LogDNA Agent 服务将无法启动
  • conf_config:LogDNA Agent 配置的文件路径(默认值为 /etc/logdna.conf
  • conf_logdir:要添加的日志目录
  • conf_logfile:要添加的日志文件
  • conf_exclude:要排除的日志文件或目录
  • conf_exclude_regex:日志行的排除规则
  • conf_hostname:要使用的替代主机名
  • conf_tags:要添加的标签。

如何安装

  • 从 Ansible Galaxy 在线安装:ansible-galaxy install logdna.logdna
  • 从源代码直接安装:ansible-galaxy install git+https://github.com/logdna/ansible-logdna.git

示例 Playbook

- hosts: <hosts>
  vars:
    conf_key: <LogDNA 采集密钥>
  roles:
     - { role: logdna.logdna }

使用案例

  • 在指定主机上安装、配置并启动服务:
- hosts: <hosts>
  vars:
    conf_key: <LogDNA 采集密钥>
    # 所有其他配置参数的说明
  roles:
     - { role: logdna.logdna }
  • 在指定主机上重新配置并重启服务:
- hosts: <hosts>
  vars:
    # 重新配置的参数说明
    agent_service: restarted
  roles:
     - { role: logdna.logdna }
  • 仅安装,但不配置或触碰服务:
- hosts: <hosts>
  vars:
    # 不设置 LogDNA 采集密钥
    agent_config: false
  roles:
     - { role: logdna.logdna }
  • 停止服务:
- hosts: <hosts>
  vars:
    agent_install: false
    agent_config: false
    agent_service: stopped
  roles:
     - { role: logdna.logdna }

LogDNA 回调插件

LogDNA 回调插件是一个处理程序,用于将每次 ansible-playbook 运行中的日志发送到 LogDNA。目前支持以下类别的日志:STATSFAILEDOKUNREACHABLEASYNC_FAILEDASYNC_OK。可以通过以下方式配置:

  • 如果未安装 LogDNA Agent Python 包,请根据您使用的 Python 版本使用以下命令之一进行安装:pip install logdnapip3 install logdna
  • 如果您使用的 Ansible 版本低于 v2.6(即 <= v2.5),请进行以下步骤:
    • 这里 下载插件到回调插件文件夹。可以通过以下命令找到该文件夹: echo $(ansible-doc -F | awk 'FNR == 1 {print $2}' | sed 's/\/modules/+/g' | cut -d'+' -f 1)/plugins/callback
  • 如果您的系统上没有 ansible.cfg,请按以下步骤操作:
    • 通过 mkdir -p /etc/ansible 确保 /etc/ansible 文件夹存在
    • 这里 下载 ansible.cfg/etc/ansible/
  • 执行 ANSIBLE_CONFIG=< ansible.cfg 的路径 >
  • 打开 ansible.cfg 并进行以下步骤:
    • 如果被注释,请取消注释包含 callback_whitelist 的行,并附加 logdna
    • 如果被注释,请取消注释包含 callback_plugins 的行,并更新回调插件的路径
  • 为了使插件工作,以下环境变量应设置:
    • LOGDNA_INGESTION_KEY:用于流式传输日志的 LogDNA 采集密钥 - 必需
    • ANSIBLE_IGNORE_ERRORS:是否在失败时忽略错误;默认为 False - 可选
    • LOGDNA_HOSTNAME:在日志中使用的替代主机名 - 可选
    • LOGDNA_TAGS:以逗号分隔的标签列表;默认为 ansible - 可选

贡献

欢迎任何贡献。请查看 贡献指南 了解您如何提供帮助。

许可证和作者

关于项目

Ansible Galaxy Role to install and configure LogDNA Agent

安装
ansible-galaxy install logdna.logdna
许可证
mit
下载
11.3k
拥有者
Supercharge Observability With Mezmo Telemetry Pipeline