opstree_devops.elastalert
Ansibleロール: ElastAlert
======================== このロールは、ユーザーによって定義された関連アラート設定とともに、elastalertのインストールとセットアップを行います。
バージョン履歴
日付 | バージョン | 説明 | 変更者 |
---|---|---|---|
2020年6月27日 | v0.0.1 | 初版 | Ashutosh Mishra |
2021年1月11日 | v0.0.2 | ルール管理の更新 | Paul Belloc @NanoPish for https://perfmaker.com/ |
主な機能
- このロールは、ElastAlertを使用してアラートのセットアップを自動化します。 このロールでは、elastalertルールファイルを添付できます。
サポートされているOS
- 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を使用 | elastalert_upload_local_rules_dirからelastalert_rules_dirへルールをアップロードする場合は必須 |
elastalert_delete_rules_not_in_elastalert_upload_local_rules_dir | yes | elastalert_upload_local_rules_dirに存在しないルールを削除します | 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
今後の提案される変更
- CentOS 6、7のelastalertを更新します。
参考資料
作者情報
名前: Ashutosh Mishra
メール: [email protected]
インストール
ansible-galaxy install opstree_devops.elastalert
ライセンス
Unknown
ダウンロード
77
所有者