atosatto.alertmanager
Ansible 角色:Alertmanager
安装和配置 Prometheus Alertmanager。
要求
需要安装 Ansible 2.2 或更高版本。
此角色使用了需要安装 jmespath
的 Ansible json_filter
。
有关该角色所需的特定版本 jmespath
的更多详细信息,请参见 requirements.txt
文件。
角色变量
可用变量如下所示,连同默认值(见 defaults/main.yml):
alertmanager_release_tag: "latest"
要安装的 Alertmanager 版本。 默认情况下,最新版本发布在 https://github.com/prometheus/alertmanager/releases。
alertmanager_release_url: ""
如果设置,则角色将从提供的 URL 下载 Alertmanager,而不是使用 Alertmanager Github 发布元数据中指示的下载 URL。
alertmanager_user: "alertmanager"
alertmanager_group: "alertmanager"
Alertmanager 系统用户和组。
alertmanager_install_path: "/opt"
包含下载的 Alertmanager 版本文件的目录。
alertmanager_bin_path: "/usr/local/bin"
将 Alertmanager 二进制文件链接到的目录。
alertmanager_config_path: "/etc/alertmanager"
alertmanager_config_file: "alertmanager.yml"
Alertmanager 配置文件和目录
alertmanager_config: {}
存储 Alertmanager 配置的 YAML 字典。
完整的 Alertmanager 配置参考可以在
https://prometheus.io/docs/alerting/configuration/ 找到。
注意:提供的 Alertmanager 配置将与 vars/main.yml
中定义的默认配置合并。
alertmanager_templates_path: "{{ alertmanager_config_path }}/templates"
alertmanager_templates: {}
Alertmanager 模板目录和定义。
alertmanager_config:
templates:
- "{{ alertmanager_templates_path }}/*.tmpl"
alertmanager_templates:
"example": "{{ define "slack.myorg.text" }}https://internal.myorg.net/wiki/alerts/{{ .GroupLabels.app }}/{{ .GroupLabels.alertname }}{{ end}}"
上面的示例展示了如何在 alertmanager_templates_path
目录中创建 example.tmpl
,以及如何配置 Alertmanager 加载它。
alertmanager_listen_address: "127.0.0.1:9093"
Alertmanager Web 服务器监听的 IP 地址和端口。
注意:Alertmanager 指标将在 {{ alertmanager_listen_address }}/metrics
可用。
alertmanager_storage_path: "/var/lib/alertmanager"
alertmanager_storage_retention: "120h"
用于存储 Alertmanager 通知状态和静默的目录。 默认情况下,旧数据将在 120 小时后被删除。
alertmanager_log_level: "info"
Alertmanager 守护进程的日志详细级别。
alertmanager_additional_cli_args: ""
要添加到 Alertmanager 服务单元的附加命令行参数。
有关可用 CLI 参数的完整参考,请参见 alertmanager --help
命令的输出。
依赖关系
无。
示例剧本
$ cat playbook.yml
- name: "安装和配置 Prometheus Alertmanager"
hosts: all
roles:
- { role: atosatto.alertmanager }
测试
测试是通过 Molecule 自动化的。
$ pip install tox
要测试所有场景,运行
$ tox
要运行自定义的 molecule 命令
$ tox -e py27-ansible29 -- molecule test -s alertmanager-latest
许可证
MIT
作者信息
Andrea Tosatto (@_hilbert_)
ansible-galaxy install atosatto.alertmanager