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] を選択
自分の環境ではここで以下のような画面が出てエラーが起きたのでエラー&ワークアラウンドに書いた。
エラーが起きなければ適当に設定していく。設定した画面を張った。
Zabbixへのログイン
www.zabbix.com 初期ユーザ・パスワードなどはここに書いてある。グローバルで動かしていたので早急にパスワードを変更する。
[Administrations] >> [Users] >> [Admin] の順にクリック、次の画面で[Change Password]をクリックして変更。
とりあえず、ここまでが導入だと思うので一旦終了。snmpの設定などはまた今度。
エラー & ワークアラウンド
エラー
なにやらエラーっぽいのが表示されている。何かが足りないらしい。
ワークアラウンド
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のソースコードが表示される。沼った。わけわからん。適当にググっていたら以下のサイトを見つけたので、その通りにやる。
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 ./
これで復旧した。