1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

汎用分析環境の構築(準備編)

Posted at

目的

いつ、何時、だれの挑戦でも受ける。(by アントニオ猪木)

データサイエンティストたるもの、当然このような矜持をもって業務にあたる必要があると考える。(嘘)
実際のところ、客先を含めたさまざまな環境で、いろいろな分析を実行することが多いので、楽に仕事ができるように共通基盤となるような環境を作っておきたいと思います。
今回はベースとなる下回りの環境構築を実施。

本記事のゴール

  • Windows10上にVagrantで複数のVM(Ubuntu18.04)を立ち上げる
  • Ansibleを利用してdockerをインストール
  • リソース状況を調べるためにprometheus+grafanaでリソース状況を可視化する(導入はAnsible)

対象バージョン

  • ホストOS:Windows10
  • ゲストOS:Ubuntu18.04.1
  • Virtualbox:5.2
  • Vagrant:2.1.5
  • Ansible: 2.7.0
  • prometheus:2.1.0
  • grafana:5.3.0

作業内容

Vagrantでの複数VM立ち上げ

Vagrant with Virtualboxで以下の環境を作る。

for_testing.png

こういう時、Vagrantのネットワーク設定は本当に楽にできるので助かる。具体的なVagrantfileの内容は以下の通り

Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  config.vm.provider "virtualbox" do |vb|
    # Customize the amount of memory on the VM:
    vb.memory = "1024"
  end

  config.vm.define :master do | master |
    master.vm.hostname = "master"
    master.vm.network :private_network, ip: "192.168.32.10"
    master.vm.network :private_network, ip: "192.168.33.10", virtualbox__intnet: "intnet"
  end

  config.vm.define :worker001 do | worker001 |
    worker001.vm.hostname = "worker001"
    worker001.vm.network :private_network, ip: "192.168.33.20", virtualbox__intnet: "intnet"
  end
end

master、workerを同時に上げたい場合は、Vagrantfileと同じディレクトリで以下を実行。

λ vagrant up

master、workerのいずれかを上げたい場合は、以下を実行。

λ vagrant up master
もしくは
λ vagrant up worker001

Ansibleでの監視環境構築

以降の作業はmasterからAnsibleにより実施。

λ vagrant ssh master
# 内部通信用の鍵を作成
vagrant@master:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa): /home/vagrant/.ssh/ansible-keys
略
vagrant@master:~$ cat ~/.ssh/ansible-keys.pub >> ~/.ssh/authorized_keys

同様にworker001側にもvagrant@master:~/.ssh/ansible-keys.pubの内容をvagrant@worker001:~/.ssh/authorized_keysに追記する。(not上書き)

パスワードなしでmaster -> worker001にSSHログインできることを確認。

vagrant@master:~$ ssh -i ~/.ssh/ansible-keys vagrant@192.168.33.20
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-36-generic x86_64)

vagrant@master:~$ ssh -i ~/.ssh/ansible-keys vagrant@192.168.33.10
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-36-generic x86_64)

リポジトリの向き先を理研に変えつつ、pipで新しめのAnsibleを導入。

vagrant@master:~$ sudo sed -i.bak -e "s%http://archive.ubuntu.com/ubuntu%http://ftp.riken.go.jp/Linux/ubuntu%g" /etc/apt/sources.list
vagrant@master:~$ sudo apt update
vagrant@master:~$ sudo apt install python3-pip
vagrant@master:~$ sudo pip3 install ansible

ansible-playbookは以下。
https://github.com/ken223/ansible-docker-analyzer

Ansible実行

vagrant@master:~$ git clone https://github.com/ken223/ansible-docker-analyzer.git
vagrant@master:~$ cd ansible-docker-analyzer/
vagrant@master:~/ansible-docker-analyzer$ sh deploy.sh

動作確認

ホスト側で以下のURLにアクセス
http://192.168.32.10:3000

admin/adminでログイン後、データソースの選択画面で以下を選択

スクリーンショット (9).png

Dashboardは以下から適当なものを選ぶことになる。

先ほどのansibleを実行するとworker001とmasterにprometheus-node-exporterが入っているので、"Host Stats - Prometheus Node Exporter - pre 0.16.0"を選択。

Dashboardの"+Import"ボタンを押すとインポート画面になる。
Grafana.com Dashboardに貼り付ける内容は"718"だった。

追加したダッシュボードを見ると以下のようになっているはず。

スクリーンショット (11).png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?