Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

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

$
0
0

このポストは

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 "/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 のポリシー設定をします。

つづく。


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>