entercloudsuite.prometheus-exporter

Ansible Role: prometheus-exporter

ビルドステータス Galaxy

Ubuntu 16.04 (Xenial) に prometheus-exporter をインストールします。

要件

このロールは Ansible 2.4 以上が必要です。

ロール変数

ロールの多くの変数は defaults/main.yml に定義されています。

例のプレイブック

デフォルトの変数で実行します:

- hosts: all
  roles:
    - { role: ansible-prometheus-exporter }

テスト

テストは Molecule を使用して行われます。

Moleculeをインストールするか、docker-compose run --rm molecule を使って、entercloudsuite/molecule プロジェクトのローカル Docker コンテナを実行し、molecule を使用できます。

  1. molecule create を実行して、ローカルエンジン上でターゲットDockerコンテナを起動します。
  2. molecule login を使って、実行中のコンテナにログインします。
  3. ロールファイルを編集します。
  4. molecule/default/requirements.yml ファイルで他の必要なロール(外部)を追加します。
  5. molecule/default/playbook.yml を編集します。
  6. molecule/default/testsフォルダ内でinfraテストをgoos verifierを使用して定義します。
  7. 準備ができたら、molecule converge でAnsibleプレイブックを実行し、molecule verify でテストスイートを実行します。
    convergeプロセスは、ロールの構文チェックを開始します。
    molecule destroy コマンドでDockerコンテナを破棄します。

すべてのステップを1つのコマンドで実行するには、molecule test を実行します。

VMをターゲットにしたロールを実行するには、次のように playbook_deploy.yml ファイルを使用します:

ansible-playbook ansible-prometheus-exporter/molecule/default/playbook_deploy.yml -i VM_IP_OR_FQDN, -u ubuntu --private-key private.pem

さらなる例

node_exporter をデプロイ

プレイブック

簡単な例

- name: すべてのインスタンスにnode_exporterをインストール
  hosts: all
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: node_exporter

もっとオプション

- name: すべてのインスタンスにnode_exporterをインストール
  hosts: all
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: node_exporter
      prometheus_exporter_config_flags:
        '--web.listen-address': '0.0.0.0:9100'
        '--log.level': 'info'

haproxy_exporter をデプロイ

プレイブック

    - role: entercloudsuite.prometheus-exporter
      prometheus_exporter_version: 0.9.0
      prometheus_exporter_name: "haproxy_exporter"
      prometheus_enable_exporter_config_flags: true
      prometheus_exporter_config_flags:
       '--haproxy.scrape-uri': 'unix:/run/haproxy/admin.sock'

HAproxy の設定

stats socket /run/haproxy/admin.sock mode 666 level admin

mysqld_exporter をデプロイ

プレイブック

  hosts: mysql_exporter
  roles:
    - role: entercloudsuite.prometheus-exporter
      prometheus_exporter_name: mysqld_exporter
      prometheus_exporter_version: 0.10.0
      prometheus_environment_variables:
        'DATA_SOURCE_NAME': 'exporter:v3rys3cr3tp4sw0rd@(mysqlhost:3306)/'

mysql の設定

モニタリング用ユーザーの作成

シェル
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
Ansible タスク例 mysql_user モジュール
  - name: モニタリング用のユーザーを作成
    mysql_user:
      name: "exporter"
      host: localhost
      password: "v3rys3cr3tp4sw0rd"
      priv: '*.*:PROCESS,REPLICATION CLIENT,SELECT'
      state: present

blackbox_exporter をデプロイ

設定ファイル https://github.com/prometheus/blackbox_exporter/blob/master/blackbox.yml

特定の場所に設定ファイルをデプロイするために prometheus_exporter_custom_conf_destination 変数を設定します。

default-value: "{{ prometheus_exporters_common_root_dir }}/{{prometheus_exporter_name}}_current"

prometheus_exporter_conf_main 設定ファイルの場所はプレイブックディレクトリ:

例:


prometheus_exporter_conf_main: black_box_exporter_example_config.yaml

ファイルの場所:

$PLAYBOOKPATH/black_box_exporter_example_config.yaml

prometheus_exporter_conf_main: prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml

ファイルの場所:

$PLAYBOOKPATH/prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml
prometheus_exporter_conf_main: black_box_exporter_example_config.yaml

プレイブック

- name: group  blackbox_exporter をインストール
  hosts: blackbox_exporter
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: blackbox_exporter
      prometheus_exporter_version: 0.12.0
      # プレイブックパス/{{prometheus_exporter_conf_main}} カスタムパス
      prometheus_exporter_conf_main: black_box_exporter_example_config.yaml
      prometheus_exporter_config_flags:
        "--config.file": "{{ prometheus_exporter_custom_conf_destination }}/black_box_exporter_example_config.yaml"

postgres_exporter をデプロイ

- name: postgres_exporter グループに postgres_exporter をインストール
  hosts: postgres_exporter
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: postgres_exporter
      url: https://github.com/wrouesnel/postgres_exporter/releases/download/v0.4.6/postgres_exporter_v0.4.6_linux-amd64.tar.gz
      prometheus_environment_variables:
        'DATA_SOURCE_NAME': 'postgresql://user:password@localhost:5432/?sslmode=disable'

uwsgi_exporter をデプロイ

- name: uwsgi インスタンスに uwsgi_exporter をインストール
  hosts: uwsgi
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: uWSGI_expoter
      url: https://github.com/AndreaGreco/prometeus_uwsgi_exporter/files/1734745/uWSGI_expoter-v1.1.linux-amd64.tar.gz
      prometheus_exporter_conf_main: prometheus/config_uwsgi_expoter.yaml
      prometheus_exporter_config_flags:
        "-c": "{{ prometheus_exporters_common_root_dir }}/{{prometheus_exporter_name}}_current/config_uwsgi_expoter.yaml"
        "-n": ""

ライセンス

MIT

プロジェクトについて

Playbook for prometheus-exporter.

インストール
ansible-galaxy install entercloudsuite.prometheus-exporter
ライセンス
mit
ダウンロード
211.4k