Ubuntu20.04はインストール直後のパッケージではzabbix-4.0がインストール可能です。しかし、以前は4.4.4を使っていたので、最新版の4.4.8をインストールします。
途中で以下のエラーが出たので序に対策しました。動けば良し!!(笑)
# Zabbix4.4.8インストール中、ブラウザでのセットアップ画面で表示されたエラー
# DBのinformation_schema.schemataテーブルから文字コードを確認している際に
# エラーになっているのだが、DBはきちんとutf8で作成しているので、
# エラー処理自体を無条件にスルーするように修正しました。
Undefined index: table_name [zabbix.php:21 → require_once() → ZBase->run() → ZBase->processRequest() → CView->getOutput() → include() → make_status_of_zbx() → MysqlDbBackend->checkEncoding() → MysqlDbBackend->checkTablesEncoding() → DBfetchColumn() in include/db.inc.php:1009]
対象環境
- Ubuntu19.10
- Apache2
- Mysql8.0
- php7.3
- systemd
インストール
次回自分がインストールしたときに困らなければいいので、コピペで行けるようにしておきます。
# パスワードは適宜変更してください。
export DBPASSWD='yourzabbixPasswrd0d9s)'
sudo mysql
create database zabbix DEFAULT CHARACTER SET UTF8;
CREATE USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourzabbixPasswrd0d9s)';
GRANT ALL ON zabbix.* TO 'zabbix'@'localhost';
flush privileges;
exit;
cd /tmp
wget https://cdn.zabbix.com/stable/4.4.8/zabbix-4.4.8.tar.gz
tar -zxvf zabbix-4.4.8.tar.gz
cd zabbix-4.4.8/database/mysql/
sudo mysql zabbix < schema.sql
sudo mysql zabbix < images.sql
sudo mysql zabbix < data.sql
# 日本語表示できるようにする
localedef -f UTF-8 -i ja_JP ja_JP
sudo groupadd zabbix
sudo useradd -g zabbix -s /bin/bash zabbix
sudo apt-get install apache2 php php-mysql libapache2-mod-php php-mbstring php-xml \
php-gd php-bcmath php-ldap build-essential libmysqlclient-dev libssl-dev \
libsnmp-dev libevent-dev libopenipmi-dev libcurl4-openssl-dev libxml2-dev \
libssh2-1-dev libpcre3-dev libldap2-dev libiksemel-dev libcurl4-openssl-dev \
libgnutls28-dev unixodbc unixodbc-dev
cd /tmp/zabbix-4.4.8
./configure --enable-server --enable-agent --with-mysql \
--with-openssl --with-net-snmp --with-openipmi --with-libcurl \
--with-libxml2 --with-ssh2 --with-unixodbc
make && sudo make install
sudo cp /usr/local/etc/zabbix_server.conf /usr/local/etc/zabbix_server.conf.org
sudo sed -i 's/^LogFile=.*/LogFile=\/var\/log\/zabbix_server.log/g' /usr/local/etc/zabbix_server.conf
sudo sed -i 's/^[# ]*DBHost=.*/DBHost=localhost/g' /usr/local/etc/zabbix_server.conf
sudo sed -i 's/^DBName=.*/DBName=zabbix/g' /usr/local/etc/zabbix_server.conf
sudo sed -i 's/^DBUser=.*/DBUser=zabbix/g' /usr/local/etc/zabbix_server.conf
# rootで実行してください
echo "DBPassword=${DBPASSWD}" >> /usr/local/etc/zabbix_server.conf
# ログファイルを作成してパーミッション付与
touch /var/log/zabbix_server.log
chown zabbix:zabbix /var/log/zabbix_server.log
touch /var/log/zabbix_agentd.log
chown zabbix:zabbix /var/log/zabbix_agentd.log
mv /tmp/zabbix-4.4.8/frontends/php /var/www/html/zabbix
sudo cp /etc/php/7.4/apache2/php.ini /etc/php/7.4/apache2/php.ini.bak
sudo sed -i 's/^post_max_size =./post_max_size = 32M/g' /etc/php/7.4/apache2/php.ini
sudo sed -i 's/^max_execution_time =./max_execution_time = 300/g' /etc/php/7.4/apache2/php.ini
sudo sed -i 's/^memory_limit =./memory_limit = 256M/g' /etc/php/7.4/apache2/php.ini
sudo sed -i 's/^max_input_time =./max_input_time = 300/g' /etc/php/7.4/apache2/php.ini
sudo sed -i 's/;date.timezone =/date.timezone = "Asia\/Tokyo"/g' /etc/php/7.4/apache2/php.ini
sudo service apache2 restart
Zabbixの設定
ウェブブラウザで、zabbixをインストールしたサーバのURL(http://host/zabbix)へアクセスする。



DB接続エラー対策
上記画面まで来た後に、DB接続できません的なエラーが出ました。
簡単にコードを見たところ、./include/classes/db/MysqlDbBackend.phpの82行目あたりの以下のコードでエラーとなっているようでした。
文字コードはDB作成時に明確にUTF8を指定しているので、このチェック処理はなくてもいいと勝手に判断して、チェック処理を全部コメントアウトし、常にtrueを返すように以下のように修正しました。
protected function checkTablesEncoding(array $DB) {
return true;
}
修正後、apache2を再起動して再度、該当画面でDB情報を入れたところ、次にいけました。



Finishを押すと、ログイン画面へ遷移する。 デフォルトユーザーパスワードはAdmin/zabbix。
zabbix-server,zabbix-agentdをsystemdに登録
個人的にsystemdで管理したかったので以下ファイルを作成しました。Ubuntu20.04への適用に問題はないと思いますが、自己責任で利用してください。
上記の*.serviceファイルをsystemdに登録する方法は以下。
cd /tmp
wget https://eco.senritu.net/wp-content/uploads/zabbix-agent.zip
wget https://eco.senritu.net/wp-content/uploads/zabbix-server.zip
unzip zabbix-agent.zip
unzip zabbix-server.zip
sudo mv zabbix-agent.service /etc/systemd/system/
sudo mv zabbix-server.service /etc/systemd/system/
sudo systemctl daemon-reload
# 動作確認
sudo systemctl start zabbix-agent.service
sudo systemctl start zabbix-server.service
# 自動起動するように設定する
sudo systemctl enable zabbix-agent.service
sudo systemctl enable zabbix-server.service
最後に
途中で根本原因の追究を行わずに結果オーライで修正しています。mysqlの設定も幾つか試してみたのですが、状況が改善しなかった為そのようにしました。
同件エラーで調べたところ、中国のサイトで同件を発見したのですが、全く回答は付いておらず・・・・どなたか教えて頂けると幸甚です。