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]
プロジェクトについて

Elastalert ansible role

インストール
ansible-galaxy install opstree_devops.elastalert
ライセンス
Unknown
ダウンロード
77
所有者