MySQL
Ansible
grafana
prometheus

MySQL の情報を Prometheus + Grafana で可視化する playbook

MySQL + Prometheus + Grafana (+ Percona Dashboard) による MySQL の性能を可視化出来る環境を作りたかったので ansible で書いて作った。

実行方法

https://github.com/hkrn/ansible-playbooks をチェックアウトし、以下の playbook を実行する。[] の部分は適宜置き換えること。

cd 20171223
ansible-playbook \
  -e 'gce_project_id=[project_id]' \
  -e 'gce_service_account_email=[service_account_email]' \
  -e 'gce_credentials_file=[path/to/credentials_file]' \
  -e 'ansible_ssh_user=[ssh_user]' \
  -e 'ansible_ssh_private_key_file=[path/to/gce_ssh_private_key_path]' \
  site.yml

かなり時間がかかるが、実行すると合計3台のインスタンスが立ち上がる。

  • MySQL 5.7 マスターサーバの VM
  • MySQL 5.7 レプリカサーバの VM
  • モニターサーバ
    • Prometheus と Grafana が同居している

いずれも最小のインスタンスである f1-micro で作成される。

インスタンスが立ち上がったら http://[モニターサーバのIPアドレス]:3000 にアクセスして Grafana の画面が見れることを確認する。

Grafana のダッシュボード画面

Grafana のダッシュボード画面

MySQL Overview の画面

MySQL Overview の画面

この playbook を使うときの注意点

  • デモ用に作ってあるものなので、確認したらインスタンスをすぐに削除すること
    • 仮にこの playbook 流用にするせよ一回踏み台のインスタンスを建ててそこから流すように改修すべき
    • ついでにいうとパスワードも丸見えなので Ansible Vault で暗号化しておくこと
  • デフォルトのファイアウォールに 3000 を追加で開けるため、試したあとは削除すること

引数の説明

gce_project_id

Google Compute Engine 上で実行するプロジェクトの ID

gce_service_account_email

Google Compute Engine 上で実行するサービスアカウントのメールアドレス。

gce_credentials_file

Google Compute Engine におけるサービスアカウントの秘密鍵。作成したことがない場合は以下の手順に従って作成する必要がある。

  • IAM と管理 を選択
  • サービスアカウント を選択
  • 利用するサービスアカウントを選び、縦三点リーダーをクリックして「キーを作成」を選択
  • JSON 形式を選択して作成
  • 作成したファイルをダウンロードし、配置する
    • 配置したパスが gce_credentials_file の値となる

ansible_ssh_user

GCE インスタンスにログイン出来る SSH ユーザ名。Mac の場合 echo $USER したユーザ名でログイン出来るはず。

ansible_ssh_private_key_file

GCE インスタンスにログイン出来る SSH の秘密鍵。通常は gcloud が生成する ~/.ssh/google_compute_engine を使う。