Zabbix 4.0のインストール

本記事ではZabbix 4.0のインストールおよび初期設定を行い、Webフロントエンドにログインできるようにするまでを解説していきます。

1. 構成

ZabbixサーバはZabbixサーバ本体、Webフロントエンド、データベース、およびデータ取得のための補助サービスから構成されます。

Zabbixでは各種設定や監視データはデータベースに保存されます。

また、ZabbixはSNMPTRAPを直接受信することができないため、snmptrapdが受信したデータをSNMPTTで整形してログファイルに出力し、Zabbixはそのログを監視するという方法をとっています。

本記事では以下の構成でインストールを行います。

  • RHEL 7.5 / CentOS 7 (1804)
  • Zabbix 4.0
  • Apache httpd 2.4 (OS同梱のパッケージ)
  • PostgreSQL 10.5
  • ZabbixJavaGateway (JMX監視モジュール)
  • SNMPTT (SNMPTRAP監視モジュール)

2. インストール要件

Zabbixに必要なハードウェアの要件は監視対象の数や監視設定数、監視間隔、データの保存期間に依存します。
ハードウェア要件の大まかな目安としては以下になります。

規模 CPU/メモリ 監視対象数
小規模 1コア/1GB 100
中規模 2コア/2GB 500
大規模 4コア/8GB 1000以上
超大規模 8コア/16GB 10000以上

ZabbixサーバはほとんどのUnix系OSにインストールすることが可能です。Windows (2000以降)はエージェントのみ対応となります。

Webフロントエンドの動作にはApache(1.3.12以上)およびPHP(5.4.0以上)が必要です。

要件の詳細については以下を参照ください。

Zabbix Documentation 4.0 – 4. Installation – 2 Requirements

3. 構築の流れ

本記事ではRPMパッケージを使用して、以下の手順でインストールを行います。

  1. パッケージのインストール
  2. データベース作成
  3. 設定ファイルの編集
  4. Zabbixサーバ、エージェント、その他サービスの起動
  5. Webフロントエンドから初期設定

4. インストール前の準備

本記事ではSELinuxが有効になっている場合はdisabledもしくはpermissiveにします。

5. パッケージのインストール

Zabbix本体および依存パッケージを各RPMリポジトリからyumコマンドでインストールします。本記事では以下のリポジトリを使用します。

なお、インターネットに接続していないなどの理由でyumが利用できない環境の場合は、あらかじめ必要となるRPMパッケージをすべてダウンロードしてインストールする必要があります。

5.1. PostgreSQL のインストール

# yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
# yum install postgresql10 postgresql10-server

5.2. Zabbixサーバ、Webフロントエンド、エージェント、ZabbixJavaGatewayのインストール

# rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
# yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-web-japanese zabbix-agent
# yum install java-1.8.0-openjdk-headless
# yum install zabbix-java-gateway

5.3. SNMPTTのインストール

# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install snmptt
# yum install net-snmp net-snmp-utils net-snmp-perl

6. データベースの作成

Zabbix用のデータベースおよびユーザを作成し、初期データをインポートします。なお、実際の運用では、監視の規模にあわせて、共有バッファサイズや自動バキューム頻度などの設定のチューニングが必要となります。

# PGSETUP_INITDB_OPTIONS="-E utf8 --no-locale" /usr/pgsql-10/bin/postgresql-10-setup initdb
# vi /var/lib/pgsql/10/data/pg_hba.conf
(パスワード認証を有効化)
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
# systemctl start postgresql-10
# sudo -u postgres createuser --pwprompt zabbix
# sudo -u postgres createdb -O zabbix zabbix
# zcat /usr/share/doc/zabbix-server-pgsql-4.0.x/create.sql.gz | sudo -u zabbix psql zabbix

(2018/12/7 initidbコマンドを修正しました)

7. 設定

7.1. Zabbixサーバ設定

Zabbixサーバの設定ファイルで、データベース、ZabbixJavaGateway、SNMPTTのための設定を行います。

# vi /etc/zabbix/zabbix_server.conf

DBName=zabbix
DBUser=zabbix
DBPassword=(設定したzabbixユーザのパスワード)

JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=1

SNMPTrapperFile=/var/log/snmptt/snmptt.log
StartSNMPTrapper=1

7.2. SNMPTT設定

snmptrapdの起動オプションを変更します。

# vi /etc/sysconfig/snmptrapd

OPTIONS="-m +ALL -Lsd -On"

snmptrapd.confに、受信したSNMPトラップをSNMPTTに送る設定を追加します。

# vi /etc/snmp/snmptrapd.conf

authCommunity   log,execute,net public
perl do "/usr/share/snmptt/snmptthandler-embedded"

snmptt.iniを以下のように変更します。

# vi /etc/snmp/snmptt.ini

#mode = standalone
mode = daemon

#net_snmp_perl_enable = 0
net_snmp_perl_enable = 1

#net_snmp_perl_best_guess = 0
net_snmp_perl_best_guess = 2

#sleep = 5
sleep = 1

snmptt.conf に下記を記述すると、すべてのSNMPトラップを「Unknown trap」として受け取り、snmptt.logファイルに出力します。実際には監視したいトラップのOIDごとに設定を行います。

# vi /etc/snmp/snmptt.conf

EVENT general .* "Unknown trap" Normal
FORMAT ZBXTRAP $aA $ar $*

7.3. Zabbixエージェント設定

Zabbixエージェントの設定ファイルで、Zabbixサーバを指定します。

# vi /etc/zabbix/zabbix_agentd.conf

Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=(Zabbixエージェントのホスト名) ※Zabbixサーバ上のホストの設定と一致させる必要があります

Webフロントエンド用Apache設定ファイルでタイムゾーンを指定します。

# vi /etc/httpd/conf.d/zabbix.conf

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

8. 起動

Zabbixサーバおよび必要なその他サービスを起動します。

# systemctl start zabbix-server zabbix-agent zabbix-java-gateway snmptt snmptrapd httpd

OS起動時にZabbixサーバが自動起動するように設定します。

# systemctl enable zabbix-server zabbix-agent zabbix-java-gateway snmptt snmptrapd httpd postgresql-10

9. Webフロントエンドの設定

Webブラウザから http://(Zabbixサーバのホスト名orIPアドレス)/zabbix にアクセスします。

以下のセットアップ画面が表示されます。

Zabbixセットアップ画面(1)

[Next step]ボタンを押して次の画面に進むと、要件のチェックが行われます。すべて「OK」となっていない場合は、必要なパッケージのインストールや設定を見直して再度セットアップを行います。

要件のチェック

次に進むとデータベースの接続設定画面になります。必要に応じて設定を行います。接続できない場合はエラーとなります。

データベース接続設定

次に進むと、ZabbixサーバのIPアドレスおよびポート番号、識別用の名前(オプション)の設定画面になります。

Zabbixサーバ設定

次に進むと、設定内容の確認画面になります。問題なければ次に進むと設定が完了します。

設定確認

設定完了

設定完了後、[Finish]を押すとログイン画面が表示されます。

ログイン画面

初期の管理者ユーザ「Admin」、パスワード「zabbix」でログインするとダッシュボード画面が表示されます。

初期ダッシュボード画面

言語を日本語にするには、メニューの[Administration] – [Users]を選択し、ユーザー一覧の「Admin」を選択します。

ユーザー一覧

ユーザ設定画面の「User」タブの「Language」を「Japanese (ja_JP)」に変更し、[Update]ボタンを押します。

ユーザー設定

その後、ダッシュボードなど他の画面を表示すると、表示が日本語に切り替わります。

日本語で表示されたダッシュボード

これでZabbixサーバのインストールは完了です。