ZabbixでSoftLayerを監視してみよう!

2015年6月3日(水)
三島 匡史

[PR]

SoftLayer環境の監視

SoftLayerが提供する監視サービス

SoftLayerではSoftLayer環境の監視サービスを用意しています。サーバーをオーダーする際に指定することができ、ping監視とメール通知程度であれば無償で利用できます。有償オプションを選択することで、ネットワークトラフィックやアプリケーションの監視も可能となってます。通常は監視と自動通知ですが、アドオンとして有人監視サービスもあり、大抵の要件は満たせるようなサービスが提供されています。

この監視にはCA Technorogies社のCA Nimsoftを使っていて、サーバーをオーダーする際にデフォルトでは無償の監視サービスが選択されており、自動でエージェントがインストールされます。オーダー時に「none」を選択することでこのエージェントがインストールされないようにすることもできます。

Zabbixによる監視

SoftLayerの提供する監視サービスを使うこともできますが、昨今は既にZabbixを使っている方も多く、既存環境と統合的に監視したり、運用時のオペレーションを考え、既存環境と同じ仕組みにしたいということが度々あります。

今回、そうした需要を鑑み、Zabbixを使ってSoftLayer環境を監視する際のポイントをまとめました。Zabbix自体の細かな設定には今回は触れません。

Zabbixの環境構築

環境

今回は「Zabbix Server」とともにZabbixのフロントエンドを導入する監視サーバーと「Zabbix Agent」を導入する監視対象として仮想サーバー1台、ベアメタルサーバー1台を使用します。OSはCentOS7を使用し、Zabbix Serverは最新の安定版であるZabbix2.4を使用します。

監視サーバーのテンプレートはLAMP環境が入ったものを選択し、データベースについてはCentOS7では標準となったMariaDBを使用したインストールを行います。仮想サーバーではZabbix Agentを用いた監視を行い、ベアメタルサーバーではIPMIを用いた監視を行います。

監視サーバー

ホスト名Zab1
テンプレートCentOS7.0-64 LAMP for VSI
パブリックIPアドレスXX.XX.XX.1
プライベートIPアドレス10.YY.YY.1

仮想サーバー

ホスト名zab2
テンプレートCentOS7.0-64 Minimal for VSI
パブリックIPアドレスXX.XX.XX.2
プライベートIPアドレス10.YY.YY.2

ベアメタルサーバー

ホスト名zab3
オペレーティングシステムCentOS 7.x (64 bit)
パブリックIPアドレスXX.XX.XX.3
プライベートIPアドレス10.YY.YY.3
Management IP アドレス10.YY.YY.4

監視サーバーにおけるZabbix Serverの構築

1.リポジトリの登録

今回の環境は、Zabbix ServerのOSはCentOS7、Zabbix2.4なので、これに合わせ、Zabbixのインストールを行うためのリポジトリを登録します。

# yum install http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm

2.Zabbix Serverのインストール

登録されたリポジトリを使ってZabbix Serverのインストールを行います。日本語のUIと、MariaDBの中身は基本的にはMySQLと変わらないので、データベースはMySQLを指定します。途中で2回確認がありますが、2回とも「y」を入力します。

# yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese

3.MariaDBの設定

既にインストールされているので、設定を追加します。Zabbixサーバーにて日本語が文字化けなどうまくいかないことがあるので、利用する文字コードを明示的に設定します。

innodb_file_per_tableを有効にすることで、各テーブルを別ファイルとして作成します。性能、管理性の向上が見込めます。

# vi /etc/my.cnf.d/server.cnf
 [mysqld]
 character-set-server = utf8
 collation-server     = utf8_general_ci
 skip-character-set-client-handshake
 innodb_file_per_table

MariaDBを再起動します。

# systemctl restart mariadb

4.MariaDBデータベースの作成

データベースの作成と接続するためのユーザーを作成します。

データベース名zabbix
ユーザー名zabbix
パスワードsoftlayer
# mysql -uroot
 mysql> create database zabbix;
 mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'softlayer' ;
 mysql> flush privileges;
 mysql> exit

5.初期データの投入

Zabbixで使用する各テーブルのスキーマ、イメージデータ、初期データを投入します。

# cd /usr/share/doc/zabbix-server-mysql-2.4.4/create/
# mysql -uroot zabbix < schema.sql
# mysql -uroot zabbix < images.sql
# mysql -uroot zabbix < data.sql

6.Zabbixサーバーの設定

デフォルト設定でDBサーバーはローカルホスト、接続するDB名と接続用ユーザー名は共に「zabbix」になっているので、パスワードだけ設定します。

# vi /etc/zabbix/zabbix_server.conf
DBPassword=softlayer

7.PHPのタイムゾーンの設定

タイムゾーンを日本に設定します。ヨーロッパの設定例がありますので、その下に追記します。

# vi /etc/httpd/conf.d/zabbix.conf
<Directory "/usr/share/zabbix">
php_value date.timezone Asia/Tokyo ←追加
<Directory>

8.Zabbixサービスの起動

Apacheの再起動とZabbixサーバーのサービスの登録、起動を行います。

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

サービス登録の確認

# systemctl --full list-unit-files |grep zabbix-server
  zabbix-server.service                  enabled

※「enabled」になっていることを確認

サービス起動の確認

# systemctl --full | grep zabbix-server
zabbix-server.service    loaded active running   Zabbix Server

※「running」になっていることを確認

CentOS7.1で動作させる場合の注意点

CentOS7.1が2015年3月31日にリリースされ、それに伴いSoftLayer上のテンプレートもCentOS7.1にバージョンアップしています。CentOS7.1ではgnutlsパッケージのバージョンが3.1.18から3.3.8に上がりましたが、この影響を受け、Zabbixが起動できないという問題が起きています。

SoftLayer上のCentOS7.1を使った場合に、Zabbix Serverを利用するための暫定的な対処法としましては、CentOS7.0で使用していた3.1.18に強制的にダウングレードすることで、Zabbix Serverを起動できるようになります。CentOS7.0のファイルは通常のダウンロードサイトから移動されていますが、次のコマンドにて強制的にダウングレードが可能です。

# rpm -Uvh --force http://vault.centos.org/7.0.1406/os/x86_64/Packages/gnutls-3.1.18-8.el7.x86_64.rpm

9.Zabbixのセットアップ

手元のWebブラウザにて次のURLから監視サーバーのZabbixインターフェースのにアクセスし、初期セットアップをします。

http://XX.XX.XX.1/zabbix/

セットアップは「3. Configure DB connection」を除き、「Next」を選択することで次の画面へ進みます。

「3.Configure DB connection」ではデータベースへの接続確認を行いますので、接続のためのユーザー名、パスワードを入力し、「Test connection」を押下し確認します。今回、ユーザー名は zabbix 、パスワードは softlayer を指定します。

最後に「Finish」を押下し完了すると、Zabbixインターフェースへのログイン画面が表示されます。次の初期設定にてログインし、管理画面が表示されることを確認します。

ユーザー名Admin
パスワードzabbix

管理画面が初期状態は英語なので、これを日本語にします。

  1. まず、右上にある「Profile」をクリックします。
  2. 次にユーザープロファイルの設定にて「Language」をJapanese(ja_JP)にします。
  3. 最後に「Update」をクリックします

仮想サーバーにおけるZabbix Agentを使った監視

仮想サーバーにZabbix Agentをインストールし、Zabbix Serverによる監視を行います。

1.リポジトリの登録

今回の環境は、Zabbix ServerはZabbix2.4なので、Zabbix Agentも2.4を用います。仮想サーバーのOSはCentOS7なので、インストールするために次のようにリポジトリを登録します。

# yum install http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm

2.エージェントのインストール

yumコマンドにてエージェントをインストールします。

# yum install zabbix-agent

3.エージェントの設定

エージェントの入ったサーバーのホスト名とZabbixサーバーのIPアドレスを指定します。ホスト名はZabbixServerとエージェントの間での識別に利用され、Zabbix Serverでの監視の指定時にも使用します。

# vi /etc/zabbix/zabbix_agentd.conf
 Hostname=zab2 ←修正

 Server=XX.XX.XX.1 ←修正

4.エージェントの起動とサービスの登録

Zabbix Agentのサービスの登録、起動を行います。

# systemctl enable zabbix-agent
# systemctl start zabbix-agent

サービス登録の確認

# systemctl --full list-unit-files |grep zabbix-agent
  zabbix-agent.service                  enabled  ←enabledになっていることを確認

サービス起動の確認

# systemctl --full | grep zabbix-agent
zabbix-agent.service    loaded active running   Zabbix Agent  ←runningになっていることを確認

5.ホストの登録

ホストを作成します。「設定」→「ホスト」→「ホストの作成」の順でクリックします。

  1. 「ホスト名」には3で指定したホスト名「zab2」を入力します。
    ここでは「新規グループ作成」にzabbixと入力し、グループを新規に作ります。
  2. 「エージェントのインターフェース」には仮想サーバーのIPアドレスを入力します。
  3. 続けて「テンプレート」タブをクリックし、「新規テンプレートをリンク」にて「選択」を押下し、テンプレートを選びます。
  4. ここでは「Template Os Linux」を選びました。その後、枠内にある「追加」をクリックします。
  5. 最後に一番下の「追加」をクリックすると、ホストが追加されます。

6.グラフの確認

仮想サーバーの監視データが取得できるようになったので、グラフを確認します。「監視データ」→「グラフ」の順でクリックします。ホストに「zab2」を選択し、グラフに「Memory usage」などを選択し、監視とグラフの生成が確認できます。

ベアメタルサーバーにおけるIPMIを使った監視

1.IPMI

SoftLayerでベアメタルサーバー利用する場合、IPMI(Intelligent Platform Management Interface)を使った監視を行えます。IPMIは物理サーバーのハードウエア管理を行うための標準的なインターフェースの仕様です。各社名前が異なりますが、最近のサーバーはIPMIに対応した専用のネットワークインターフェースが用意され、OSを介さずに直接サーバーのCPU、ファン、電圧等の物理情報を取得したり、物理的な電源のオン/オフを行うことができます。

1.ベアメタルサーバーのIPMI設定確認

ベアメタルサーバーを作成後、「Device List」から該当サーバーを選択し、「Remote Management」タブからIPMIに関する情報を確認できます。

「IPMI Status」が「On」であることを確認します。IPMIへの接続にはここに表示されているIPアドレス、ユーザー名、パスワード(Showチェックボックスにチェックし表示)が必要になります。この情報にてZabbixの設定を行います。

2.Zabbix Serverの設定

Zabbix ServerにてIPMI monitoringは有効になっていますが、StartIPMIPollersの設定がデフォルトでは0になっています。StartIPMIPollersはIPMIポーリング監視プロセスの起動数を指定するため、このままだとIPMIポーリング監視プロセスが起動せず、IPMIでのポーリングが行えません。IPMIでのポーリング監視を行うためには、次のようにStartIPMIPollersに1以上を指定し、Zabbix Serverを再起動します。

# vi /etc/zabbix/zabbix_server.conf
  StartIPMIPollers=3 ←修正
# systemctl restart zabbix-server

3.ホストの登録

ホストを作成します。「設定」→「ホスト」→「ホストの作成」の順でクリックします。

  1. 「ホスト名」には「zab3」を入力します。
  2. ここでは「新規グループ作成」に「IPMI」と入力し、グループを新規に作ります。
  3. Zabbix Agentを使わない場合、「エージェントのインターフェース」は削除します。
  4. 「IPMIインターフェース」の追加をクリックし、1で確認したIPアドレスと、ポート番号623を入力します。

IPMIタブをクリックし、次の設定を行います。

認証アルゴリズムMD2
特権レベルユーザー
ユーザー名1で確認したユーザー名
パスワード1で確認したパスワード

最後に追加をクリックし、ホストを登録します。

4.アイテムの登録

「設定」→「ホスト」→登録したいホストの行の「アイテム」→「アイテムの作成」の順でクリックします。

アイテムの設定を行います。

  1. 名前には任意の名前を入力します。ここでは「SoftLayer_ipmi」としています。
    タイプには「IPMIエージェント」を選択します。
  2. キーはSoftLayerのIPMIからデータを取得するためのキーを指定します。ここでは温度を取得するためのキーを指定しています。
  3. ホストインターフェースにはホストの設定にて登録したIPMIインターフェースを選択します。
    IPMIセンサーには任意のセンサー名を指定します。
  4. その他必要に応じて設定し、最後に一番下にある追加をクリックします。

5.グラフの追加

「設定」→「ホスト」→登録したいホストの「グラフ」→「グラフの作成」の順でクリックします。

グラフの設定を行います。

  1. 名前には任意の名前を入力します。ここでは「SoftLayer_ipmi」としています。
  2. アイテムの欄の追加をクリックします。「アイテムの登録」で作成したアイテムを選択します。
  3. その他必要に応じて設定し、最後に一番下にある追加をクリックします。

グラフの確認
「監視データ」→「グラフ」。ホスト名とグラフ名を指定し、グラフが表示されていることを確認します。

6.グラフの確認

IPMI経由での監視データが取得できるようになったので、グラフを確認します。「監視データ」→「グラフ」の順でクリックします。ホストに「zab3」を選択し、グラフに「SoftLayer_ipmi」を選択し、監視とグラフの生成が確認できます。

テコラス株式会社
OSSを中心とした技術教育事業の開発・運営、インフラエンジニア、プロダクトマーケティングの経験を活かし、現在はテコラス株式会社にてサービスの企画に従事。日本CloudStackユーザー会ボードメンバー。趣味は料理、水耕栽培など。呑みの誘いは断らないが信条

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています