CentOSにZabbix 2.2(LTS)をインストールする

概要
1. Zabbixについて
2. Zabbixのインストール手順
2-1. MySQLのインストール
2-2. Zabbixのyumリポジトリの追加
2-3. インストール
2-4. Zabbix用のデータベースの作成
2-5. セットアップ
2-6. 動作確認

1. Zabbixについて

http://www.zabbix.com/jp/

サーバやネットワークに接続されたデバイスを監視する監視機能
収集したデータを元にグラフ化、ネットワークマップの作成を行うグラフィカル監視
収集したデータに閾値を設定し、障害/復旧時に管理者の通知を行う障害検知

  • 主な機能

Zabbixエージェント
SNMPエージェント (v1、v2、v3)
シンプルチェック(ping死活監視、TCPポート監視)
ODBCを利用したデータベース監視
IPMIを利用したハードウェア監視
Telnet/SSH経由の監視
カスタムスクリプトによる監視
Zabbixサーバ内部ステータス

  • Zabbixの構成

f:id:eno0514:20151103235525p:plain

2. Zabbixインストール手順

今回はローカル環境(Vagrant)で作成しました。 Vagrantfileは以下になります。

作業環境
OS: Windows7 Home Premium 64bit
VirtualBox: 5.0.2
Vagrant: 1.7.4

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

   config.vm.box = "centos67"
   config.vm.box_url = "https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box"

   config.vm.define "server" do |server|
     server.vm.hostname = "server"
     server.vm.network "private_network", ip:"192.168.33.20"
     server.vm.provider "virtualbox" do |vb|
        vb.customize ["modifyvm", :id ,"--memory", "1024"]
     end
   end

   config.vm.define "target" do |target|
     target.vm.hostname = "target"
     target.vm.network "private_network", ip:"192.168.33.21"
     target.vm.provider "virtualbox" do |vb|
        vb.customize ["modifyvm", :id ,"--memory", "1024"]
     end
   end

end

server: 監視サーバー、target: 監視対象
今回の作業対象はserverになります。

2-1. MySQLのインストール

  • mysql-serverのインストール
# yum install mysql-server

# mysql --version
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

# service mysqld start
  • mysqldの自動起動設定、rootパスワードの初期化
# chkconfig mysqld on
# mysqladmin -u root password 'password'
  • mysqldの初期セットアップ
# mysql_secure_installation

新しいパスワードを設定して、質問には"Y"で答えます。

2-2. Zabbixのyumリポジトリの追加

# rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm

2-3. インストール

  • Zabbixサーバーのインストール
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
  • Zabbixエージェントのインストール
# yum install zabbix-agent

Zabbixサーバにも自身を監視するために、Zabbixエージェントをインストールします。

# php -v
PHP 5.3.3 (cli) (built: Jul  9 2015 17:39:00)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Aug 24 2015 17:52:49

2-4. Zabbix用のデータベースを作成

# mysql -u root -p

mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)

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

mysql> quit;
  • 作成したZabbix用のデータベースに、Zabbixのテーブルを作成する
# cd /usr/share/doc/zabbix-server-mysql-2.2.10/create/

# mysql -u root -p zabbix < schema.sql
Enter password:

# mysql -u root -p zabbix < images.sql
Enter password:

# mysql -u root -p zabbix < data.sql
Enter password:
  • Zabbixのサービス起動

Zabbixのサービスを自動起動させます。

# chkconfig zabbix-server on
# chkconfig zabbix-agent on

Zabbixのサービスを起動させます。

# service zabbix-server start
Starting Zabbix server:                                    [  OK  ]

# service zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]

Apacheのサービスを再起動させます。

# service httpd restart

2-5. セットアップ

Zabbixの管理画面にアクセスし、最終設定を行います。
http:// [監視サーバーのIPアドレス]/zabbix

  • Welcome

"Next"をクリックします。

  • Check of pre-requisites

PHPタイムゾーンが設定されていないことでエラーが表示されるので、/etc/php.iniでタイムゾーンの設定を行い、対処します。

[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = Asia/Tokyo

Apacheのサービスを再起動させます。

# service httpd restart

全て"OK"になっていることを確認します。
yumリポジトリを使用してインストールしているので、必要なパッケージはすべてインストールされているはずです。

  • Configure DB connection

zabbix用のデータベース作成時に作成したmysqlのユーザとパスワードを使用します。
"Test connection"で正常にデータベースにアクセスできるか確認します。

  • Zabbix server details

ここはそのまま"Next"を押します。

  • Pre-Installation summary

セットアップパラメータの確認画面。問題なければ、"Next"をクリックします。

  • Install

OK を確認し、Finishをクリックします。

2-6. 動作確認

  • Zabbix管理画面へログイン

デフォルトのアカウントは以下になります。
Username: admin
Password: zabbix

f:id:eno0514:20151103233004p:plain

  • ダッシュボード

まずは、管理者(admin)のProfileを変更します。
右上の「Profile」をクリックして下さい。
そこでパスワードと言語を変更して下さい。

f:id:eno0514:20151103232914p:plain

*言語設定で日本語が選択できない場合
日本語ロケールがないので追加します。

# localedef -f UTF-8 -i ja_JP ja_JP

Apacheのサービスを再起動します。

# service httpd restart
  • Zabbix Serverエラーへの対処

f:id:eno0514:20151103232933p:plain

上記メッセージは、WebUIからZabbix Serverのサービスが認識できていません。
原因として考えられるのが、

zabbix_server が動作していない
SELinux が有効になっていて、WebUIからzabbix_serverを認識できない

です。

  • Zabbix Serverのログファイル

Zabbix Serverのログファイルは/var/log/zabbix/zabbix_server.logに記録されます。
ログを見るとZabbix Serverがデータベースにアクセスできていないことが分かります。

  • Zabbix Serverの設定ファイル

Zabbix Serverの設定ファイルは/etc/zabbix/zabbix_server.confです。
このファイルのDBUser、DBPasswordに今回設定した値を入れて下さい。

### Option: DBUser
#       Database user. Ignored for SQLite.
#
# Mandatory: no
# Default:
# DBUser=

DBUser=zabbix

### Option: DBPassword
#       Database password. Ignored for SQLite.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=

DBPassword=zabbixpassword

設定後、Zabbix Serverを再起動します。

# service zabbix-server restart

これで正常に動作すると思います。
以上になります。

参考:
機能 | ZABBIX-JP
3 パッケージからのインストール [Zabbix Documentation 2.2]