本記事では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パッケージを使用して、以下の手順でインストールを行います。
- パッケージのインストール
- データベース作成
- 設定ファイルの編集
- Zabbixサーバ、エージェント、その他サービスの起動
- 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 にアクセスします。
以下のセットアップ画面が表示されます。
[Next step]ボタンを押して次の画面に進むと、要件のチェックが行われます。すべて「OK」となっていない場合は、必要なパッケージのインストールや設定を見直して再度セットアップを行います。
次に進むとデータベースの接続設定画面になります。必要に応じて設定を行います。接続できない場合はエラーとなります。
次に進むと、ZabbixサーバのIPアドレスおよびポート番号、識別用の名前(オプション)の設定画面になります。
次に進むと、設定内容の確認画面になります。問題なければ次に進むと設定が完了します。
設定完了後、[Finish]を押すとログイン画面が表示されます。
初期の管理者ユーザ「Admin」、パスワード「zabbix」でログインするとダッシュボード画面が表示されます。
言語を日本語にするには、メニューの[Administration] – [Users]を選択し、ユーザー一覧の「Admin」を選択します。
ユーザ設定画面の「User」タブの「Language」を「Japanese (ja_JP)」に変更し、[Update]ボタンを押します。
その後、ダッシュボードなど他の画面を表示すると、表示が日本語に切り替わります。
これでZabbixサーバのインストールは完了です。