ninigi.log

作業ログ。ネットワーク, python, RoR, Reactなど。

Install Zabbix 4.0 on Ubuntu 16.04

動機

研究室ネットワークのSNMP監視がしたい。

現状ではcactiが動いているがUIがイケてないし、cactiの勉強をしてアップデートするよりは新しいのを入れて勉強していきたい。   とりあえず自分のサーバにいれて動かしてみてよさそうだったら監視サーバに移行する。

環境

環境構築

MySQLのインストール

Zabbix 4.0ではMySQL8.0をサポートしているらしい。

現環境には既に使用されているMySQL 5.7が入っている。アップデートするのは面倒だし、8.0が必須ではなさそうなので8.0はパス。

Zabbix 4.0の環境構築

公式ドキュメントに従う。 www.zabbix.com

2つの選択肢がある。

  • dockerで
  • サーバにインストール

今回は勉強のためにもサーバにインストールすることにした。

dockerで入れるの簡単だけど、なんか味気ないしサーバにインストールしていく。次やる機会があったらdockerでやる。

実際に手を動かしてインストールした方が愛着がわく

リポジトリの追加

$ cd /tmp
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+xenial_all.deb
# dpkg -i zabbix-release_4.0-3+xenial_all.deb
# apt update

Zabbix 4.0のインストール

# apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-agent

データベースの作成

$ mysql -u root -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;

Zabbixが使うデータベースの設定。passwordは設定したいものに変更する。

初期データの投入

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

そこそこ時間がかかる。zcat は圧縮したファイルの中身を表示するためのコマンド。

参考

確認

$ mysql -uroot -p
mysql> use zabbix;
mysql > show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |
| application_prototype      |
| application_template       |
| applications               |

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

| usrgrp                     |
| valuemaps                  |
| widget                     |
| widget_field               |
+----------------------------+
144 rows in set (0.00 sec)

なにやらいろんなデータが投入されている。

MySQLとの接続設定

パスワードの情報をいれる

sudo vim /etc/zabbix/zabbix_server.conf

124行目付近にDBPassword=hogehogeを追記。hogehogeは先程設定したパスワード。

### Option: DBPassword
#   Database password.
#   Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword= hogehoge

Zabbix のフロントエンド用のPHPの設定

タイムゾーンを設定する必要がある。

sudo vim /etc/zabbix/apache.conf

20行目と30行目にそれぞれタイムゾーンの設定をする場所がある。入っているPHPのバージョンの部分だけを変えればよさそう。

# php_value date.timezone Europe/Riga

現環境にはPHP 7.3が入っていたので、 <IfModule mod_php7.c></IfModule> の方を変更

- # php_value date.timezone Europe/Riga
+ php_value date.timezone Asia/Tokyo

Rigaってどこだ

Zabbixの起動

# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2

enableでは起動時にZabbixを起動するように設定。

Start Zabbix server and agent processes and make it start at system boot:

Zabbixの設定

http://server_ip_or_name/zabbix にアクセス。

トップ画面はこう。[Next] を選択

f:id:ninigishi:20190906232309p:plain
Zabbixのトップ画面

自分の環境ではここで以下のような画面が出てエラーが起きたのでエラー&ワークアラウンドに書いた。

f:id:ninigishi:20190906232215p:plain
Zabbixフロントエンド設定

エラーが起きなければ適当に設定していく。設定した画面を張った。

f:id:ninigishi:20190906235730p:plain

f:id:ninigishi:20190907000138p:plain

f:id:ninigishi:20190907000248p:plain

Zabbixへのログイン

f:id:ninigishi:20190907000354p:plain

www.zabbix.com 初期ユーザ・パスワードなどはここに書いてある。グローバルで動かしていたので早急にパスワードを変更する。

f:id:ninigishi:20190907000734p:plain [Administrations] >> [Users] >> [Admin] の順にクリック、次の画面で[Change Password]をクリックして変更。

とりあえず、ここまでが導入だと思うので一旦終了。snmpの設定などはまた今度。

エラー & ワークアラウンド

エラー

なにやらエラーっぽいのが表示されている。何かが足りないらしい。

f:id:ninigishi:20190906232215p:plain
Zabbixフロントエンド設定

ワークアラウンド

PHP bcmath extension missing (PHP configuration parameter --enable-bcmath).
PHP gd extension missing (PHP configuration parameter --with-gd).
PHP gd PNG image support missing.
PHP gd JPEG image support missing.
PHP gd FreeType support missing.
PHP xmlwriter extension missing.
PHP xmlreader extension missing.
sudo apt install php-bcmath
php-bcmath is already the newest version (2:7.3+69+ubuntu16.04.1+deb.sury.org+2+php7.3).

??? よく見るとZabbixで認識しているPHPのバージョンとターミナルで php --version としたときのバージョンが違う。これが原因っぽい。

php7.1をアンインストール。

sudo apt purge php7.1-*
sudo systemctl restart apache2

...起動しなくなった。/etc/zabbix/appache.conf も何故か消えた。

今まで叩いたコマンドを振り返るとzabbix-frontend-php がそれっぽいのでこれをもう一回叩く。

sudo apt -y install zabbix-frontend-php

普通にインストールが始まったからpurgeしたときにこれも飛んでいったらしい。/etc/zabbix/apache.conf も復活した。

sudo vim /etc/zabbix/apache.conf
sudo systemctl restart apache2

なんかPHPソースコードが表示される。沼った。わけわからん。適当にググっていたら以下のサイトを見つけたので、その通りにやる。

gn000.sakura.ne.jp

ls /etc/apache2/mods-enabled/ | grep php

ない。リンクを貼る。

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/php7.3.load ./
sudo ln -s ../mods-available/php7.3.conf ./

これで復旧した。