Zabbix最新版をインストールする


はじめに

zabbixの最新版(現時点で4.2.1)をインストールしたので備忘録。

以下のページを参考にしています。

公式マニュアル

環境

  • OS: CentOS 7.6
  • Zabbix
    • Version: 4.2.1
    • WEB: apache
    • DB: mariadb

なお、firewalldSELinuxはどちらもdisable。

インストール

今回はyumにてインストール。
Zabbix Official Repositoryからダウンロード。

rpm -ivh http://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm

yum install -y zabbix-server-mysql zabbix-web-mysql
yum install -y zabbix-agent
yum install -y mariadb mariadb-server
yum install -y httpd httpd-devel

指摘があったので追記(2019/7/6)

日本語のUIも使用する場合は以下もインストール。

yum install -y zabbix-web-japanese

ユーザ追加

zabbix用のユーザを登録する。

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

DBの設定

mariadbを起動

systemctl enable mariadb.service
systemctl start mariadb.service

zabbix用のデータベースを作成。(パスワードはzabbix)

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
quit;

サーバーの初期スキーマとデータをインポート。

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

zabbix_server.confの編集

/etc/zabbix/zabbix_server.confの84行目あたりからDBの設定が記載されているため、自身の環境に合わせて編集。
(DBPasswordはコメントアウトされているため、追記。)

zabbix_server.conf
DBHost = localhost
DBName = <DB_name>
DBUser = <DB_user>
DBPassword = <DB_password>

WebUIの設定

WebUI用のApache設定ファイル(/etc/httpd/conf.d/zabbix.conf)を編集する。
タイムゾーンの設定がコメントアウトされているため、Asia/Tokyoに設定する。

zabbix.conf
# php_value date.timezone Europe/Riga
↓
php_value date.timezone Asia/Tokyo

zabbix-serverの起動

自動起動を有効化し、zabbix-serverを起動する。

systemctl enable zabbix-server
systemctl start zabbix-server
systemctl start httpd

Installation

zabbixを起動後にブラウザからzabbixサーバのURL(http://<server_ip_address>/zabbix/)へアクセスすると、以下のような画面が表示される。

2つ目の"Check of pre-requisites"の"Next step"をクリックしても次の画面に遷移しなかったため、以下を参考にして、設定を追加。

/etc/zabbix/web/zabbix.conf.phpというファイルを作成し、以下の内容を記載。

zabbix.conf.php
<?php
// Zabbix GUI configuration file
global $DB;

$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '0';
$DB['DATABASE'] = '<DB_name>';
$DB['USER']     = '<DB_user>';
$DB['PASSWORD'] = '<DB_password>';

// SCHEMA is relevant only for IBM_DB2 database
$DB['SCHEMA'] = '';

$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = '';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
?>

再度zabbixサーバのURLにアクセスすることでログイン画面が表示される。

あとがき

ここが間違っている。とかあればコメントもらえるとありがたいです。

これをAnsibleで自動化することが今後の課題。。。