- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
----
#contents
Vagrantを使ってZabbixの検証環境を作ってみたのでそのときのメモ。下記の前提で環境構築を行います。
- 一つのVagrantfileで、Zabbixサーバを一つ構築します。
- ZabbixサーバはUbuntu Linux 上のDocker上に構築します。
- 監視される(エージェントを入れる方)OSもUbuntu Linuxとして、 ひとつのVagrantfileで2つOSを構築します。
- それぞれの仮想マシンはネットワーク的に到達可能である必要がありますが、Vagrantはデフォルトではおなじネットワークに参加しないようなので((publicにBridgeすりゃイイんですが))、ウラLANとして192.168.33.0/24のネットワークを構築します。
- Zabbixサーバには80番ポートでWEBサーバが起動しますが、VagrantはNATかけないとアクセス出来ないので、port forwardingで 8888番ポートアクセスを80番ポートへ転送します。
#ref(vagrant.png)
** サーバを構築する。 [#j56b38b7]
VagrantfileでOSのインストール等を行ったあと、Provision機能を使ってつづきの環境設定を行います。
ちなみにすべてのソースは、 https://github.com/masatomix/zabbix_sample_vagrant へアップ済みです。
*** VagrantによるOS構築 [#kcefeb0f]
Vagrantfileでは
- ubuntu/xenial64 のインストール
- Networkの追加(192.168.33.10/24 というIPを設定)
- 外からの8888番ポートへのアクセスを80番ポートへ転送
を行います。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
で、つづきの環境構築が動き出します。
*** Vagrant のProvision機能でつづきの環境設定 [#f0f05a70]
*** Vagrant のProvision機能でつづきの環境設定 [#zefe1bc4]
さて、Vagrantfileの最後に指定されたshですが、具体的には
- Dockerのインストール
- Docker上にZabbix のインストール、と起動
- そのサーバ自体を監視するためのZabbix AgentのインストールとそのAgentの環境設定
を実施しています。
具体的には、以下の通りです。
#!/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 へ置換 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,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ですね。
**クライアント(エージェント)側を構築する [#e7c3a882]
つづいてクライアント(エージェント)側です。
*** VagrantによるOS構築 [#m88dfab5]
Vagrantfileでは
- ubuntu/xenial64 のインストール
- Networkの追加(192.168.33.0/24 というネットワークを設定)
- provisionのためのシェル実行
をやってますが、下記の通りに記述することで一つの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
こんな感じにすることで、複数サーバの構築を一度に行うことが出来るわけですね。
*** Vagrant のProvision機能でつづきの環境設定 [#u86ac3e2]
*** Vagrant のProvision機能でつづきの環境設定 [#zba79641]
さて各サーバのつづきの環境設定は、一つの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サーバと、監視されるエージェントのOSの環境構築は完了です。
**ブラウザからのZabbixの環境設定 [#j645fc97]
**ブラウザからのZabbixの環境設定 [#z45718d2]
あらためて http://127.0.0.1:8888/ へアクセスし、Admin/zabbix でログイン します
*** Zabbix サーバ自体の監視の開始 [#hbbd2b0e]
*** Zabbix サーバ自体の監視の開始 [#b0119eee]
Configuration >> Hosts >> Zabbix server で、IPアドレスを 192.168.33.10 (Zabbixサーバ自体のIP) に変更し、Enabledにチェックを入れて Update
#ref(hosts001.png)
***エージェントの監視 [#k89abc87]
***エージェントの監視 [#y30191f5]
Configuration >> Hosts >> Create host で 監視するサーバ agent001,agent002を追加します。
Hostタブで
Host name: agent001
Group: Linux Servers
IP: 192.168.33.11
Templatesタブで Template OS Linux を選んでAddを追加(ボタンでなくてリンクの方の追加)。最後にAddを押下すればOKです。
同様にagent002も追加します。
#ref(hosts002.png)
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}