このポストは
vSphere AppHA への道。Part 5. AppHA と vSphereHA のセットアップ
のつづきです。
今回は
保護対象のゲスト OS に直接ログインして Hyperic エージェントを導入した後、
Hypric Server の UI でリソース監視登録をします。
AppHA でのアプリケーション保護対象とする VM(のゲスト OS) には
VMware-Tools とは別に、Hyperic のエージェント導入が必要です。
以前のポストでも Hyperic エージェントを導入しましたが、
だいたい手順は同じです。
vSphere AppHA への道。Part 3. Hyperic への VC 登録
セットアップ手順全体の流れ
- Hyperic の vApp デプロイ
- Hyperic のセットアップ
- Hyperic への VC 登録
- AppHA の OVA デプロイ
- AppHA と vSphereHA のセットアップ
- Hyperic エージェントの導入★←今回はここ
- AppHA ポリシーの作成
- 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 として認識されます・・・
「Resources」タブに、登録されたゲスト OS 名のリンクが表示されるので
それをクリックします。
Oracle 11g にかかわる設定をするため、
「<ホスト名> Oracle 11g」というリンクをクリックします。
画面の上部を見ると、現在
どのリソースについての画面が開かれているのかがわかります。
今の画面は、db01 というゲスト OS の Oracle 11g リソースのものです。
Oracle の監視設定をするため、
「Configuration Properties」というリンクをクリックします。
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 - jdbcUserと jdbcPassword
hyperic のエージェントが Oracle に接続するための DB ユーザを指定します。
このユーザには、Oracle の select any dictonary 権限が必要なようです。
設定が保存されました。
「Monitor」を開くと、
Oracle の監視情報が収集がされていることがわかります。
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 を停止しないと
エージェントが接続し続けているためか、タイムアウトエラーになるようです。
指定したら、緑の矢印をクリックします。
シャットダウン処理が開始されます。
Error になりました。
が、よく見ると Oracle は停止されているようなので今回は良しとします・・・
ただし、「Command Status」をよく見ると、
ユーザの権限不足だったり、エージェント接続ができなかったり
といったことも表示されることがあるので要注意です。
ちなみに、Oracle の起動停止では sqlplus を使用しているようです。
起動するときは、
Control Action で「Start」を選択して、緑のボタンをクリックします。
また Error になりましたが、
「Command Status」を見るとちゃんと Oracle は
起動して(OPEN して)いそうなので、今回はこのまま進みます。
ちなみに、エージェントの設定が十分でないと、
ここで 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 "/opt/vmware/hyperic/bin/hq-agent.sh $@"
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 のポリシー設定をします。
つづく。