"jm555"のブログ

Microsoft Azureに関する技術情報を中心に書きます!一個人の見解に基づいた内容であり、Microsoft社の公式見解ではありません。

Zabbix 3.0.1 on Azure - (1) 監視サーバーのインストール編 -

エンタープライズシステムのシステム監視で、Zabbixをお使いのお客様が多いですよね。Azure上でZabbix Serverを構築して、監視するということも可能ですので、数回に分けて、Zabbix on Azureにおけるシステム監視というテーマでブログを書きます。

 

シリーズ第1回の今回は、Ubuntu ServerでZabbixの監視サーバーを構築する際のインストールおよび初期設定方法を取り上げます。 

 まずは、普通に、Ubuntu ServerをAzure VMで作りましょう。

今回は、「Ubuntu 14.04 LTS」のAzure VMに、Zabbix 3.0.1をインストールします。

*1

 f:id:jm555:20160705164210p:plain

Azure VMインスタンスタイプですが、以下Zabbixの公式ドキュメントの通り、監視対象のホスト数を目途にサイジングすることになります。(※Zabbix 3.0の場合)

https://www.zabbix.com/documentation/3.0/manual/installation/requirements

 

Azure VMの場合は、こんな感じでしょうか。

  • 小規模 (20 監視ホスト程度): A1 Standard (1core/1.75GB Mem)
  • 中規模 (500 監視ホスト程度):A2 Standard (2core/3.5GB Mem)
  • 大規模 (1,000 監視ホスト以上):D3_V2 Standard (4core/14GB Mem)
  • 特大規模 (10,000 監視ホスト以上):D4_V2 Standard (8core/28GB Mem)

 

※OSの初期設定として、初回アップデートやタイムゾーン設定、ロケール設定(日本語化)、セキュリティ設定等は適宜行ってください。(今回はここが主題では無いため、割愛します...)

 

※あらかじめ、インスタンスに搭載されたメモリサイズ+2GB程度のスワップ領域を確保しておきましょう。そうしないと、Zabbixサーバーが起動した後、警告メッセージが出続けることになります。手順については、以下のサイトをご参照ください。

 

あらかじめ、Zabbix Web UIへのアクセス許可設定をしておきましょう。

Azure ポータルから設定する場合は、[ネットワークセキュリティグループ] - [全般] - [受信セキュリティ規則] から、http(TCP/80)でのアクセス許可設定を追加します。

f:id:jm555:20160706141435p:plain

 

ZabbixのWeb UI画面へのアクセス時に、IPアドレス指定では無く、FQDN指定にする場合は、Azure ポータルから、Zabbixサーバーの [パブリックIPアドレス] - [全般] - [構成] - [DNS名ラベル]にて、FQDNを指定しておきましょう。

f:id:jm555:20160705232753p:plain

 

では、本格的にZabbixサーバーのインストールと初期設定を進めていきましょう。

 

1.  TrueTypeフォントのインストール

ZabbixのWebインターフェースで、日本語のTrueTypeフォントを利用するので、事前にインストールしておきます。

$ sudo apt-get install fonts-vlgothic

 

2. MySQLのインストール

Ubuntu用のパッケージで、Zabbixサーバーをインストールする際に自動的にデフォルトの文字コードでデータベースを作成されてしまわないよう、事前にMySQLをインストールしてデフォルトの文字コードを設定します。

$ sudo apt-get -y install mysql-server

 インストール時に、MySQLのrootパスワードを設定します。

f:id:jm555:20160705172358p:plain

MySQLのデフォルト設定として、/etc/mysql/my.cnfの[mysqld]セクションに以下の設定を追加します。

character-set-server = utf8
collation-server = utf8_bin
skip-character-set-client-handshake
innodb_file_per_table

追加した設定内容を反映させるために、MySQLを再起動します。

$ sudo service mysql restart

 

3. Zabbixのリポジトリ登録

Zabbixが公開しているUbuntu用のリポジトリを登録して、リポジトリ情報をアップデートします。

$ sudo wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+trusty_all.deb

$ sudo dpkg -i zabbix-release_3.0-1+trusty_all.deb

$ sudo apt-get update

$ sudo apt-get upgrade

 

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

3.0.1をインストール後に、zabbix_server.logにエラーが出力されたため、snmpパッケージも合わせてインストールします。

apt-get install zabbix-agent zabbix-server-mysql zabbix-frontend-php snmp
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
apache2 apache2-bin apache2-data fping libapache2-mod-php5 libapr1
libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libiksemel3 libodbc1
libopenipmi0 libperl5.18 libsensors4 libsnmp-base libsnmp30 libssh2-1 php5
php5-cli php5-common php5-gd php5-json php5-ldap php5-mysql php5-readline
snmpd ssl-cert ttf-dejavu-core
提案パッケージ:
apache2-doc apache2-suexec-pristine apache2-suexec-custom apache2-utils
php-pear libmyodbc odbc-postgresql tdsodbc unixodbc-bin lm-sensors
snmp-mibs-downloader php5-user-cache openssl-blacklist
以下のパッケージが新たにインストールされます:
apache2 apache2-bin apache2-data fping libapache2-mod-php5 libapr1
libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libiksemel3 libodbc1
libopenipmi0 libperl5.18 libsensors4 libsnmp-base libsnmp30 libssh2-1 php5
php5-cli php5-common php5-gd php5-json php5-ldap php5-mysql php5-readline
snmp snmpd ssl-cert ttf-dejavu-core zabbix-agent zabbix-frontend-php
zabbix-server-mysql
アップグレード: 0 個、新規インストール: 32 個、削除: 0 個、保留: 0 個。
12.4 MB のアーカイブを取得する必要があります。
この操作後に追加で 68.3 MB のディスク容量が消費されます。

~ 以下省略 ~

  

4. データベースの作成

最初に、データベースとZabbixのアクセス用アカウントを作成します。

### MySQLデータベースにログイン ###

$ sudo mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 5.5.49-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

### Zabbix用のデータベース作成 ###
mysql> create database zabbix;
Query OK, 1 row affected (0.00 sec)

 

### ユーザーzabbixを作成、パスワードを設定 ###

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

 

### ユーザー情報の読み込み ###

mysql> flush privileges; 

mysql> exit

 

引き続き、Zabbixパッケージ内のデータベース作成用ファイルを利用して、テーブルを作成し、初期データをデータベースにロードします。

$ zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uroot zabbix -p
Enter password:

 

5. Zabbix 設定ファイルの更新

最低限の設定として、DBPasswordを設定します。

$ sudo vi /etc/zabbix/zabbix_server.conf

 

### Option: DBPassword

 DBPassword=zabbix

→初期設定はコメントアウトされている

 

6. ZabbixのWeb UI用設定変更 

Zabbixのパッケージのデフォルトでは、PHPのtimezoneの設定がコメントアウトされているので、設定を有効にしてタイムゾーンを"Asia/Tokyo"に設定します。

$ sudo vi /etc/apache2/conf-enabled/zabbix.conf

 

<IfModule mod_php5.c>

初期設定: # php_value date.timezone Europe/Riga

変更後: php_value date.timezone Asia/Tokyo

 

7. デーモンの起動

以上の設定が終了したら、デーモンを起動します。

$ sudo service zabbix-agent start
* Starting Zabbix agent zabbix_agentd [ OK ]

$ sudo service zabbix-server start
* Starting Zabbix server zabbix_server [ OK ]

$ sudo service apache2 restart
[ OK ]

※apache2は既に起動済みのため、再起動(restart)になります。

 

ここまでで、ZabbixのWeb UIにアクセスできます。

Webブラウザから、

http://"ZabbixサーバーのIPアドレス"/zabbix

もしくは

http://"ZabbixサーバーのFQDN (xxx..japaneast.cloudapp.azure.com)"/zabbix

にアクセスしてみましょう。

 

以下のようなWelcome画面が表示されたら、監視サーバーとしての初期設定は終了です。次にWeb UIからZabbixの初期設定を行いましょう。次回に続く...

f:id:jm555:20160705233304p:plain

 

*1:Ubuntu 16.04 LTSを使いたいところですが、Zabbix 3.0の公式パッケージが無いため、14.04 LTSを使うことにします。