opstree_devops.elastalert
https://galaxy.ansible.com/opstree_devops/elastalert 由 Ashutosh Mishra 提供
Ansible 角色:ElastAlert
此角色用于安装和设置 ElastAlert,并根据用户定义的警报配置进行配置。
版本历史
日期 | 版本 | 描述 | 修改人 |
---|---|---|---|
2020 年 6 月 27 日 | v0.0.1 | 初始草稿 | Ashutosh Mishra |
2021 年 1 月 11 日 | v0.0.2 | 规则管理更新 | Paul Belloc @NanoPish 通过 https://perfmaker.com/ |
主要特性
- 该角色通过 ElastAlert 自动化设置警报。 在此角色中,可以附加 ElastAlert 规则文件。
支持的操作系统
- Ubuntu bionic
- Ubuntu xenial
要求
- python3
- python-pip3
- PyYAML
- setuptools
依赖项
- Elasticsearch
目录结构
├── README.md
├── defaults
│ └── main.yml
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── tasks
│ ├── install.yml
│ ├── main.yml
│ └── service.yml
├── templates
│ ├── config.yaml.j2
│ └── elastalert-systemd.service.j2
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
7 个目录,12 个文件
角色变量
变量 | 默认值 | 描述 | 类型 |
---|---|---|---|
host_name | localhost | Elasticsearch 主机 | 必须 |
es_port | 9200 | Elasticsearch 端口 | 必须 |
elastalert_rules_dir | /opt/elastalert/rules | ElastAlert 规则目录 | 必须 |
elastalert_upload_local_rules_dir | files/elastalert/rules | Ansible 机器上传规则的目录。如果想手动上传,则使用 False | 如果希望角色从 ansible 机器的 elastalert_upload_local_rules_dir 上传规则到 elastalert 机器的 elastalert_rules_dir,则必须 |
elastalert_delete_rules_not_in_elastalert_upload_local_rules_dir | yes | 将删除不在 elastalert_upload_local_rules_dir 中的规则 | 如果希望删除 elastalert 机器上不在 ansible 机器的 elastalert_upload_local_rules_dir 中的规则,则必须 |
elastalert_service_user_name | elastalert | ElastAlert 用户名 | 必须 |
elastalert_service_group_name | elastalert | ElastAlert 组名 | 必须 |
elastalert_data_dir | /opt | 数据目录 | 必须 |
installation_dir | /opt | ElastAlert 安装目录 | 必须 |
elastalert_version | 0.2.1 | ElastAlert 版本 | 必须 |
es_user | elastic | Elasticsearch 用户名 | 如果 ES 中有身份验证,则必须 |
es_pass | password | Elasticsearch 密码 | 如果 ES 中有身份验证,则必须 |
use_ssl | False | 使用 SSL | 可选(仅在需要 SSL 时) |
verify_certs | False | 验证证书 | 可选(仅在需要 SSL 且想验证证书时) |
client_cert | /opt/elastalert/clientcert.cer | SSL 证书 | 可选(仅在需要 SSL 时) |
client_key | /opt/elastalert/clientcert.key | SSL 证书密钥 | 可选(仅在需要 SSL 时) |
示例剧本
简单示例
---
- name: 自动化 ElastAlert 设置
hosts: elastalert
roles:
- role: osm_elastalert
es_pass: password
host_name: "你的 Elasticsearch IP 或域名"
...
带有 HTTP Elasticsearch 身份验证 + SSL + 特定的本地 ElastAlert 规则目录 + 在规则文件中使用的 slack webhook
---
- name: 自动化 ElastAlert 设置
hosts: elastalert
roles:
- role: osm_elastalert
es_pass: password
use_ssl: True
client_cert: /opt/elastalert/clientcert.cer
client_key: /opt/elastalert/clientcert.key
slack_webhook_url: "https://hooks.slack.com/services/your_webhook_url"
host_name: "你的 Elasticsearch IP 或域名"
elastalert_upload_local_rules_dir: files/elastalert/cluster_one_elastalert_rules/
...
运行所有任务
$ ansible-playbook site.yml -i inventory
仅运行与上传和删除规则相关的任务,以同步 elastalert 规则目录与本地 ansible 规则目录的内容
$ ansible-playbook site.yml --tags elastalert,elastalert-rules
清单
清单应如下所示:
[server]
192.xxx.x.xxx ansible_user=ubuntu
未来拟议的更改
- 更新 ElastAlert 到 CentOS 6 和 7。
参考资料
作者信息
姓名:Ashutosh Mishra
邮件:ashutosh.mishra@opstree.com
安装
ansible-galaxy install opstree_devops.elastalert
许可证
Unknown
下载
77
拥有者