目次
この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
ローカル環境でZabbixの動作を確認するためにVagrant上のCentOSにZabbixサーバを構築したときの手順を公開します。
前提と注意
注意
以下の手順はローカル環境での動作確認を目的とした構築手順でありセキュリティ的な考慮は行ってません。
本番で稼働させるにあたってはセキュリティに配慮した設定を意識してください。
Vagrant環境
Vagrant環境にCentOS6を入れて環境構築しています。
以下のように、private_network でホストOSからアクセスできるようにしておきます。
メモリはなんとなく1Gにしてますが、お試し用途であればデフォルトの512MBでも動くかもしれません。
Vagrant.configure("2") do |config|
config.vm.box = "centos/6"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
end
end
バージョン
OS/ミドルウェアのバージョンは以下のとおり。
- OS: CentOS release 6.9 (Final) ※Vagrantの仮想環境
- Zabbix: 3.0
- MySQL: 5.1.73
- PHP: 5.5
- Apache: 2.4
手順
ここからは vagrant up
で起動した仮想マシンでの作業です。
SELinux無効化
動作確認目的なのでSELinuxを無効化する/etc/selinux/config
を以下のように編集して仮想マシンを再起動します。
SELINUX=disabled
yumリポジトリ追加
以下のように Zabbix 公式のyumリポジトリを追加します。
# rpm -ivh https://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
追加後、zabbix
を検索したら以下のように表示されるはずです。
# yum search zabbix
Loaded plugins: fastestmirror
zabbix-agent.x86_64 : Zabbix Agent
zabbix-get.x86_64 : Zabbix Get
zabbix-java-gateway.x86_64 : Zabbix java gateway
zabbix-proxy-mysql.x86_64 : Zabbix proxy for MySQL or MariaDB database
zabbix-proxy-pgsql.x86_64 : Zabbix proxy for PostgreSQL database
zabbix-proxy-sqlite3.x86_64 : Zabbix proxy for SQLite3 database
zabbix-release.noarch : Zabbix repository configuration
zabbix-sender.x86_64 : Zabbix Sender
zabbix-server-mysql.x86_64 : Zabbix server for MySQL or MariaDB database
zabbix-server-pgsql.x86_64 : Zabbix server for PostgresSQL database
zabbix-web.noarch : Zabbix web frontend common package
zabbix-web-mysql.noarch : Zabbix web frontend for MySQL
zabbix-web-pgsql.noarch : Zabbix web frontend for PostgreSQL
zabbix-web-japanese.noarch : Japanese font settings for frontend
MySQLインストール
DBMS として MySQL を使用するため、以下のようにインストールします。
# yum install -y mysql-server
以下を /etc/my.cnf
に記述
[mysqld]
# 日本語設定
default-character-set=utf8
skip-character-set-client-handshake
innodb_file_per_table
innodb_buffer_pool_size=64M
innodb_log_file_size=16M
innodb_log_files_in_group=2
DBの準備
MySQLがインストールできたら、Zabbix用のDBとそのDBにアクセスするためのユーザを作成します。
サービス起動
# service mysqld start
# chkconfig mysqld on
MySQLに接続
# mysql -uroot
Zabbix用のDBの作成とユーザの作成
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixpassword';
mysql> flush privileges;
mysql> exit
Bye
NTPの設定
時刻がずれているといろいろ問題が出るのでNTPで時刻を同期しておきます。
インストール
# yum install ntp
サービス起動
# service ntpd start
# chkconfig ntpd on
Zabbix をインストール
以下のように yum コマンドでインストールします。
# yum install -y zabbix zabbix-server zabbix-server-mysql
初期データインポート
DBに初期データを投入する必要があるので、以下のように初期データを投入します。
# cd /usr/share/doc/zabbix-server-mysql-3.0.13/
# gunzip create.sql.gz
# cat create.sql | mysql -uzabbix -p zabbix
(パスワードを聞かれるので`zabbixpassword`を入力)
Zabbixの起動設定
Zabbixサーバの設定ファイル/etc/zabbix/zabbix_server.conf
を開いて以下のように記述します。
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpassword
DBSocket=/var/lib/mysql/mysql.sock
上記設定ファイルを保存したらサービスを起動します。
# service zabbix-server start
# chkconfig zabbix-server on
Webインターフェースのインストール
このままだとGUIによる操作ができないので、Webインターフェースをインストールします。
Webインターフェースを動かすにはCentOS6標準のyumリポジトリのPHPのバージョンは古いので、SCL有効化します。
# yum install -y centos-release-scl
SCLを有効化したらPHP5.5のインストール
# yum install -y php55-php php55-php-bcmath php55-php-gd php55-php-ldap php55-php-mbstring php55-php-xml php55-php-mysqlnd
SCLはインストールしただけでは有効化されないので、以下のようにログインシェルの起動時のスクリプトでPHP5.5を有効化します。
#!/bin/bash
source scl_source enable php55
上記内容を保存したら、一旦ログアウトし再度ログインしPHP 5.5系が有効になっていることを確認します。
php --version
でバージョンが5.5.x系であることを確認
# php --version
PHP 5.5.21 (cli) (built: Aug 30 2016 13:51:02)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
同様に、SCLからApacheをインストールします。
# yum install -y httpd24
とりあえず httpd を起動して確認
# service httpd24-httpd start
ブラウザから http://192.168.33.10/
にアクセスして welcom 画面が表示されることを確認。
ここまで完了したら、やっとZabbixのWebインターフェス及びその関連パッケージのインストールです。
# yum install -y zabbix-web zabbix-web-mysql zabbix-web-japanese
zabbix-web の設定ファイルを Apache に適用するため httpd/conf.d の下にコピー
# cp /usr/share/doc/zabbix-web-3.0.13/httpd24-example.conf /opt/rh/httpd24/root/etc/httpd/conf.d/zabbix.conf
コピーした後以下のようにtimezoneを編集しておきます。
php_value date.timezone Asia/Tokyo
ファイルの編集が完了したら Apache 再起動
# service httpd24-httpd restart
# chkconfig httpd24-httpd on
再度、ブラウザからhttp://192.168.33.10/zabbix/
にアクセスして「Welcome to Zabbix 3.x」の画面が表示されることを確認。
Zabbixの初期セットアップ
ここからは Web 画面に従って Zabbix の初期セットアップを進めます。
スクショを貼ると大量になるので、入力/選択項目のみ記載しておきます。
- Welcome
- [Next step]
- Check of pre-requisites
- すべて OK であることを確認
- Configure DB connection
- Database type : MySQL
- Database host : localhost
- Database port : 0 (default port)
- Database name : zabbix
- User : zabbix
- password : zabbixpassword
- Zabbix server details
- Host : localhost
- Port : 10051
- Name : (空)
- Pre-installation summary
- 内容を確認して[Next step]をクリック
- Install
Configuration file "/etc/zabbix/web/zabbix.conf.php" created.
と表示されているのを確認
これで Zabbix の初期セットアップ完了です。
Zabbixへのログイン
デフォルトで作成される管理者は以下の通りです
- ユーザ:
Admin
- パスワード:
zabbix
上記でログインできたら、Zabbix Server のセットアップ完了です。
Zabbixエージェント(zabbix_agentd)のインストール
今回はZabbixサーバ自身を監視対象とするため、Zabbixサーバを構築した環境にZabbixエージェントも導入します。
# yum install -y zabbix zabbix-agent
yum パッケージのインストール完了後、/etc/zabbix/zabbix_agentd.conf
の確認(デフォルトで以下の状態となっているはず)
# ZabbixサーバのIPアドレス
Server=127.0.0.1
# エージェントをインストールしたホスト名とIP
Hostname=Zabbix server
ServerActive=127.0.0.1
エージェントの起動と自動起動の設定もしておきます。
# service zabbix-agent start
# chkconfig zabbix-agent on
エージェントの設定は以上です。
動作確認
これで、Zabbix によって自身のサーバの情報が収集されているはずですので、実際にそれを確かめてみます。
以下のスクショではUIが日本語化されていますが、Zabbixをインストール直後は英語の状態です。
UIを日本語化するには、ユーザプロファイル(画面右上の人のアイコン)から言語を選択することで変更可能です。
まず、ZabbixサーバのWebUIにログインし、画面上部のメニューから[設定]-[ホスト]を選択しします。そうするとホスト一覧が表示されるので、一覧から “Zabbix Server” の先頭のチェックを付け一覧の下の[有効]ボタンをクリックします。
これで Zabbix Server 自身が監視対象となりました。監視によって取得された情報を参照するには、上部のメニューから[監視データ]-[概要]を選択。
さらに、画面右上の[タイプ]のドロップダウンリストから”データ”を選択します。
その結果、以下のように Zabbix Server に組み込んだ Agent が収集した情報が画面に表示されます。
実際に運用する場合は、この後導入されたミドルウエアに応じた監視設定などを組み込む必要がありますが、この記事ではここまでにしておきます。
詳しくは書籍やWebサイト等を参考に設定してみて下さい。
参考
この記事を書くにあたって以下の書籍及びWebサイトの情報が参考になりました。