Vagrantを使ってZabbixの検証環境を作ってみたのでそのときのメモ。下記の前提で環境構築を行います。
VagrantfileでOSのインストール等を行ったあと、Provision機能を使ってつづきの環境設定を行います。
ちなみにすべてのソースは、 https://github.com/masatomix/zabbix_sample_vagrant へアップ済みです。
Vagrantfileでは
を行います。Vagrantfileを抜粋すると以下の通りです。
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| # ubuntu/xenial64 を使用 config.vm.box = "ubuntu/xenial64" config.vm.hostname = "zabbix-server" # ホスト名を設定 config.vm.network "forwarded_port", guest: 80, host: 8888 config.vm.network "private_network", ip: "192.168.33.10" # コレを行わないと # http://www.masatom.in/pukiwiki/Vagrant/TIPS%BD%B8/#ab1dd863 # vagrant packageをしたBoxが正しく動かないため記述 config.vm.provider "virtualbox" do |vb| vb.customize [ "modifyvm", :id, "--uartmode1", "disconnected" ] end # 次の環境設定のシェルを動かすための記述 config.vm.provision :shell, :path => "./script/provision.sh",:privileged => true end
Vagrantfileの最後にある
config.vm.provision :shell, :path => "./script/provision.sh",:privileged => true
で、つづきの環境構築が動き出します。
さて、Vagrantfileの最後に指定されたshですが、具体的には
を実施しています。
具体的には、以下の通りです。
#!/bin/sh # install docker sudo apt-get remove docker docker-engine docker.io sudo apt-get update sudo apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install -y docker-ce # create zabbix container sudo docker run --name mysql-server -t \ --restart=always \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -d mysql:5.7 sudo docker run --restart=always --name zabbix-java-gateway -d zabbix/zabbix-java-gateway:latest sudo docker run --name zabbix-server-mysql -t \ --restart=always \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ --link mysql-server:mysql \ --link zabbix-java-gateway:zabbix-java-gateway \ -p 10051:10051 \ -d zabbix/zabbix-server-mysql:latest sudo docker run --name zabbix-web-nginx-mysql -t \ --restart=always \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -e ZBX_SERVER_HOST="zabbix-server" \ -e PHP_TZ="Asia/Tokyo" \ --link mysql-server:mysql \ --link zabbix-server-mysql:zabbix-server \ -p 80:80 \ -d zabbix/zabbix-web-nginx-mysql:latest # install zabbix agent wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb sudo apt update sudo apt install -y zabbix-agent # /etc/zabbix/zabbix_agentd.conf # Server=127.0.0.1 -> Server=127.0.0.1, 172.17.0.0/16 sudo cp -pfr /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.org sudo sed -i -e 's/Server=127.0.0.1/Server=127.0.0.1,172.17.0.0\/16/g' /etc/zabbix/zabbix_agentd.conf sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent
サーバの環境構築の説明は以上です。Vagrantfile があるディレクトリで
$ vagrant up
を実行すれば、上記の環境構築は完了です。vagrant sshでログイン出来ることや、Vagrant/VirtualBox?を動かしているOS上のブラウザから
http://127.0.0.1:8888/
でZabbixサーバのログイン画面が表示されればOKですね。
つづいてクライアント(エージェント)側です。
Vagrantfileでは
をやってますが、下記の通りに記述することで一つのVagrantfileで複数のサーバの構築を行うことが可能です。
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.define :agent001 do | agent001 | agent001.vm.hostname = "agent001" agent001.vm.network :private_network, ip: "192.168.33.11" agent001.vm.provision :shell, :path => "./script/provision.sh",:privileged => true end config.vm.define :agent002 do | agent002 | agent002.vm.hostname = "agent002" agent002.vm.network :private_network, ip: "192.168.33.12" agent002.vm.provision :shell, :path => "./script/provision.sh",:privileged => true end end
こんな感じにすることで、複数サーバの構築を一度に行うことが出来るわけですね。
さて各サーバのつづきの環境設定は、一つのshをそれぞれのOSで実行しています。具体的には下記の通り。
#!/bin/sh # install zabbix agent wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb sudo apt update sudo apt install -y zabbix-agent # /etc/zabbix/zabbix_agentd.conf # Server=127.0.0.1 -> Server=127.0.0.1, 192.168.33.0/24 sudo cp -pfr /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.org sudo sed -i -e 's/Server=127.0.0.1/Server=127.0.0.1,192.168.33.0\/24/g' /etc/zabbix/zabbix_agentd.conf sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent
Dockerの構築がないぶんシンプルで、基本的にはzabbix-agentのインストールと、confファイルの修正くらいです。
こちらも
$ vagrant up
で完了です。OSが二つ立ち上がったので
$ vagrant ssh agent001
などと名前指定でログイン出来ることを確認します。
以上で、Zabbixサーバと、監視されるエージェントマシンの環境構築は完了です。
この記事は
現在のアクセス:1830