Zabbix 3.0 のアプライアンス導入顛末記です。

Zabbix 3.0 のリリースと同時に Zabbix Appliance も公開されました。利用した「顛末記」です。

※ 追記 顛末記なので最新版 3.2 で試してみました。この記事よりマズマスなのでこちらをご参考ください。

2019/7 現在最新版は 4.2 です

How to setup zabbix4.2 on openSUSE Leap 15.1

Zabbix4.2 snmp デバイスのグラフを表示させるまで





Zabbix Download 3.0 LTS KVM, Parallels, QEMU, USB stick, VirtualBox, Xen (.raw) ダウンロードはこちら

Zabbix appliance

-なんで Ubuntu ????? -

今までの Zabbix Appliance は openSUSE で構成されていたため、ほとんどの作業をroot で入って yast コマンドで、メニュー形式から変更することができました。vi 使うのは php.ini のタイムゾーン書き換える程度だったんですけどね。なぜこんなに使いづらい Ubuntu にしたのか納得できない。何かというと "access denied" とか "command not found" となるンですね。

お、出たか sudo しろって事だな。という事で、システム設定のほとんどを yast メニューで出来た openSUSE 版ではなく、地獄の sudo と sudo vi との闘いが、zabbix 以前の問題としてアプライアンス導入へのハードルを上げてくれました。

まぁ好みと慣れの問題なんですけどね。

※つくづく申し上げますが、vi で設定を編集するときは綴りを間違えないでくださいね。SUSE の yast の様にパッケージのインストールから設定まで自動化されていません。ubuntu では全部手書きです。

zabbix 2.x での実際のアプライアンス版の導入はこちらをご参考下さい。


頼む、openSUSE 版の Appliance 出すか、SUSE 版の zabbixの rpm 作ってくれ。
openSUSE で 1 Click インストールできる様にしてくれ。
と言っても無料で使っているわけだから文句は言えませんね。
まぁ、openSUSE leap 42 は安定板じゃないからなぁ、13.1 あたりの安定板を使ってほしい。

- 環境 -

動作環境は SLES12 の XEN 環境から行いました。Zabbix Appliance 3.0 は KVM/XEN と同じイメージファイルです。SLES12 の環境では XEN/KVM 両方サポートしているので、どちらでも、実装そのものはあまり変わりないでしょう。おそらく RedHat 系の KVM のみの環境でも同じように実装できると思います。

まず解凍します。
sles12:/var/lib/xen/images/zabbix # tar xvzf zabbix_appliance_3.0.1_x86_64.raw.tar.gz
./
./zabbix_appliance_3.0.1.raw
sles12:/var/lib/xen/images/zabbix # ls -al
total 81061244
drwxr-xr-x 3 root root 4096 Feb 16 18:35 .
drwx------ 19 root root 4096 Mar 10 08:34 ..
-rw-r--r-- 1 root root 10485760000 Feb 16 18:56 zabbix_appliance_3.0.1.raw
-rwxr--r-- 1 root root 1370095336 Mar 10 12:03 zabbix_appliance_3.0.1_x86_64.raw.tar.gz
sles12:/var/lib/xen/images/zabbix #

そりゃ、openSUSE だと思っていましたよ。でもドキュメント読むと

"Ubuntu version 14.04.3"

って書いてあるわけですね。そりゃぁ手慣れた手順で、アプライアンス実装しても動く訳がない。

その罠に気が付いて virt-manager を起動して、SLES12 では、次の様なパラメータで仮想マシンを実装します。

Zabbix 3.0 のアプライアンス導入顛末記です。_a0056607_11165514.jpg
最近はハードウェアの性能が仮想化前提で設計されているため、あまり XEN/KVM の性能差や機能差がなくなってきました。起動して初めて「何じゃこれ」という事になったわけです。

- OS Type が Ubuntu なので full virtual(完全仮想化)です。
- メモリ、vcpu はデフォルトのまま
- 仮想ディスクに解凍したイメージ raw ファイルをセット
- VM 名を任意に zabbix3 などにセット

これで OK ボタンを押すと Zabbix アプライアンスが起動します。
Zabbix 3.0 のアプライアンス導入顛末記です。_a0056607_11174281.jpg
DHCP なので ifconfig で ip を確認してから Ubuntu に SSH 接続してみます(メンドクサイ)ちなみに ubuntu には root というユーザがいないため、デフォルトの "appliance"/zabbix で ssh 接続します。 -l なんてオプション初めて知った。
Zabbix 3.0 のアプライアンス導入顛末記です。_a0056607_11181045.jpg
- IP を固定する -

yast が使えないため、まず DHCP から ip を固定するため sudo vi と闘います。
/etc/network/interfaces /etc/resolv.conf を修正します。

appliance@zabbix:/etc/network$ cat interfaces <--- デフォルトの確認
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
appliance@zabbix:/etc/network$

# sudo vi /etc/network/interface <--- 編集、/etc/resolv.conf も編集

appliance@zabbix:/etc/network$ sudo vi interfaces
[sudo] password for appliance: 間違えちゃった....
Sorry, try again.
[sudo] password for appliance: <--- vi で編集します。

: 編集中(SUSE + yast じゃないので、綴りを間違えないように......)

appliance@zabbix:/etc/network$ cd ..
appliance@zabbix:/etc$ sudo vi resolv.conf
appliance@zabbix:/etc$ cat network/interfaces <--- 変更後の確認
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static <--- dhcp から static に、綴り間違えるなよ。

address 192.168.1.206 <--- 以下追加
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.2

<--- ここまで

resolv.conf も修正

appliance@zabbix:/etc$ cat resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.2
nameserver 192.168.1.3
search intra
appliance@zabbix:/etc$

appliance@zabbix:~$ sudo ifdown eth0 && ifup eth0 <-- auchi!! あちゃーsudo忘れた
appliance@zabbix:~$ sudo ifdown eth0 && sudo ifup eth0 <-- 正しくはこっち do not forget "sudo"
appliance@zabbix:~$ ということでコンソールから(from console)
appliance@zabbix:~$ sudo ifup eth0
appliance@zabbix:~$ ping www.yahoo.co.jp
PING www.g.yahoo.co.jp (182.22.72.251) 56(84) bytes of data.
64 bytes from 182.22.72.251: icmp_seq=1 ttl=51 time=182 ms
^C
--- www.g.yahoo.co.jp ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 182.758/193.811/204.865/11.062 ms (<---- it seems fine !)
appliance@zabbix:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3e:5e:7a:61
inet addr:192.168.1.206 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:3eff:fe5e:7a61/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19487 errors:0 dropped:4 overruns:0 frame:0
TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:903775 (903.7 KB) TX bytes:202727 (202.7 KB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1620 errors:0 dropped:0 overruns:0 frame:0
TX packets:1620 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:92110 (92.1 KB) TX bytes:92110 (92.1 KB)

appliance@zabbix:~$

どうやら、IP の固定と、dns の設定が出来たようです。SUSE なら yast で1分の作業ですが、ここまで3時間かかりました。やっぱり SUSE 利用者には ubuntu は手ごわい。

- NTP のインストール -

なんと ntp がないじゃないか、という事で NTP をインストール、JST 設定します。SUSE の yast ならインストールから設定まで 30 秒の作業ですが、ここでもまた30分間の死闘が始まります。

appliance@zabbix:/etc$ sudo apt-get install ntp

またパスワードだ

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libopts25
Suggested packages:
ntp-doc apparmor
The following NEW packages will be installed:
libopts25 ntp
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 474 kB of archives.
After this operation, 1,677 kB of additional disk space will be used.
Do you want to continue? [Y/n] y <---- yes する
Get:1 http://us.archive.ubuntu.com/ubuntu/ trusty/main libopts25 amd64 1:5.18-2ubuntu2 [55.3 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main ntp amd64 1:4.2.6.p5+dfsg-3ubuntu2.14.04.8 [419 kB]

: 略

Processing triggers for ureadahead (0.100.0-16) ...
appliance@zabbix:/etc$

ntp の設定をし直します。

appliance@zabbix:/etc$ sudo vi ntp.conf <--- vi で編集して
appliance@zabbix:/etc$
appliance@zabbix:/etc$ cat ntp.conf

: 略

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
#server 0.ubuntu.pool.ntp.org <---- Comment out
#server 1.ubuntu.pool.ntp.org <---- Comment out
#server 2.ubuntu.pool.ntp.org <---- Comment out
#server 3.ubuntu.pool.ntp.org <---- Comment out

# Use Ubuntu's ntp server as a fallback.
#server ntp.ubuntu.com <---- Comment out

server ntp1.intra <---- Add my NTP server(s)
server ntp2.intra <---- Add my NTP server(s)

: 略

appliance@zabbix:/etc$

-UTC から JST に(?)-

appliance@zabbix:/etc$ cat timezone
Etc/UTC <--- Default UTC
appliance@zabbix:/etc$ sudo vi timezone
appliance@zabbix:/etc$ cat timezone
#Etc/UTC
Asia/Tokyo <--- JST にしてみる。
appliance@zabbix:/etc$

リスタートしてみる
appliance@zabbix:/etc$ sudo /etc/init.d/ntp restart
* Stopping NTP server ntpd [ OK ]
* Starting NTP server ntpd [ OK ]
appliance@zabbix:/etc$

何じゃこれ?
appliance@zabbix:/etc$ date
Sun Mar 13 04:24:36 UTC 2016 <--- JST じゃないけど ....
appliance@zabbix:/etc$

なんか違う様です。SUSE の yast の様にタイムゾーンとNTPを一発で設定できないので、何か他のテキストを書き換えないといけない様ですね。

※補足 sudo dpkg-reconfigure --frontend noninteractive tzdata とやるようです。


- グラフが表示されない -

/etc/zabbix/web/zabbix.conf.php の末尾にゴミが入っている(なんとデフォルト)とグラフは表示されないようだ。

ちなみに

Database passwords are randomly generated during the installation process.
Root password is stored to /root/.my.cnf file, (嘘ですit is not required to input a password under the “root” account.

とあるように、実際には /etc/zabbix/web/zabbix.conf.php ファイルに PHP の root パスワードが隠されています。

appliance@zabbix:~/home/temp$ cat /etc/zabbix/web/zabbix.conf.php | grep PASSW
$DB['PASSWORD'] = 'vO1xUgwjzh';

※追記 /root/.my.conf はこれで確認できました。

appliance@zabbix:~$ sudo su
root@zabbix:/home/appliance# cd /root
root@zabbix:~# ls -al
total 28
drwx------ 3 root root 4096 Mar 14 03:21 .
drwxr-xr-x 22 root root 4096 Feb 28 20:07 ..
drwx------ 2 root root 4096 Feb 28 20:03 .aptitude
-rw------- 1 root root 46 Mar 14 03:21 .bash_history
-rw-r--r-- 1 root root 3106 Feb 20 2014 .bashrc
-rw-r--r-- 1 root root 31 Feb 28 20:01 .my.cnf
-rw-r--r-- 1 root root 140 Feb 20 2014 .profile
root@zabbix:~# cat .my.cnf
[client]
password="19qfvjQngR"
root@zabbix:~#

<--- 追記終わり

- 顛末 -

本当は、Zabbix2 のDBを移行したかったのですが、 MySQL のデータのエクスポートとインポートに失敗しました。失敗した事は隠しようがないので、dns の書き換えは諦めて、とりあえず 2.2 と 3.0 の平行運用して違いを楽しんでいます。ドキュメント通りに行かないのが怖いところです。データの移行はもう少し研究しないといけませんね。

中小規模の数十台の仮想化システムのデバイスであれば、 Zabbix アプライアンスはネットワーク管理に必要十分な「見える化効果」があり、実装も楽なのですが、Ubuntu では、とても客に「使ってくれ」とは口が裂けても言えません。という事で、私の顧客では無理しないで、当分は 2.2 環境でも問題なさそうです。

また、アプライアンス固有の問題なのかも知れませんが、ビール買いに行っている間に、データの取得ができなくなって、全く機能しなくなってしまいました。再起動してもだめ。

まだ不安定ですね。こういう状況があると、2.x 系と比べても、とても実用には堪えない。やっぱり次の安定板が欲しくなります。やはり「新しいからまともに動く」と言う事よりも「うまく使えているバージョンを徹底的に使い倒す」という姿勢が必要な様です。私の目的はイベントでのトリガーでもなく、アラートでもありません。一般的なトレンドが見えればいい。そういう単純な目標であれば、あえて Zabbix3 を選ぶ理由はありません。

確かに 2.x より 3.x の方がコスメティックな部分では「違い」があるのですが、せいぜいトラフィックをグラフ化する程度であれば、無理して 3.x を導入するつもりにはなれません。SUSE 版 Appliance が出ないのなら、せめて rpm 化するか、1 Click インストール用のパッケージか susestudio で仮想アプライアンスを作るしかないな、という無理な私の希望です。

Zabbix3 アプライアンスに関しては、随分否定的な評価となりました。








- Key Word-


Zabbix SUSE openSUSE Zabbix Appliance 3.0 XEN KVM 使えない。だめだこりゃ。SUSE 版出せ。

by islandcenter | 2016-03-14 11:32 | プライベートクラウド | Comments(0)