建立通用分析环境(准备篇)

in Chinese: 目标

无论是什么时间,任何人的挑战我都会接受。(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上启动多个虚拟机

使用Virtualbox创建以下环境的流浪者模式。

for_testing.png

在这种情况下,Vagrant的网络配置真的很容易,非常方便。具体的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

如果想升级为主节点或工作节点,请执行以下操作。

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

使用Ansible进行监控环境的建设

后续工作由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

同样地,将vagrant@master:~/.ssh/ansible-keys.pub的内容追加到vagrant@worker001:~/.ssh/authorized_keys中,而不是覆盖原有内容。

确认能够在没有密码的情况下通过SSH登录到worker001。

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

确认行动

在主机上访问以下网址
http://192.168.32.10:3000

在使用 admin/admin 登录后,在数据源选择界面选择以下选项

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

选择面板需要从以下选项中选择适当的一个。

执行先前的ansible时,worker001和master中已经安装了prometheus-node-exporter,因此选择”Host Stats – Prometheus Node Exporter – pre 0.16.0″。

点击Dashboard上的”+导入”按钮将进入导入界面。
在Grafana.com上粘贴到Dashboard的内容为”718″。

当你查看添加的仪表板时,应该会看到以下的情况。

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