こんにちは、さくらインターネットの大喜多です。

今回より数回にわたり、オープンソースの監視ソフトウェア「Zabbix」を用いたITインフラの監視について解説してまいります。今回は、Zabbix Serverのセットアップについてご説明いたします。

第1回 クラウドインフラのしくみ
第2回 クラウドを支える仮想化
第3回 Linuxコマンドを用いたボトルネック調査
第4回 インターネットを支える技術
第5回 ITインフラ監視入門~Zabbixインストール編~
第6回 ITインフラ監視入門~Zabbix活用編~
第7回 いまどきのインフラ設計のキモ
第8回 Design for FailureなWebシステムの構築

Zabbixの概要

Zabbixは、ラトビアにあるZabbix SIAという企業によって開発されているオープンソースの監視ソフトウェアです。オープンソースでありながら開発・サポートはコミュニティでなく企業によって主導されており、無償版・有償版といった区分がなく、すべての機能が利用可能な点が特徴です。

Zabbixはいくつかの監視方法をサポートしており、大まかには以下のように分類されます。それぞれの設定手順につきましては、次回以降にて解説いたします。

・監視対象にソフトウェアをインストールせずに、HTTPやSSHなどのサービスを外部から監視する

・Zabbixエージェントと呼ばれるソフトウェアを監視対象のサーバにインストールし、CPUロード、 ネットワーク使用率、ディスク容量などのようなステータスを監視する

・SNMPエージェントを利用して監視する(サーバのほか、SNMPに対応したネットワーク機器の監視も可能)

Zabbixのインストール

本節ではCentOS7にZabbixをインストールする手順について解説いたします。

本記事でZabbixをインストールした環境は以下の通りです。

サーバー さくらのVPS 1G(石狩)
OS CentOS7.4.1708
Zabbix-Serverバージョン 3.4.4
Webサーバー Apache2.4.6
DBサーバー MariaDB 5.5.56

OSを最新状態にアップデートします。

# yum -y update

Webサーバー、PHP、DBサーバー等、Zabbixを動作させるために必要なプログラムをインストールします。

# yum -y install httpd-devel php php-devel php-pdo php-mysqlnd php-mbstring php-mcrypt php-gd php-pear php-pecl-apc-devel zlib-devel mariadb-devel mariadb-server

Zabbixのリポジトリをインストールし、yumコマンドでZabbixをインストールします。zabbix-serverとzabbix-webは別のプログラムで、それぞれ別のサーバーにインストールすることもできますが、ここでは同一サーバー上に両方インストールしています。また、zabbix-agentは本来監視対象のサーバーにインストールするソフトウェアですが、自身を監視するためにインストールします(zabbix-agent動作確認の意味もあります)。

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
# yum -y install zabbix-agent

MariaDBを起動し、ログインします。

# systemctl start mariadb
# systemctl enable mariadb
# mysql -u root

zabbix-serverが使用するデータベース「zabbix」およびユーザー「zabbix」を作成します。後述するzabbix-serverの初期セットアップにおいて、zabbixユーザーを使用してzabbixデータベースにアクセスするよう設定します。new-passwordとなっている部分は任意のパスワードに置き換えてコマンドを実行してください。

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

セキュリティ対策のためrootユーザーにパスワードを設定し、MariaDBのコマンドラインを終了します。new-passwordとなっている部分は任意のパスワードに置き換えてコマンドを実行してください。

UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root';
FLUSH PRIVILEGES;
quit;

Zabbix 用のデータベーススキーマとデータをzabbixデータベースにインポートします。new-passwordとなっている部分は任意のパスワードに置き換えてコマンドを実行してください。

# cd /usr/share/doc/zabbix-server-mysql-3.4.4/
# zcat create.sql.gz | mysql -u zabbix -p new-password

Zabbix サーバーの設定ファイルに、先ほど作成したzabbixユーザーのパスワードを記入します。new-passwordとなっている部分は任意のパスワードに置き換えてコマンドを実行してください。

# vim /etc/zabbix/zabbix_server.conf
---

# DBPassword=
↓
DBPassword=new-password

Apacheの設定ファイルで、タイムゾーン(日本/東京)を指定します。

# vim /etc/httpd/conf.d/zabbix.conf
---

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

zabbix-serverおよびApacheの起動と自動起動設定をおこないます。

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

firewall-cmdコマンドでfirewalldの設定を変更し、ZabbixのWeb-UIが表示できるようにhttp(80/TCP)への通信を許可します。

firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --reload

ここからはWebブラウザ上で作業をおこないます。以下のURLにアクセスします。
http://[サーバのIPアドレス]/zabbix/

以下の画面が表示されたら「Next Step」をクリックし、次に進みます。

以下の画面ですべてOKになっていれば、zabbix-serverセットアップのための要件を満たしています。NGになっている箇所があった場合は表示されるメッセージに従い修正してください。「Next Step」をクリックし、次に進みます。

MariaDBにログインして作成した、zabbix-serverで使用するデータベースとユーザーを設定します。本記事ではデータベース名は「zabbix」、ユーザー名は「zabbix」として作成しています(パスワードは作成時に入力した任意の文字列です)。入力が完了したら、「Next Step」をクリックし、次に進みます。

以下の画面が表示されたら「Next Step」をクリックし、次に進みます。

以下の画面が表示されたら、内容を確認のうえ、「Next Step」をクリックし、次に進みます。

以下の画面が表示されたら「Finish」をクリックし、セットアップを完了します。

以下のログイン画面が表示されますので、usernameとpasswordを入力し、ログインします。初期状態で設定されているユーザーは、usernameが「Admin」、Passwordが「zabbix」です。ログイン後変更するようにしてください。

以下の画面(Zabbixのダッシュボード)が表示されればログインは成功です。以降はこの画面から監視設定等を行います。

次回はZabbixを用いたサーバ監視について解説いたします。