Skip navigation
2014

今回は、vSphere AppHA で、

Apache httpd Server 2.2 を保護してみようと思います。

 

今回の環境

  • vCenter / ESXi 5.5 u1
  • vSphere AppHA 1.1
  • vCenter Hyperic 5.8.1
  • 保護対象として、Oracle Linux 6.5 と、同梱の httpd を使用しています。

[root@vm03 ~]# cat /etc/oracle-release

Oracle Linux Server release 6.5

[root@vm03 ~]# uname -r

3.8.13-16.2.1.el6uek.x86_64

[root@vm03 ~]# rpm -q httpd

httpd-2.2.15-29.0.1.el6_4.x86_64

 

※今回は、すでに AppHA 環境が構築できている前提です。

AppHA の環境構築については、下記を参照してください・・・

vSphere AppHA への道。Part 1. Hyperic の vApp デプロイ

 

Apache httpd の起動

 

まず、Apacheを起動します。

AppHA(と連携する Hyperic)では、httpd の監視で

/server-status を見るようなので、それが表示できるようにしておきます。

※今回は、とりあえず動くようにします・・・

[root@vm03 ~]# cd /etc/httpd/conf/

[root@vm03 conf]# cp -p httpd.conf httpd.conf_bk

[root@vm03 conf]# vi httpd.conf

 

httpd の設定ファイル(httpd.conf) では、ServerName を設定して、

<Location /server-status> のコメントアウトを外します。

ちなみに、192.168.5.193 はこのゲスト(vm03)の IP アドレスです。

 

(修正前)

   917  # Allow server status reports generated by mod_status,

   918  # with the URL of http://servername/server-status

   919  # Change the ".example.com" to match your domain to enable.

   920  #

   921  #<Location /server-status>

   922  #    SetHandler server-status

   923  #    Order deny,allow

   924  #    Deny from all

   925  #    Allow from .example.com

   926  #</Location>

(編集後)

   921  <Location /server-status>

   922      SetHandler server-status

   923      Order deny,allow

   924      Deny from all

   925      Allow from 192.168.5.193

   926  </Location>

 

今回の httpd.conf の編集内容はこれだけです。

[root@vm03 conf]# diff httpd.conf_bk httpd.conf

276c276

< #ServerName www.example.com:80

---

> ServerName 192.168.5.193

921,926c921,926

< #<Location /server-status>

< #    SetHandler server-status

< #    Order deny,allow

< #    Deny from all

< #    Allow from .example.com

< #</Location>

---

> <Location /server-status>

>     SetHandler server-status

>     Order deny,allow

>     Deny from all

>     Allow from localhost

> </Location>

 

httpd を自動起動するようにしたうえで、起動しておきます。

[root@vm03 ~]# chkconfig httpd on

[root@vm03 ~]# chkconfig --list httpd

httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@vm03 ~]# service httpd start

httpd を起動中:                                            [  OK  ]

[root@vm03 ~]# service httpd status

httpd (pid  1719) を実行中...

 

Web ブラウザからも表示確認しておきます。

appha-httpd-01.png

 

ちなみに、今回使用した OS 同梱の httpd は、

/server-status を使用できるようにする mod_status モジュールが

デフォルトで読み込まれます。

[root@vm03 ~]# httpd -M | grep status_module

status_module (shared)

Syntax OK

 

/server-status のページが取得できることを確認しておきます。

GUI 環境を起動していない Linux だったので、

Web ブラウザではなく curl コマンドで確認してみました。

[root@vm03 ~]# curl http://192.168.5.193/server-status | head

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

103  1763  103  1763    0     0  34599      0 --:--:-- --:--:-- --:--:-- 51852

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<html><head>

<title>Apache Status</title>

</head><body>

<h1>Apache Server Status for 192.168.5.193</h1>

 

<dl><dt>Server Version: Apache/2.2.15 (Unix) DAV/2</dt>

<dt>Server Built: Aug 13 2013 10:51:17

</dt></dl><hr /><dl>

<dt>Current Time: Friday, 30-May-2014 01:09:56 JST</dt>

 

監視対象ゲストへの Hyperic エージェントの導入

 

今回も、下記の Hyperic Agent を使用します。

hyperic-hqee-agent-x86-64-linux-5.8.1.tar.gz

[root@vm03 ~]# mkdir /opt/vmware

[root@vm03 ~]# cd /opt/vmware/

[root@vm03 vmware]# tar zxf /tmp/hyperic-hqee-agent-x86-64-linux-5.8.1.tar.gz

[root@vm03 vmware]# ln -s hyperic-hqee-agent-5.8.1 hyperic

[root@vm03 vmware]# cd /opt/vmware/hyperic/conf/

[root@vm03 conf]# sed -i "s/#agent.setup.acceptUnverifiedCertificate=no/agent.setup.acceptUnverifiedCertificate=yes/" agent.properties

[root@vm03 conf]# sed -i "s/^accept.unverified.certificates=false/accept.unverified.certificates=true/" agent.properties

 

下記のような起動スクリプトを作成して・・・

/etc/init.d/hq-agent

#!/bin/bash

#

# hq-agent: Hyperic HQ Agent

#

# chkconfig: 35 99 99

# description: Hyperic HQ Agent

#

HYPERIC_AGENT_USER=root

HYPERIC_AGENT_CMD=/opt/vmware/hyperic/bin/hq-agent.sh

su - $HQ_AGENT_USER -c "$HYPERIC_AGENT_CMD $@"

exit $?

 

OS 起動時に自動起動するように設定して、

[root@vm03 ~]# chmod +x /etc/init.d/hq-agent

[root@vm03 ~]# chkconfig --add hq-agent

[root@vm03 ~]# chkconfig --list hq-agent

hq-agent        0:off   1:off   2:off   3:on    4:off   5:on    6:off

 

エージェントを起動します。

※今回もエージェントは対話的に設定しています。

[root@vm03 ~]# service hq-agent start

Starting HQ Agent...... running (2182).

- No token file found, waiting for Agent to initialize

[ Running agent setup ]

Should Agent communications to HQ be unidirectional [default=no]:

What is the HQ server IP address: 192.168.5.186 ★Hyperic Server の IP アドレス

Should Agent communications to HQ always be secure [default=yes]:

What is the HQ server SSL port [default=7443]:

- Testing secure connection ... Success

What is your HQ login [default=hqadmin]:

What is your HQ password: ★パスワード入力

What IP should HQ use to contact the agent [default=192.168.5.193]:

What port should HQ use to contact the agent [default=2144]:

- Received temporary auth token from agent

- Registering agent with HQ

The server to agent communication channel is using a self-signed certificate and could not be verified

Are you sure you want to continue connecting? [default=no]: yes

- HQ gave us the following agent token

    1401380854470-8754554945777910096-7739955026510966986

- Informing agent of new HQ server

- Validating

- Successfully setup agent

[root@vm03 ~]# service hq-agent status

HQ Agent is running (PID:2182).

Current agent bundle: agent-x86-64-linux-5.8.1

Server IP address: 192.168.5.186

Server (SSL) port: 7443

Agent listen port: 2144

[root@vm03 ~]#

 

Hyperic でのリソース登録確認

 

Web ブラウザで Hyperic にアクセスすると、

「Dashboard」タブで、エージェントを起動したゲスト OS のリソースが

自動検知されています。

「Add to Inventory」をクリックして、リソース登録します。

appha-httpd-02.png

 

そのまま、Hyepric からアプリケーション制御ができることも確認しておきます。

「Resources」タブで、登録したゲストの名前をクリックします。

appha-httpd-03.png

 

「Apache 2.2.15」のリンクをクリックします。

appha-httpd-04.png

 

「Apache 2.2.15」の「Control」を開いて、

「Stop」できることを確認します。

appha-httpd-05.png

 

正常に Stop できたら、

「Start」できることも確認しておきます。

appha-httpd-06.png

 

AppHA でのポリシー設定


ここからは、Web Client で操作します。

VM が所属する vSphereHA クラスタの

「監視」→「アプリケーションの可用性」タブで、

保護対象の VM を選択して「ポリシーの割り当て」をクリックします。

 

VM が表示されていない場合、Hyperic にリソース登録できているようであれば、

検知されるまで結構時間がかかるようなので気長に待ってみます。

appha-httpd-07.png

 

「ポリシーの割り当て」画面が表示されます。

今回は、httpd 保護をする AppHA ポリシーが未作成だったので、

「+」をクリックして作成します。

appha-httpd-08.png

 

「ポリシーの作成」画面になります。

ポリシー名を入力して、「次へ」をクリックします。

appha-httpd-09.png

 

アプリケーションサービスに「Apache httpd」を選択して、「次へ」をクリックします。

それ以外の設定は、今回はデフォルトのままです。

appha-httpd-10.png

 

httpd が停止した時の修正(アプリケーションの自動再起動)の時間を設定します。

Hyperic エージェントが httpd を再起動できなかった場合は、

vSphereHA で VM をリセットするようにしています。

appha-httpd-11.png

 

httpd の障害検知をしたときに、

vCenter アラームがトリガーされるようにチェックを入れておきます。

appha-httpd-12.png

 

ポリシーの設定内容を確認して「終了」をクリックします。

appha-httpd-13.png

 

「ポリシーの割り当て」画面に戻るので、

ここまでで作成したポリシーを選択して「OK」をクリックします。

appha-httpd-14.png

 

保護対象の VM に、AppHA のポリシーが割り当てられました。

appha-httpd-15.png

 

ちなみに、下記のように1つのポリシーを複数の VM に割り当てることもできます。

appha-httpd-16.png

 

動作確認

 

ためしに、httpd のプロセスを停止してみます。

[root@vm03 ~]# ps aux | grep httpd

root      3172  0.0  1.1 175756  2748 ?        Ss   01:41   0:02 /usr/sbin/httpd -k start

apache    3173  0.0  1.1 175888  2792 ?        S    01:41   0:00 /usr/sbin/httpd -k start

apache    3174  0.0  1.1 175888  2792 ?        S    01:41   0:00 /usr/sbin/httpd -k start

apache    3175  0.0  1.1 175888  2792 ?        S    01:41   0:00 /usr/sbin/httpd -k start

apache    3176  0.0  1.1 175888  2792 ?        S    01:41   0:00 /usr/sbin/httpd -k start

apache    3177  0.0  1.2 175888  2996 ?        S    01:41   0:00 /usr/sbin/httpd -k start

apache    3178  0.0  1.1 175888  2792 ?        S    01:41   0:00 /usr/sbin/httpd -k start

apache    3179  0.0  1.1 175888  2792 ?        S    01:41   0:00 /usr/sbin/httpd -k start

apache    3180  0.0  1.1 175888  2792 ?        S    01:41   0:00 /usr/sbin/httpd -k start

root      5071  1.0  0.3 107516   868 pts/0    S+   05:58   0:00 grep httpd

[root@vm03 ~]# pkill httpd

[root@vm03 ~]# ps aux | grep httpd

root      5074  1.0  0.3 107516   868 pts/0    S+   05:59   0:00 grep httpd

 

そうすると、AppHA で障害を検知しました。

appha-httpd-17.png

 

そして少し待ったら、AppHA で自動起動されました。

[root@vm03 ~]# ps aux | grep httpd

root      5093  0.0  1.4 175756  3664 ?        Ss   06:00   0:00 /usr/sbin/httpd -k restart

apache    5094  0.0  1.2 175888  2944 ?        S    06:00   0:00 /usr/sbin/httpd -k restart

apache    5095  0.0  1.2 175888  3080 ?        S    06:00   0:00 /usr/sbin/httpd -k restart

apache    5096  0.0  0.9 175756  2444 ?        S    06:00   0:00 /usr/sbin/httpd -k restart

apache    5097  0.0  0.9 175756  2444 ?        S    06:00   0:00 /usr/sbin/httpd -k restart

apache    5098  0.0  0.9 175756  2444 ?        S    06:00   0:00 /usr/sbin/httpd -k restart

apache    5099  0.0  1.2 175888  2944 ?        S    06:00   0:00 /usr/sbin/httpd -k restart

apache    5100  0.0  1.2 175888  2944 ?        S    06:00   0:00 /usr/sbin/httpd -k restart

apache    5101  0.0  1.2 175888  2944 ?        S    06:00   0:00 /usr/sbin/httpd -k restart

root      5156  1.0  0.3 107516   864 pts/0    S+   06:04   0:00 grep httpd

 

httpd は、下記のように Hyperic から定期監視されているようです。

1分ごとに、httpd にリクエストしていることがアクセスログからわかります。

[root@vm03 ~]# tail -n 5 /etc/httpd/logs/access_log

192.168.5.193 - - [30/May/2014:06:01:41 +0900] "GET /server-status?auto HTTP/1.1" 200 299 "-" "Hyperic-HQ-Agent/5.8.1"

192.168.5.193 - - [30/May/2014:06:02:41 +0900] "GET /server-status?auto HTTP/1.1" 200 299 "-" "Hyperic-HQ-Agent/5.8.1"

192.168.5.193 - - [30/May/2014:06:03:41 +0900] "GET /server-status?auto HTTP/1.1" 200 299 "-" "Hyperic-HQ-Agent/5.8.1"

192.168.5.193 - - [30/May/2014:06:04:41 +0900] "GET /server-status?auto HTTP/1.1" 200 299 "-" "Hyperic-HQ-Agent/5.8.1"

192.168.5.193 - - [30/May/2014:06:05:41 +0900] "GET /server-status?auto HTTP/1.1" 200 299 "-" "Hyperic-HQ-Agent/5.8.1"

 

以上、AppHA での httpd 保護でした。

vSphere AppHA で

「エージェントが同期していません」という状態に遭遇しました。

※ちなみに、vCenter 5.5 u1 と AppHA 1.1 の環境です。

 

本来であれば、「アプリケーションの可用性」は下記の状態であってほしいのですが・・・

appha-notsync-01.png

 

このようになっていました。

appha-notsync-02.png

 

これは、アプリケーション保護対象のゲスト OS の

時刻が同期できていないということのようです。

 

vSphere App HA ユーザー ガイド > サービスの管理

サービスの可用性ステータス

http://pubs.vmware.com/appha-11/topic/com.vmware.app.ha.users_guide.doc/GUID-28BE0853-0486-4FFA-8509-EAF402B2AF4F.html

 

AppHA は関連コンポーネントが多いので、

不要なトラブルを避けるために検証環境でも

ちゃんと時刻同期をしておいた方がよさそうです。

(下記のあたりを・・・)

  • vCenter(とその関連コンポーネント)
  • AppHA の仮想アプライアンス
  • Hyperic Server
  • Hyperic の vPostgres DB
  • アプリケーション保護対象(Hyperic Agent を導入したゲスト OS)
  • ESXi ホスト(VMware Tools での時刻同期も起こりうるので)

 

時刻を合わせてからしばらくすると

AppHA の可用性ステータスは正常になります。

早めにステータスを戻したい場合は、

一旦 Hyperic 経由で保護対象のアプリケーションを停止→起動すると

すぐに可用性ステータスが「使用可能」に戻るようです。

(あまり何度も試してませんが・・・)


Hyperic からアプリケーションを停止→起動する手順については

下記のあたりを参考にしてもらえればと思います。

vSphere AppHA への道。Part 6. Hyperic エージェントの導入

※「Hypericエージェントの動作確認」のあたりです。

 

ちなみに、VMware の仮想アプライアンスはほとんど SUSE Linux ですが、

Red Hat 系 Linux でおなじみの ntpdate コマンドで OS の時刻を合わせようとすると

警告がでてしまい使えません。

※「192.168.0.254」は、うちのローカル NTP サーバの IP アドレスです。

localhost:~ # ntpdate 192.168.0.254

       !!!!!!!!!!!!!!  WARNING !!!!!!!!!!!!!!!!!!

 

The ntpdate program is deprecated and should not be used any more.  To

quote the upstream ntp developers:

 

  "The functionality ntpdate offered is now provided by the ntpd daemon

  itself.  If you call ntpd with the command line option -q it will

  retrieve the current time and set it accordingly."

 

Please check the Network Time Protocol (NTP) daemon man page and

  http://support.ntp.org/bin/view/Dev/DeprecatingNtpdate

for further information.

 

You can replace the ntpdate call with "rcntp ntptimeset" to achieve an

inital poll of the servers specified in /etc/ntp.conf.

 

The program /usr/sbin/sntp offers comparable functionality to ntpdate.

Specifically

  sntp -P no -r pool.ntp.org

is equivalent to

  ntpdate pool.ntp.org

 

For further details please refer to the man page of sntp.

localhost:~ #

 

警告メッセージにあるように、

sntp コマンドで ntpdate コマンドのかわりに

下記のようなコマンドで、NTP サーバの時刻に合わせられます。

# sntp -P no -r <NTP サーバの IP アドレス>

localhost:~ # sntp -P no -r 192.168.0.254

 

上記のように、その場で時刻を合わせるだけでなく、

時刻同期サービスも起動しておいた方がよいと思います。

 

たとえば、最近の SUSE なら・・・

localhost:~ # chkconfig --list | grep ntp

ntp                       0:off  1:off  2:off  3:on   4:off  5:on   6:off

 

そして、最近の Red Hat 系 Linux なら・・・

[root@db01 ~]# cat /etc/oracle-release

Oracle Linux Server release 6.5

[root@db01 ~]# chkconfig --list | grep ntp

ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

ntpdate         0:off   1:off   2:on    3:on    4:on    5:on    6:off

 

以上、AppHA と時刻同期についてでした。

以前、PowerCLI で作業履歴を残す方法をポストしました。

PowerCLI でコマンド作業履歴を残す方法

 

今回はこれを

PowerCLI コンソール起動時に、自動的に開始できるようにしてみようと思います。

 

PowerCLI のベースになっている PowerShell の起動時には

$profile という変数の PowerShell スクリプトが実行されます。

※bash の「.bash_profile」ファイルのような感じです。

 

今回の例では Windows 7 環境で実行していて、ファイル名は

C:\Users\<ユーザ名>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

となっています。

PowerCLI C:\> Get-Variable -Name profile | ft -AutoSize

 

Name    Value

----    -----

PROFILE C:\Users\gowatana\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

 

PowerCLI C:\> $profile

C:\Users\gowatana\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

 

デフォルトだと、このスクリプトファイルも、

配置されるディレクトリも存在しません。

PowerCLI C:\> dir C:\Users\gowatana\Documents\WindowsPowerShell

Get-ChildItem : パス 'C:\Users\gowatana\Documents\WindowsPowerShell' が存在しないため検出できません。

発生場所 行:1 文字:4

+ dir <<<<  C:\Users\gowatana\Documents\WindowsPowerShell

    + CategoryInfo          : ObjectNotFound: (C:\Users\gowatana\Documents\WindowsPowerShell:String) [Get-ChildItem]、ItemNotFoundException

    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

 

そこで、スクリプトファイルを新規作成します。

このとき、WindowsPowerShell というディレクトリ

(C:\Users\<ユーザ名>\Documents\WindowsPowerShell)も新規作成します。

PowerCLI C:\> mkdir C:\Users\gowatana\Documents\WindowsPowerShell

 

    ディレクトリ: C:\Users\gowatana\Documents

 

Mode                LastWriteTime     Length Name

----                -------------     ------ ----

d----        2014/05/14      2:36            WindowsPowerShell

 

PowerCLI C:\> notepad C:\Users\gowatana\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

 

スクリプトファイル Microsoft.PowerShell_profile.ps1 には、

下記のような内容を記載して保存しておきます。


Microsoft.PowerShell_profile.ps1

$log_dir = "c:\work\log"

$time_stamp = Get-Date -Format "yyyyMMddHHmmss"

$log_file = $log_dir + "\" + $Env:COMPUTERNAME + "_" + $Env:USERNAME + "_" + $time_stamp + ".log"

Start-Transcript $log_file

 

PowerCLI のコンソールを起動してみると、

下記のようにスクリプトが自動実行され、作業履歴の取得が開始されます。

※上記のスクリプトのでは、事前に C:\work\log フォルダを作成しておく必要があります。

トランスクリプトが開始されました。出力ファイル: c:\work\log\X121E-01_gowatana_20140514024600.log

          Welcome to the VMware vSphere PowerCLI!

 

Log in to a vCenter Server or ESX host:              Connect-VIServer

To find out what commands are available, type:       Get-VICommand

To show searchable help for all PowerCLI commands:   Get-PowerCLIHelp

Once you've connected, display all virtual machines: Get-VM

If you need more help, visit the PowerCLI community: Get-PowerCLICommunity

 

       Copyright (C) 1998-2013 VMware, Inc. All rights reserved.

 

 

PowerCLI C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI>

 

実際はこのような感じになります。

powercli_profile.png

 

以上、PowerShell プロファイルで

PowerCLI の作業履歴取得を自動開始してみる話でした。

このポストは

vSphere AppHA への道。Part 7. AppHA ポリシーの作成

のつづきです。

今回は、Web Client で

AppHA ポリシーを VM(のアプリケーション サービス) に割り当てます。

 

セットアップ手順の流れ

  1. Hyperic の vApp デプロイ
  2. Hyperic のセットアップ
  3. Hyperic への VC 登録
  4. AppHA の OVA デプロイ
  5. AppHA と vSphereHA のセットアップ
  6. Hyperic エージェントの導入
  7. AppHA ポリシーの作成
  8. AppHA ポリシーの割り当て ★←今回はここ

 

Hyperic にリソース登録すると、

AppHA で保護されるリソースは Web Client でも

自動的に表示されるようになります。

 

vCenter のデータセンタ(例だと dc55u1-1 という名前)で

「アプリケーションの可用性」タブを見てみると、

vCenter 関連のアプリケーションサービスと Oracle 11g が表示されています。

appha-policy-vm-00.png

 

クラスタの「管理」→「アプリケーションの可用性」を開いてみます。

 

データセンタよりも下階層の、

クラスタの「アプリケーションの可用性」タブでは

db01 という VM の、Oracle 11g だけが表示されています。

このように、それぞれのクラスタでは、

そのクラスタに所属している VM のアプリケーションだけを表示します。


ここで、AppHA のポリシーを VM のアプリケーションに割り当ててみます。

「db01」のエントリを選択して、「ポリシーの割り当て」ボタンをクリックします。

appha-policy-vm-01.png

 

前回のポストで作成したポリシー「appha-oracle11g」が表示されているので、

選択して「OK」をクリックします。

appha-policy-vm-02.png

 

保護対象のアプリケーションに AppHA のポリシーが割り当てられました。

appha-policy-vm-03.png

 

これで、AppHA の環境構築ができました。

 

 

AppHA の動作確認

 

■ アプリケーションの自動再起動

 

それでは、Oracle に障害を発生させてみます。

ためしに、Oracle のバックグラウンドプロセスの1つ(smon)を

kill コマンドで強制終了してみます。

[root@db01 ~]# ps aux | grep smon

oracle   17412  0.0  4.1 652528 84692 ?        Ss   May11   0:00 ora_smon_orcl

root     17803  0.0  0.0 107520   864 pts/2    S+   00:21   0:00 grep smon

[root@db01 ~]# kill -KILL 17412

 

数秒後、AppHA で障害検知しました。

appha-fail1-01.png

 

Oracle のインスタンスは、すぐに

Hyperic エージェントによって自動再起動されました。

AppHA のステータスは少し(数分)たってから緑に戻りました。

appha-fail1-02.png

 

vCenter では、

「AppHA <ポリシー名>: Service is down」というアラームがトリガーされました。

これは AppHA での障害復旧後も残りますが「緑にリセット」をクリックすると消えます。

appha-fail1-03.png

 

■ アプリケーションが自動再起動できなかった場合の動作確認

 

Oracle が ポリシー設定した「3分」で自動再起動できなかった場合は

VM がリセットされるか試してみました。

先ほど同様、smon の強制停止で Oracle の疑似障害を発生させました。

 

まず AppHA ではエラー検知をして、

複数回、Hyperic エージェントでの Oracle の再起動をしようとします。

※今回はわざと、自動起動するたびに Oracle を手動停止してみました。


Oracle が自動再起動できず

3分経過すると vSphere HA で、VM がリセットされました。

vCenter では「vSphere HA の仮想マシン監視アクション」という警告がトリガーされます。

appha-fail2-02.png

 

VM が起動するまで(Hyperic が監視再開するまで?)は、

「アプリケーションの可用性」画面から

その VM のエントリが見えなくなっていました。

appha-fail2-03.png

 

VM が起動すると、エントリが見えるようになり・・・

appha-fail2-04.png

 

 

アプリケーションが自動起動されると、

可用性ステータスも正常な状態に戻りました。

※Hyperic エージェントと Oracle は OS 起動時に自動起動するようにしています。

appha-fail2-05.png


結構いろいろ設定が必要ですが、

手順を整理すれば、もう少し効率よく設定できそうな気がします・・・


以上、AppHA 環境構築でした。

このポストは

vSphere AppHA への道。Part 6. Hyperic エージェントの導入

のつづきです。

今回は、Web Client で AppHA のポリシー作成をします。

 

セットアップ手順全体の流れ

  1. Hyperic の vApp デプロイ
  2. Hyperic のセットアップ
  3. Hyperic への VC 登録
  4. AppHA の OVA デプロイ
  5. AppHA と vSphereHA のセットアップ
  6. Hyperic エージェントの導入
  7. AppHA ポリシーの作成 ★←今回はここ
  8. AppHA ポリシーの割り当て

 

手順

 

Web Client のホーム画面から「管理」を開きます。

appha-pol-01.png

 

「vSphere App HA」→「ポリシー」を開いて、

「+」ボタンをクリックします。

appha-pol-02.png

 

ポリシー作成画面が表示されるので、ポリシー名を入力します。

今回は「appha-oracle11g」という名前にしました。

appha-pol-03.png

 

「アプリケーション サービス」に保護可能なアプリケーションがリストされるので

「Oracle 11g」を選択します。

他はとりあえずデフォルトのままにしておきます。

appha-pol-04.png

 

「修正」という画面で、アプリケーション障害時に

どのように修正(障害復旧)するかを設定します。


今回は、Oracle Database の障害を検知した時に

下記のような動作をするように(期待して)設定してみます。

  • サービス(Oracle DB インスタンス)を再起動する。
  • 3分以内に DB インスタンスが起動しなかったら VM をリセットする。

appha-pol-05.png


vCenter アラーム定義を設定します。

「サービスは停止しました」のチェックを ON にしておきます。

E-Mail での通知は、今回はスキップします。

appha-pol-06.png

 

設定内容を確認して「終了」をクリック。

appha-pol-07.png

 

ポリシーが作成されました。

appha-pol-08.png

 

AppHA ポリシーは、作成しただけでは機能しません。

最後に、このポリシーを VM 上のアプリケーション に割り当てて動作確認してみます。

vSphere AppHA への道。Part 8. AppHA ポリシーの割り当て ~ 動作確認

 

つづく。

このポストは

vSphere AppHA への道。Part 5. AppHA と vSphereHA のセットアップ

のつづきです。

 

今回は

保護対象のゲスト OS に直接ログインして Hyperic エージェントを導入した後、

Hypric Server の UI でリソース監視登録をします。

AppHA でのアプリケーション保護対象とする VM(のゲスト OS) には

VMware-Tools とは別に、Hyperic のエージェント導入が必要です。

 

以前のポストでも Hyperic エージェントを導入しましたが、

だいたい手順は同じです。

vSphere AppHA への道。Part 3. Hyperic への VC 登録

 

セットアップ手順全体の流れ

  1. Hyperic の vApp デプロイ
  2. Hyperic のセットアップ
  3. Hyperic への VC 登録
  4. AppHA の OVA デプロイ
  5. AppHA と vSphereHA のセットアップ
  6. Hyperic エージェントの導入 ★←今回はここ
  7. AppHA ポリシーの作成
  8. AppHA ポリシーの割り当て

 

今回導入するエージェント

 

以前のポスト同様、MyVMware から入手した下記のファイルを使用します。

hyperic-hqee-agent-x86-64-linux-5.8.1.tar.gz

 

今回のエージェント導入先について

 

ここでは、Oracle Linux に Hyperic エージェントを導入してみます。

基本的には、以前のポストのエージェント導入手順と同様です。

ちなみに、Oracle Linux は Redhat 互換の OS なので

RHEL にエージェント導入する場合も同様の手順になります。

[root@db01 ~]# cat /etc/oracle-release

Oracle Linux Server release 6.5

[root@db01 ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.5 (Santiago)

 

Linux のファイアウォールは無効にしてしまいます。

[root@db01 ~]# service iptables stop

iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]

iptables: ファイアウォールルールを消去中:                  [  OK  ]

iptables: モジュールを取り外し中:                          [  OK  ]

[root@db01 ~]# chkconfig iptables off

[root@db01 ~]# iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

 

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

 

今回の保護対象のアプリケーションについて

 

この後 AppHA で Oracle 11g を保護してみようと思います。

Oracle Database は、事前に構築してあり、

DB インスタンスとリスナーは、ゲスト OS 起動時に、一緒に自動起動するように仕込んであります。

 

Oracle DB には、今回のテスト用に

dbuser というユーザを作成しています。

Hyperic での Oracle 11g 監視には

「select any dictionary」権限が必要なようなので付与しておきます。

SQL> create user dbuser identified by "oracle";

 

ユーザーが作成されました。

 

SQL> grant connect to dbuser;

 

権限付与が成功しました。

 

SQL> grant select any dictionary to dbuser;

 

権限付与が成功しました。

 

DB インスタンスには、

Oracle リスナー経由で接続できることを確認しておきます。

とりあえず、DB インスタンスに Oracle の sqlplus で接続して

DB が起動していること(インスタンスが OPEN になっていること)を確認してみました。

 

今回はコマンドラインにパスワードを直接記載していますが、

本番環境などでテストするときは、書かないほうがよいでしょう。

※今回の Oracle Database 11g のバージョンは 11.2.0.4 です。

※保護対象 DB サーバの IP アドレスは 192.168.5.189 にしました。

[oracle@db01 ~]$ echo 'select instance_name,status from v$instance;' | sqlplus dbuser/oracle@192.168.5.189:1521/orcl

 

SQL*Plus: Release 11.2.0.4.0 Production on 日 5月 11 12:41:56 2014

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

に接続されました。

SQL>

INSTANCE_NAME    STATUS

---------------- ------------

orcl             OPEN

 

SQL> Oracle Database 11g Release 11.2.0.4.0 - 64bit Productionとの接続が切断されました。

 

エージェントの導入手順

 

最初に、エージェントを配置します。

エージェントは TAR + GZIP 形式で圧縮されているので

「tar zxf」コマンドで展開します。

今回も、展開先は /opt/vmware 配下にしてみました。

今回の Hyperic エージェントは Linux の「oracle」ユーザで起動するつもりなので、

ファイルの所有者も oracle ユーザにしてしまいました。

[root@db01 ~]# id

uid=0(root) gid=0(root) 所属グループ=0(root)

[root@db01 ~]# mkdir /opt/vmware

[root@db01 ~]# cd /opt/vmware

[root@db01 vmware]# tar zxf /root/work/agent/hyperic-hqee-agent-x86-64-linux-5.8.1.tar.gz

[root@db01 vmware]# ln -s hyperic-hqee-agent-5.8.1 hyperic

[root@db01 vmware]# chown -R oracle:oinstall hyperic-hqee-agent-5.8.1

[root@db01 vmware]# ls -l

合計 4

lrwxrwxrwx 1 root   root       24  5月 11 13:09 2014 hyperic -> hyperic-hqee-agent-5.8.1

drwxrwxrwx 7 oracle oinstall 4096  2月 22 03:15 2014 hyperic-hqee-agent-5.8.1

 

今回の環境でも、編集する設定ファイルのパスは

/opt/vmware/hyperic/conf/agent.properties です。

設定ファイルを編集します。

[root@db01 ~]# su - oracle

[oracle@db01 ~]$ id

uid=54321(oracle) gid=54321(oinstall) 所属グループ=54321(oinstall),54322(dba)

[oracle@db01 ~]$ cd /opt/vmware/hyperic/conf/

[oracle@db01 conf]$ cp -p agent.properties agent.properties_bk

[oracle@db01 conf]$ vi agent.properties

 

今回は、以前のポストの時よりも多くの設定項目について

設定ファイルに記載してみました。

下記が、デフォルトの設定ファイルとの差分です。

[oracle@db01 conf]$ diff agent.properties_bk agent.properties

71,76c71,76

< #agent.setup.camIP=localhost

< #agent.setup.camPort=7080

< #agent.setup.camSSLPort=7443

< #agent.setup.camSecure=yes

< #agent.setup.camLogin=hqadmin

< #agent.setup.camPword=hqadmin

---

> agent.setup.camIP=192.168.5.186

> agent.setup.camPort=7080

> agent.setup.camSSLPort=7443

> agent.setup.camSecure=yes

> agent.setup.camLogin=hqadmin

> agent.setup.camPword=<hqadminのパスワード>

80c80

< #agent.setup.acceptUnverifiedCertificate=no

---

> agent.setup.acceptUnverifiedCertificate=yes

199c199

< accept.unverified.certificates=false

---

> accept.unverified.certificates=true

 

エージェントを起動します。

初回起動時は、未設定の項目をいくつか対話的に設定をします。

※今回は「★」のあたりで Enter キーを押しています。

[oracle@db01 conf]$ /opt/vmware/hyperic/bin/hq-agent.sh start

Starting HQ Agent...... running (9325).

[ Running agent setup ]

Should Agent communications to HQ be unidirectional [default=no]:

What is the HQ server IP address: 192.168.5.186

Should Agent communications to HQ always be secure [default=yes]: yes

What is the HQ server SSL port [default=7443]: 7443

- Testing secure connection ... Success

What is your HQ login [default=hqadmin]: hqadmin

What is your HQ password: **Not echoing value**

What IP should HQ use to contact the agent [default=192.168.5.189]:

What port should HQ use to contact the agent [default=2144]:

- Received temporary auth token from agent

- Registering agent with HQ

The server to agent communication channel is using a self-signed certificate and could not be verified

Are you sure you want to continue connecting? [default=no]: yes

- HQ gave us the following agent token

    1399782136714-3153031852728470426-2132034102749824029

- Informing agent of new HQ server

- Validating

- Successfully setup agent

[oracle@db01 conf]$ /opt/vmware/hyperic/bin/hq-agent.sh status

HQ Agent is running (PID:9325).

Current agent bundle: agent-x86-64-linux-5.8.1

Server IP address: 192.168.5.186

Server (SSL) port: 7443

Agent listen port: 2144

 

ちなみに、設定ファイルに記載したパスワード(下記の76行目)は、

エージェントの初回起動後、暗号化されていました。

[oracle@db01 ~]$ cat -n /opt/vmware/hyperic/conf/agent.properties | grep -C2 agent.setup.camPword

    74  agent.setup.camSecure=yes

    75  agent.setup.camLogin=hqadmin

    76  agent.setup.camPword=ENC(XkzQpxtCyB22AAyz4XLMsW5rOCiEf8kr)

    77  #agent.setup.agentIP=*default*

    78  #agent.setup.agentPort=*default*

 

Hyperic での Oracle 関連リソース登録

 

ここからは、Hyperic Server の Web UI で設定します。

 

監視対象のゲスト OS で Hyperic エージェントを起動すると、

Hyperic Server でサービスが自動検知されます。

「Dashboard」タブに自動検知されたリソースが表示されるので、

「Add to Inventory」ボタンで登録します。

ちなみに Oracle Linux は Red Hat として認識されます・・・

hq-agent-add-01.png

 

「Resources」タブに、登録されたゲスト OS 名のリンクが表示されるので

それをクリックします。

hq-agent-add-02.png

 

Oracle 11g にかかわる設定をするため、

「<ホスト名> Oracle 11g」というリンクをクリックします。

hq-agent-add-03.png

 

画面の上部を見ると、現在

どのリソースについての画面が開かれているのかがわかります。

今の画面は、db01 というゲスト OS の Oracle 11g リソースのものです。

Oracle の監視設定をするため、

「Configuration Properties」というリンクをクリックします。

hq-agent-add-04.png

 

JDBC の URL や、DB 接続するための

DB ユーザ、パスワードなどが設定できます。

今回は、下記だけデフォルト値から変更しています。

  • jdbcUrl
    jdbc:oracle:thin:@<DB サーバの IP>:<Oracle リスナーのポート>:<SID>
    という形式で指定します。(デフォルト値は jdbc:oracle:thin:@localhost:1521:ORCLTST)
    今回は下記のようにしてみました。
    jdbc:oracle:thin:@192.168.5.189:1521:orcl

  • jdbcUserjdbcPassword
    hyperic のエージェントが Oracle に接続するための DB ユーザを指定します。
    このユーザには、Oracle の select any dictonary 権限が必要なようです。

hq-agent-add-05.png

 

設定が保存されました。

hq-agent-add-06.png

 

「Monitor」を開くと、

Oracle の監視情報が収集がされていることがわかります。

hq-agent-add-07.png

 

Hypericエージェントの動作確認

 

エージェントが動作するか確認するため、

Hyperic の Control 画面で Oracle を停止・起動してみます。

 

うまく動かない場合は、

設定を確認したり、ログファイルを見たりしてみるとよいと思います。

  • Hyperic エージェント
    <Hyperic エージェント展開ディレクトリ>/log/agent.log がログファイルです。
    今回の環境だと、/opt/vmware/hyperic/log/agent.log になります。

  • Oracle Database
    アラートログファイルとか・・・

 

停止するには、

Oracle 11g リソースの、「Control」タブを開きます。

Control Action で「Stop」を選択して、

Control Arguments に「immediate」と入力します。

ちなみに、shutdown immediate で DB を停止しないと

エージェントが接続し続けているためか、タイムアウトエラーになるようです。

 

指定したら、緑の矢印をクリックします。

hq-agent-add-08.png

 

シャットダウン処理が開始されます。

hq-agent-add-09.png

 

Error になりました。

が、よく見ると Oracle は停止されているようなので今回は良しとします・・・

ただし、「Command Status」をよく見ると、

ユーザの権限不足だったり、エージェント接続ができなかったり

といったことも表示されることがあるので要注意です。

 

ちなみに、Oracle の起動停止では sqlplus を使用しているようです。

hq-agent-add-10.png

 

起動するときは、

Control Action で「Start」を選択して、緑のボタンをクリックします。

hq-agent-add-11.png

 

また Error になりましたが、

「Command Status」を見るとちゃんと Oracle は

起動して(OPEN して)いそうなので、今回はこのまま進みます。

hq-agent-add-12.png

 

ちなみに、エージェントの設定が十分でないと、

ここで Stop や Start をしてもアプリが反応しなかったりします。

 

おまけ: エージェント自動起動設定

 

Hyperic エージェントは、ゲスト OS の起動時に

自動起動させる必要があるので、下記のような設定をしてみました。

以下は、Red Hat 系 Linux 向けです。

もしかしたら、もっと良い方法があるかもしれませんが・・・

 

パターン1

/etc/rc.local ファイルに記載しておく。

 

OS 起動時に、自動的に実行されるスクリプトファイルに

hq-agent.sh を追記(赤字の部分)しておきます。

[root@db01 conf]# cat -n /etc/rc.local

     1  #!/bin/sh

     2  #

     3  # This script will be executed *after* all the other init scripts.

     4  # You can put your own initialization stuff in here if you don't

     5  # want to do the full Sys V style init stuff.

     6

     7  touch /var/lock/subsys/local

     8

     9  # Hyperic Agent

    10  su - oracle -c "/opt/vmware/hyperic/bin/hq-agent.sh start"

 

パターン2

init.d スクリプト作成 してchkconfig で登録する。

 

/etc/init.d/hq-agent というスクリプトファイルを作成して、

自動起動するように chkconfig で登録してみました。

[root@db01 ~]# cat /etc/init.d/hq-agent

#!/bin/bash

#

# hq-agent: Hyperic HQ Agent

#

# chkconfig: 35 99 99

# description: Hyperic HQ Agent

#

HYPERIC_AGENT_USER=oracle

HYPERIC_AGENT_CMD=/opt/vmware/hyperic/bin/hq-agent.sh

su - $HQ_AGENT_USER -c "$HYPERIC_AGENT_CMD $@"

exit $?

上記のスクリプトを作成後、下記のように登録します。

[root@db01 ~]# chmod 755 /etc/init.d/hq-agent

[root@db01 ~]# chkconfig --add hq-agent

[root@db01 ~]# chkconfig --list hq-agent

hq-agent        0:off   1:off   2:off   3:on    4:off   5:on    6:off

 

この後は、AppHA のポリシー設定をします。

vSphere AppHA への道。Part 7. AppHA ポリシーの作成

 

つづく。

このポストは

vSphere AppHA への道。Part 4. AppHA の OVA デプロイ

のつづきです。

 

セットアップ手順の全体的な流れ

  1. Hyperic の vApp デプロイ
  2. Hyperic のセットアップ
  3. Hyperic への VC 登録
  4. AppHA の OVA デプロイ
  5. AppHA と vSphereHA のセットアップ ★←今回はここ
  6. Hyperic エージェントの導入
  7. AppHA ポリシーの作成
  8. AppHA ポリシーの割り当て

 

今回は Web Client で

AppHA の Hyperic 連携設定と、

vSphere HA 側での AppHA 対応設定をします。

 

AppHA のセットアップ(Hyperic 連携設定)


まず、Web Clientで AppHA と Hyperic の連携設定をしておきます。

 

デプロイ済みの AppHA 仮想アプライアンスをパワーオンします。

AppHA 数分程度、AppHA が起動するのを待ったら、

Web Client に AppHA のプラグインを認識させるため、一度ログアウトします。

appha-setting-01.png

 

そして、Web Client に再度ログインします。

ここでも、例では AD ドメインの Administrator ですが

デフォルトで存在する administrator@vsphere.local ユーザなどでもよいと思います。

appha-setting-02.png

 

ホーム画面で「管理」を開きます。

appha-setting-03.png

 

「vSphere App HA」→「設定」タブを開いて、

vCenter Hyperic の構成 を入力して、「適用」をクリックします。

  • vCenter Hyperic サーバ → Hyperic Server の IP アドレスを入力します。
  • ポート → デフォルトの 7443 を入力します。
  • ユーザ名 / パスワード → Hyperic Server の UI にログインするユーザを指定します。

appha-setting-04.png

 

「vCenter Hyperic証明書」というリンクが表示されるのでクリックすると、

appha-setting-05.png

 

証明書の情報が表示されるので「承認」をクリックします。

appha-setting-06.png

 

vCenter Hyperic に接続されました。

appha-setting-07.png

 

vSphere HA の AppHA 対応設定

 

AppHA を動作させるためには、

vSphere HA クラスタでも、仮想マシンの保護設定を変更しておきます。

ちなみに、AppHA の仮想アプライアンスと、保護対象になる VM は、

おなじ vCenter 内であれば異なるクラスタにいても大丈夫です。


これから AppHA で保護する予定の VM が所属しているクラスタの

「管理」→「設定」→「vSphere HA」を開き、「編集」をクリックします。

appha-vha-01.png

 

クラスタで vSphere HA がオンにして、

「仮想マシンの監視」を「仮想マシンとアプリケーションの監視」にします。

これで、このクラスタで AppHA が機能するようになります。

appha-vha-02.png

 

 

おまけ

 

vSphere HA では、VM ごとに設定をオーバーライドできるので、

下記のように VM ごとに HA 発動のための「仮想マシンの監視」設定を

変更することもできます。あまり設定することはないかもしれませんが・・・

 

「仮想マシンのオーバーライド」を開いて、「追加」をクリック。

appha-vha-03.png

 

「+」ボタンで設定対象の VM を追加します。

この画面では、現状の vSphere HA のデフォルト設定も確認できます。

appha-vha-04.png

 

VM を選択して「OK」をクリック。

appha-vha-05.png

 

 

これで VM ごとに「仮想マシンの監視」などの設定を変更できます。

appha-vha-06.png

 

たとえば、vSphere HA や AppHA での保護がいらない VM を、

意図的に「無効」設定することもできます。

※見づらかったので「仮想マシンの監視」列はデフォルトの場所から移動しています。

appha-vha-07.png

 

つぎは、アプリケーション監視対象のゲスト OS に、

Hyperion のエージェントを導入します。

vSphere AppHA への道。Part 6. Hyperic エージェントの導入

 

もう少しつづく。

このポストは

vSphere AppHA への道。Part 3. Hyperic への VC 登録

のつづきです。

今回は、Web Client で

AppHA の仮想アプライアンス(OVA ファイル)をデプロイします。

 

セットアップの流れ

  1. Hyperic の vApp デプロイ
  2. Hyperic のセットアップ
  3. Hyperic への VC 登録
  4. AppHA の OVA デプロイ ★←今回はここ
  5. AppHA と vSphereHA のセットアップ
  6. Hyperic エージェントの導入
  7. AppHA ポリシーの作成
  8. AppHA ポリシーの割り当て

 

手順

 

Web Client にログインして、

デプロイ先のインベントリオブジェクトを

右クリック→「OVF テンプレートのデプロイ」をクリックします。

appha-deploy-01.png

 

OVA ファイルを指定して「次へ」をクリックします。

今回は、MyVMware からダウンロードした

AppHA-1.1.0.188-1711850_OVF10.ova ファイル(AppHA 1.1)を使用します

appha-deploy-02.png

 

「追加の構成オプションの承諾」をクリックすると

「次へ」をクリックできるようになります。

appha-deploy-03.png

 

EULA の承諾 では、

「承諾」をクリックすると次への画面へ進めるようになります。

appha-deploy-04.png

 

「名前」には、AppHA の 仮想マシン名 を指定します。

今回は、デフォルトのまま「vSphere App HA」にしています。


そして、デプロイ先の データセンタ もしくは 仮想マシンフォルダ を

指定して「次へ」をクリックします。

appha-deploy-05.png

 

デプロイ先の ESXi を選択して「次へ」。

appha-deploy-06.png

 

今回は動作検証するだけなので、

仮想ディスクのフォーマットは 「Thin Provision」 にしました。

デプロイ先の データストア を選択して「次へ」。

appha-deploy-07.png

 

VM を接続するポートグループを選択して

「次へ」をクリックします。

appha-deploy-08.png

 

AppHA に設定する 管理ユーザ(root)のパスワードを入力し、

「Networking Properties」を展開して、ネットワーク設定情報を入力します。

appha-deploy-09.png

 

vCenter Extemsion vService 登録の確認画面が出るので「次へ」。

appha-deploy-10.png

 

設定内容を確認して「終了」をクリックするとデプロイが開始されます。

appha-deploy-11.png

 

「vSphere App HA」という VM がデプロイされました。

これも 仮想マシン バージョン がデフォルトだと 7 なので、

起動する前に 10 にアップグレードしておきます。


「vSphere App HA」→「すべての vCenter アクション」→

「互換性」→「仮想マシンの互換性のアップグレード」を開きます。

appha-deploy-12.png

 

アップグレードするか確認されます。

appha-deploy-13.png

 

互換対象は「ESXi 5.5 以降」(VM バージョン 10)にしておきます。

appha-deploy-14.png

 

「VM バージョン 10」になりました。

※ちなみに、このバージョンは vSphere Clinet だと vmx-10 と表示されます。

appha-deploy-15.png

 

このあとは、AppHA と vSphereHA のセットアップ をします。

vSphere AppHA への道。Part 5. AppHA と vSphereHA のセットアップ


まだ続く・・・

このポストは

vSphere AppHA への道。Part 2. Hyperic のセットアップ

のつづきです。

 

セットアップ手順の流れ

  1. Hyperic の vApp デプロイ
  2. Hyperic のセットアップ
  3. Hyperic への VC 登録 ★←今回はここ
  4. AppHA の OVA デプロイ
  5. AppHA と vSphereHA のセットアップ
  6. Hyperic エージェントの導入
  7. AppHA ポリシーの作成
  8. AppHA ポリシーの割り当て

 

今回は、vCenter に Hyperic のエージェントを導入して

Hyperic Server に「VC」という名前で登録します。

この「VC」リソースを登録しないと、

後の手順で AppHA のポリシーを VM に割り当てるときに下記のようなエラーとなってしまいます。

hyperic-vc-00.png

 

vCenter は仮想アプライアンス版(vCenter Server Appliance)を

使用しているので、OS は SUSE Linux です。

そのため、64bit Linux 用 のエージェントを導入します。

※Windows 版 vCenter の場合は、今回の手順ではなく Windows 用のエージェント導入が必要です。

 

1. vCenter Hyperic にログインしておく

 

まず、Web ブラウザで vCenter Hyperic(下記の URL)にアクセスします。

http://<Hyepric Server の IP アドレス>:7080/

 

ここでは、hqadmin でログイン(Sign in)します。

hyperic-vc-01.png

 

ログインしました。

この画面で、この後の手順で vCenter の自動検出確認と登録をします。

hyperic-vc-02.png

 

 

2. vCenter への Hyperic エージェント導入と起動

 

vCenter に、Hyperic エージェントを導入します。

AppHA を動作させるためには、

VMware-Tools とは別に、Hyperic のエージェントが必要になります。

 

ここまで「Hyperic エージェント」などど書いたりしていますが、

正しくは、もともとの製品名が「Hyperic HQ」なので

Hyperic HQ Agent という名前のようです。

 

■ Hyperic エージェントの導入先について

AppHA 環境を構築するには、

次の場所でエージェントが動作してる必要があるようです。

  • vCenter
    今回は仮想アプライアンス版なので Linux。
  • AppHA で保護対象のアプリが動作している ゲスト OS
    これも、今回は Linux にする予定です。

 

ちなみに、仮想アプライアンス版 vCenter 5.5 U1 の

OS バージョンは SUSE Linux 11 です。

vc55u1-1:~ # cat /etc/SuSE-release

SUSE Linux Enterprise Server 11 (x86_64)

VERSION = 11

PATCHLEVEL = 2

 

■ Hyperic エージェントの配置

MyVMware から Hyperic のエージェント(HQ Agent)をダウンロードして

SCP など(たとえば WinSCP や TeraTerm など)で

エージェント導入対象の OS に配置しておきます。

 

 

エージェントは TAR + GZIP 形式で圧縮されているので

「tar zxf」コマンドで展開します。

今回の展開先は、/opt/vmware 配下にしてみました。

vc55u1-1:~ # ls -lh /root/work/hyperic-hqee-agent-x86-64-linux-5.8.1.tar.gz

-rw------- 1 root root 99M May  1 15:51 /root/work/hyperic-hqee-agent-x86-64-linux-5.8.1.tar.gz

vc55u1-1:~ # cd /opt/vmware/

vc55u1-1:/opt/vmware # tar zxf /root/work/hyperic-hqee-agent-x86-64-linux-5.8.1.tar.gz

vc55u1-1:/opt/vmware # ln -s hyperic-hqee-agent-5.8.1 hyperic

 

Hyperic エージェントの設定ファイルを修正しておきます。

今回の環境では、設定ファイルのパスは

/opt/vmware/hyperic/conf/agent.properties となります。

 

設定ファイルは、全てを編集しなくても

エージェント起動時に対話的に設定することができます。

vc55u1-1:/opt/vmware # cd hyperic/conf/

vc55u1-1:/opt/vmware/hyperic/conf # cp -p agent.properties agent.properties_bk

vc55u1-1:/opt/vmware/hyperic/conf # vi agent.properties

 

今回、編集したのは下記の2行です。

80行目、199行目の2か所を変更しています。

この2行は、エージェントの初回起動前にあらかじめ設定しておく必要がありそうです。

vc55u1-1:/opt/vmware/hyperic/conf # diff agent.properties_bk agent.properties

80c80

< #agent.setup.acceptUnverifiedCertificate=no

---

> agent.setup.acceptUnverifiedCertificate=yes

199c199

< accept.unverified.certificates=false

---

> accept.unverified.certificates=true

 

編集箇所の周辺は下記のような感じです。

vc55u1-1:/opt/vmware/hyperic/conf # cat -n agent.properties

(省略)

    71  #agent.setup.camIP=localhost

    72  #agent.setup.camPort=7080

    73  #agent.setup.camSSLPort=7443

    74  #agent.setup.camSecure=yes

    75  #agent.setup.camLogin=hqadmin

    76  #agent.setup.camPword=hqadmin

    77  #agent.setup.agentIP=*default*

    78  #agent.setup.agentPort=*default*

    79  #agent.setup.resetupTokens=no

    80  agent.setup.acceptUnverifiedCertificate=yes

(省略)

   198  ## Automatically accept unverified certificates

   199  accept.unverified.certificates=true

(省略)

 

エージェントの起動

 

エージェントは、hq-agent.sh スクリプトで操作することができます。

スクリプトには下記のようなオプションがあります。

vc55u1-1:/opt/vmware/hyperic/bin # ./hq-agent.sh -h

Usage: ./bundles/agent-x86-64-linux-5.8.1/bin/hq-agent.sh { start | stop | restart | status | dump | ping | setup | set-property }

 

設定ファイルでデフォルトのままにしていた設定項目は、

「hq-agent.sh start」でエージェントの初回起動する時に、

対話形式で設定することができます。

デフォルト値([default=XXXX] と表示されているもの)のままでよい設定項目では、

そのまま Enter キーを押します。

※下記の例では「★」のところで対話設定しています。

※Hyperic Server の IP アドレスは 192.168.5.186 にしています。

※vCenter の IP アドレスは 192.168.5.70 にしています。

vc55u1-1:/opt/vmware/hyperic/bin # ./hq-agent.sh start

Starting HQ Agent...... running (11348).

Picked up JAVA_TOOL_OPTIONS: -Xms16M -Xmx128M

[ Running agent setup ]

Should Agent communications to HQ be unidirectional [default=no]:

What is the HQ server IP address: 192.168.5.186

Should Agent communications to HQ always be secure [default=yes]:

What is the HQ server SSL port [default=7443]:

- Testing secure connection ... Success

What is your HQ login [default=hqadmin]:

What is your HQ password: パスワードを入力

What IP should HQ use to contact the agent [default=192.168.5.70]:

What port should HQ use to contact the agent [default=2144]:

- Received temporary auth token from agent

- Registering agent with HQ

The server to agent communication channel is using a self-signed certificate and could not be verified

Are you sure you want to continue connecting? [default=no]: yes

- HQ gave us the following agent token

    1398983825352-9195715040912368100-5302549356785827088

- Informing agent of new HQ server

- Validating

- Successfully setup agent

vc55u1-1:/opt/vmware/hyperic/bin #

 

ちなみに、エージェントの対話設定を一度実行すると

それ以降は、その設定でエージェントが起動されます。

vc55u1-1:/opt/vmware/hyperic/bin # ./hq-agent.sh stop 停止

Stopping HQ Agent...

Stopped HQ Agent.

vc55u1-1:/opt/vmware/hyperic/bin # ./hq-agent.sh start 起動

Starting HQ Agent...... running (18339).

Picked up JAVA_TOOL_OPTIONS: -Xms16M -Xmx128M

vc55u1-1:/opt/vmware/hyperic/bin # ./hq-agent.sh status 状態確認

HQ Agent is running (PID:18339).

Picked up JAVA_TOOL_OPTIONS: -Xms16M -Xmx128M

Current agent bundle: agent-x86-64-linux-5.8.1

Server IP address: 192.168.5.186

Server (SSL) port: 7443

Agent listen port: 2144

 

エージェントは、OS 起動時に自動起動したいので、

とりあえず、SUSE Linux なので /etc/init.d/after.local ファイルに

下記のように起動コマンド(赤字部分)を追記しておきます。

vc55u1-1:~ # vi /etc/init.d/after.local

vc55u1-1:~ # cat /etc/init.d/after.local

#!/bin/sh

 

COMMONUTILS=/usr/sbin/vpxd_commonutils

. $COMMONUTILS

 

if [ -f "$EULA_ACCEPTING" ]; then

   touch "$EULA_RUNLEVEL_CHANGED"

   rm -f "$EULA_ACCEPTING"

fi

 

# Hyperic

/opt/vmware/hyperic/bin/hq-agent.sh start

 

3. vCenter Hyperic への vCenter 登録

 

vCenter でエージェントが起動している状態で、

Hyperic で画面更新(「Dashboard」タブのクリックでもよい)をすると、

vCneter の ゲスト OS で起動しているサービスがいくつか自動検出されます。

黄緑色の「Add to Inventory」ボタンをクリックして、Hyepric に登録してしまいます。

hyperic-vc-03.png

 

「Resource」タブを開くと、vCenter のホスト名が表示されています。

※例では「vc55u1-1.vmad.local」という名前にしています。

 

表示されている vCenter のホスト名のリンクをクリックします。

hyperic-vc-04.png

 

vCenter のリソース監視状況がわかる画面が表示されるので、

ここで「VC」という名前で VMware vCenter AppHA プラグインをリソース登録します。

「Tools Menu」→「New Server」を開きます。

hyperic-vc-05.png

 

下記を入力して「OK」をクリックします。

  • Name →「VC」
  • Server Type →「VMware vCenter AppHA」
  • Install Path →「*」

hyperic-vc-06.png

 

「VC」リソースが登録されました。

続けて「Configuration Properties」をクリックします。

hyperic-vc-07.png

 

下記を入力して「OK」をクリックします。

  • url
    例では、ためしに https://localhost/sdk (デフォルトのまま)にしていますが
    localhost のかわりに vCenter の IP アドレスを
    指定したほうがよいのかもしれません。

  • user / pass
    vCenter にログインできるユーザ/パスワードを指定します。
    今回の vCenter は AD 認証を設定しているので、
    「VMAD」という Windows ドメインの administrator を指定しています。
    もしかしたら、
    administrator@vsphere.local ユーザなどの方が簡単かもしれません。

  • process.query
    これはデフォルトのままです。

hyperic-vc-08.png

 

設定が保存されました。

hyperic-vc-09.png

 

これで、Hyperic への VC 登録ができました。

つぎは AppHA の仮想アプライアンスをデプロイします。

vSphere AppHA への道。Part 4. AppHA の OVA デプロイ

 

つづく。

このポストは

vSphere AppHA への道。Part 1. Hyperic の vApp デプロイ

のつづきです。

前回デプロイした Hyperic をセットアップしていきます。

 

セットアップ手順の流れ

  1. Hyperic の vApp デプロイ
  2. Hyperic のセットアップ ★←今回はここ
  3. Hyperic への VC 登録
  4. AppHA の OVA デプロイ
  5. AppHA と vSphereHA のセットアップ
  6. Hyperic エージェントの導入
  7. AppHA ポリシーの作成
  8. AppHA ポリシーの割り当て

 

手順

 

今回は、vApp を起動して、タイムゾーンを変更するだけです。

 

と おもったら vCenter 5.5 から仕様変更があり、タイムゾーンを変更しない方がよさそうです。

というわけで、無理に SUSE のタイムゾーンを変更せずに

vApp だけ起動して次へ・・・

仮想アプライアンス版 vCenter 5.5 の場合は、

ESXi 同様、うまく UTC で運用する方法を考える必要がるかもしれません。

 

こんな KB をみつけました。

Setting the Time Zone in the vCenter Server Appliance (2057956)

http://kb.vmware.com/kb/2057956

 

 

それでは、Hyperic の vApp 「vCenter Hyperic」を起動します。

hyperic-setup-01.png


最初に Hyperic 用 DB の VM

「vFabic_vPostgres_DB」が起動します。

 

Web Client のコンソールからアクセスすると

下記のような画面が表示されます。

 

vCenter の仮想アプライアンスなどと同様に、

Web ブラウザから下記にアクセスすることで設定ができます。

https://<vPostgres DB の IP アドレス>:5480/

hyperic-setup-02.png

 

DB の VM が起動すると、つづけて

「vCenter_Hyperic_Server」の VM が起動します。

 

こちらは、一般的な設定変更 UI である

https://<Hyepric Server の IP アドレス>:5480/

 

のほかに、Hyperic Server の UI にアクセスする URL

http://<Hyepric Server の IP アドレス>:7080/

も用意されています。

※こちらは、HTTPS ではなく HTTP でアクセスします。

hyperic-setup-03.png

 

Hyperic の Web コンソールにアクセスします。

https://<Hyepric Server の IP アドレス>:5480/

 

root ユーザのパスワードは、vApp のデプロイ中に指定した

hqadmin ユーザのパスワードと同じものが設定されます。

hyperic-setup-04.png


※タイムゾーンは UTC のままがよさそうですが・・・

私の環境では vCenter のタイムゾーンを 日本の「Asia/Tokyo」 にしていたので、

Hyperic のタイムゾーンも「Etc/UTC」から「Japan」に変更してみます。

 

ここでは省略しますが、

同様に vPostgres DB の VM のタイムゾーンも合わせておきます。

hyperic-setup-05.png

 

設定変更後、一度 Hyepric を再起動しておきます。

hyperic-setup-06.png

 

「vCenter_Hyperic_Server」の VM が起動したら、

Web ブラウザで Hyperic Server の UI にアクセスします。

http://<Hyepric Server の IP アドレス>:7080/


ちなみに、Hyperic の UI には、

これまで設定のために開いていた Web コンソールで

「vCenter Hyperic」リンクをクリックしても開くことができます。

hyperic-setup-07.png

 

Hyperic の UI には、

hqadmin ユーザでログインします。

この時のパスワードは、vApp デプロイ時に指定したものです。

hyperic-setup-08.png

 

Hyperic にログインすると、このような画面が表示されます。

hyperic-setup-09.png

 

次は、Hyperic に vCenter を登録します。

vSphere AppHA への道。Part 3. Hyperic への VC 登録

 

つづく・・・

vSphere 5.5 からの新機能、AppHA のセットアップの様子をお届けしようと思います。

けっこう長くなりそうなので、下記のように分けてポストしてみます。

 

セットアップ手順の流れ

  1. Hyperic の vApp デプロイ ★←今回はここ
  2. Hyperic のセットアップ
  3. Hyperic への VC 登録
  4. AppHA の OVA デプロイ
  5. AppHA と vSphereHA のセットアップ
  6. Hyperic エージェントの導入
  7. AppHA ポリシーの作成
  8. AppHA ポリシーの割り当て

 

AppHA の概要はこちらもどうぞ。

vSphere AppHA をデプロイするとこう見えます。

 

今回の Hyperic のマニュアルはこちら(英語)

VMware vCenter Hyperic Documentation

https://www.vmware.com/support/pubs/hyperic-pubs.html

 

ちなみに、Hyperic は vCenter Operations Management Suite に

含まれているので、今回の Hyperic はそちらの評価版を使用しました。

 

vCenter Operations Management Suite には

他にもいろいろな製品が含まれます。

VMware vCenter Operations Management Suite のドキュメント

http://www.vmware.com/jp/support/support-resources/pubs/vmware-vcops-suite-pubs

 

参考手順

 

VMware vSphere Blog(英語ですが)

Installing vSphere App HA 1.0 - Part 1 of 3

http://blogs.vmware.com/vsphere/2014/02/installing-app-ha-pt1.html

Installing vSphere App HA 1.0 - Part 2 of 3

http://blogs.vmware.com/vsphere/2014/02/installing-app-ha-pt2.html

Installing vSphere App HA 1.0 - Part 3 of 3

http://blogs.vmware.com/vsphere/2014/02/installing-vsphere-app-ha-pt3.html

 

準備

 

下記の準備をしておきます。

  • vCenter 環境を構築しておく。
    今回は、仮想アプライアンス版の vCenter 5.5 u1 を使用しています。
  • Hyperic と AppHA のOVAファイルなどを MyVMware サイトから DL しておく。
    • vCenter-hyperic-5.8.1-EE.ova
      vApp 版の Hyperic です。
      バージョンは2014年05月時点で最新の 5.8.1 を使います。
    • hyperic-hqee-agent-x86-64-linux-5.8.1.tar.gz
      Hyperic のエージェントです。
    • AppHA-1.1.0.188-1711850_OVF10.ova
      バージョンは2014年05月時点で最新の 1.1 を使います。
  • IP アドレスは、3つ用意しておく。
    • Hyperic サーバで1つ
    • Hyperic 用 DBサーバで1つ
    • AppHA の仮想アプライアンスで1つ
  • vApp デプロイ先の クラスタで、DRS を有効にしておく。
  • 保護したいアプリケーションが動作する VM(ゲスト OS)を用意しておく。
  • (今回は、障害時の E-Mail 設定は省略します。)

 

手順

 

今回は、vApp 版の Hyperic を使用するので OVA ファイルをデプロイします。

基本的に、一般的な vApp デプロイと同様の手順になります。

 

まず、Web Client にログインして、デプロイ先(今回はとりあえずデータセンタ)を

右クリック →「OVF テンプレートのデプロイ」をクリックします。

hyperic-deploy-01.png

 

事前にダウンロードしておいた Hyperic の OVA ファイルを指定します。

※ vCenter-hyperic-5.8.1-EE.ova ファイルを指定します。

hyperic-deploy-02.png

 

OVA ファイルの内容が表示されるので「次へ」。

hyperic-deploy-03.png

 

EULAの承諾 は「承諾」をクリックすると「次へ」をクリックできるようになります。

hyperic-deploy-04.png

 

vApp の名前を入力します。

今回はデフォルトの「vCenter Hyperic」のままです。

デプロイする 仮想マシンフォルダ を指定して「次へ」をクリックします。

hyperic-deploy-05.png

 

構成の選択 画面では、

本来だと vApp のスペック(小規模用、大規模用など)が選択できるはずですが、

なぜか表示されないのでそのまま(おそらく「小」規模用?)で「次へ」をクリック。

※日本語環境だからかもしれません。

hyperic-deploy-06.png

 

vApp をデプロイするクラスタを選択します。

今回は、cluster01_mgmt という名前の DRS クラスタにデプロイします。


vApp をクラスタにデプロイするときは DRS クラスタにしておきます。

DRS が有効であれば、手動モードでも構いません。

hyperic-deploy-07.png

 

仮想ディスクのフォーマットを選択します。今回は動作検証するだけなので、

ストレージ容量節約のため「Thin Provision」にします。


そして、デプロイ先のデータストアを選択します。

DRS クラスタにデプロイするので、

クラスタに参加してる ESXi が共有しているデータストアを選択します。

hyperic-deploy-08.png

 

vApp に含まれる VM を接続するポートグループを選択します。

※接続するポートグループがデフォルト以外の場合は、あらかじめ作成しておきます。


DNS サーバ、ゲートウェイ、ネットマスクは

指定したポートグループの環境に合わせて入力します。


ちなみに、

vCenter のIP プール(もしくはネットワーク プロトコル プロファイル)を作成したほうが

よさそうですが、なくても Hyperic / AppHA のデプロイはできました。

hyperic-deploy-09.png

 

Hyperic Server、Hyperic 用 DB それぞれの

管理用ユーザ「hqadmin」のパスワードを指定します。

そして、IP アドレスも指定します。「Networking Properties」を開いて・・・

hyperic-deploy-10.png

 

Hyperic Server と、Hyperic 用 DB サーバ(vPostgres DB)の

IP アドレスを入力して、「次へ」。

hyperic-deploy-11.png

 

設定内容を確認して「終了」をクリックすると、デプロイが開始されます。

hyperic-deploy-12.png

 

正常にデプロイ完了すると、Hyperic の vApp が作成されます。

※例では、「仮想マシンおよびテンプレート」のインベントリで表示しています。

hyperic-deploy-13.png

 

vApp には、2つの VM が含まれています。

  • vCenter_Hyperic_Server → Hyperic Server の VM です。
  • vFabric_vPostgres_DB → Hyperic が内部で使用する DB サーバの VM です。

どちらも、VM バージョン が 7 なので、

VM を起動する前に バージョン 10 にアップグレードしておきます。

 

まず、Hyperic Server の VM を右クリックして、

「すべての vCenter アクション」→「互換性」→

「仮想マシンの互換性のアップグレード」をクリックします。

hyperic-deploy-14.png

 

確認画面が表示されるので「はい」をクリックします。

hyperic-deploy-15.png

 

今回は「ESXi 5.5 以降」を選択します。

hyperic-deploy-16.png

 

VM バージョンが 10 になりました。

hyperic-deploy-17.png


同様に、Hyperic 用 DB サーバも

VM バージョン を 10 にしておきます。

hyperic-deploy-18.png


次は、Hyperic をセットアップします。

vSphere AppHA への道。Part 2. Hyperic のセットアップ


つづく・・・