atosatto.alertmanager
Ansibleロール: Alertmanager
PrometheusのAlertmanagerをインストールし、設定します。
要件
Ansible 2.2以上のインストールが必要です。
このロールはAnsibleのjson_filter
を使用し、Ansibleマシンにjmespath
がインストールされている必要があります。
requirements.txt
ファイルには、ロールに必要なjmespath
の特定のバージョンについての詳細が記載されています。
ロール変数
利用可能な変数は以下にリストされており、デフォルト値が示されています(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
著者情報
アンドレア・トサット(@_hilbert_)
Install and Configure Prometheus Alertmanager
ansible-galaxy install atosatto.alertmanager