entercloudsuite.prometheus-exporter
Ansible Role: prometheus-exporter
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
を使用できます。
molecule create
を実行して、ローカルエンジン上でターゲットDockerコンテナを起動します。molecule login
を使って、実行中のコンテナにログインします。- ロールファイルを編集します。
molecule/default/requirements.yml
ファイルで他の必要なロール(外部)を追加します。molecule/default/playbook.yml
を編集します。- molecule/default/testsフォルダ内でinfraテストをgoos verifierを使用して定義します。
- 準備ができたら、
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