2010年1月18日月曜日

Oracle JRockit Mission Control の使用

Oracle JRockit Mission Control は、Java アプリケーションのモニタ、管理、プロファイリング、
メモリ リークの解消などを行うために設計されたツールである。
この種のツールにつきもののパフォーマンスのオーバーヘッドはあまり発生しない。

Oracle WeblogicをインストールするとJRockit Mission Control が
使用可能となる。
しかし、WindowsサービスとしてWebLogicを起動してい場合や
ノードマネージャサービス経由でWebLogicを起動しているなどの場合は
WebLogicの実行ユーザがローカルシステムアカウントになり、
通常のユーザで実行したJRockit Mission Control(以下JRMC)
からはローカルプロセスとしては発見できなくなる。

<使用するためには>
WebLogicにJRMC監視用のTCPポートを明示的に開ける設定をすることで、
JRMCからそのポート指定で接続することができる。
WebLogic管理対象サーバの”起動オプション”に以下を追記すると
MissionControl画面に関連JVM表示されるようになる。(JDP)

-Xmanagement:autodiscovery=true,authenticate=false,ssl=false,port=7091

<Mission Controlの起動>
コマンドプロンプトで以下のコマンドを実行する。
JROCKIT_HOME\bin\jrmc.exe (Windows)
JROCKIT_HOME/bin/jrmc   (Linux)

※複数の管理対象サーバがある場合、Localhost側の分は分かりにくい場合があるが
名前付きで新しいセッション(connect)を作成することが可能。


※リアルタイムの動作確認や時間指定(5分、10分など)の記録が可能。

Weblogicノードマネージャのユーザ/パスワード

構成:1台の物理サーバ(Windows)
    ノードマネージャを利用
    管理サーバと1つの管理対象サーバ
    
サーバ起動時に管理サーバおよび管理対象サーバを自動起動させるため
ノードマネージャ(NM)から起動させるWLSTスクリプトを書き、それをキックする
バッチファイルをWindowsのタスクスケジュールに登録した
(サーバ起動時に実行にチェックを入れる)。

事前準備:
1)NMのWindowsサービス登録
 wlserver_10.3\server\bin\installNodeMgrSvc.cmd

2)NMのユーザ/パスワード設定
 (Installする際に自動的にユーザ/パスワードが割り振られるが
 明示的にコマンドで起動しようとする場合、割り振られたユーザ/パスワードが
 わからないので手動で設定する)
 
・<ドメイン ホーム>config\nodemanager\nm_password.propertiesファイルに
 設定するユーザ/パスワードを記載してNMを再起動する。
 (NMが複数台ある場合は、同じように設定)
  記載例:
   username=administrator
   password=administrator

・上記と同じユーザ/パスワードをGUI管理画面でNMのユーザ/パスワード設定の
 ところに入力する。
 ※設定箇所は「マシン」のところではなく、ドメインのコンフィーグのところとなる。

=====
◇バッチファイル例  <>のところは実環境に合わせて置き換え
@echo off
call wlserver_10.3\server\bin\setWLSEnv.cmd
jrockit_160_05\bin\java weblogic.WLST

◇WLSTスクリプト例 <>のところは実環境に合わせて置き換え
import time
sleep.time(10)               <-10秒のSleep
nmConnect('', '', '', '5556', '<ドメイン名>','<ドメインディレクトリ>','ssl')
nmStart('<管理サーバ名>')     <-管理サーバの起動
nmStart('<管理対象サーバ名>')  <-管理対象サーバの起動
nmDisconnect()
exit()

【注意】
・ドメインディレクトリ指定時に“\”ではなく“/”を使用すること!!  
  例: c:/bea/user_projects/domains/TEST-DOMAIN

・NMをWindowsサービス登録するとSYSユーザで実行される。  
そのため、NMから起動する管理サーバ/管理対象サーバも  
SYSユーザで実行される。

※管理サーバから管理対象サーバを起動する場合のWLST:
connect('<管理サーバユーザ>','<パスワード>','t3://:7001')  <-管理サーバに接続
start('<管理対象サーバ>')                      <-管理対象サーバを起動
disconnect()
exit()

2010年1月13日水曜日

複数のファイルをFTPする

FTPコマンドで複数のファイルを転送する場合は、mputを
使用する。しかし、一つ一つのファイルに対して転送確認
(転送する場合はy、転送しない場合はnを入力)を行っているので
大量のファイルを転送する場合はかなり面倒である。
そこで使用するのが"prompt"コマンドである。
"prompt"は対話モードから非対話モードへ切り替え、
指定したファイルすべてに対して操作を行う。
(非対話モードから対話モードへ戻すにはもう一度
promptを実行する)

# ftp 192.168.1.1
#Name (192.168.1.1:root): testuser
331 Please specify the password.
Password:
230 Login successful.
ftp>
ftp>
prompt
ftp>mget *
<省略>
ftp>bye
#

2010年1月8日金曜日

tar実行時に特定ファイル/ディレクトリの除外

Linuxのバックアップで、別サーバをNFSマウントし、
/配下のすべての領域をNFSマウントした領域に
バックアップしたいが、/配下はNFSマウントポイントも
含まれてしまうためエラーになる。。。

調べたところ、tarするときにXオプションにて特定のファイルや
ディレクトリを除外することが可能であることが判明。

<手順>
1)除外ファイル/ディレクトリを指定したファイルを作成
 # echo "/nfs" >ExcludeList

2)tar.gzipを実行する
(ExcludeListファイルに書かれた領域以外のroot配下をtar/圧縮する)

 # tar zcvfX backup1.tar.gz ExcludeList /
 # ls
 backup1.tar.gz

---
--excludeオプションを指定して直接除外するファイルを指定することも可能。
ただし、指定はファイル単位となる。

2010年1月7日木曜日

Openポートの確認

特定のポートが開いているかどうかを確認するには。。。

◇ Windows
 DoSコマンドプロンプトでnetshコマンドで確認することが可能。
 (netstat -nでも確認可能)

 >netsh diag connect iphost ホスト名 ポート番号
 
 表示例: 
 >netsh diag connect iphost localh 80

  IPHost (localhost)
  IPHost = localhost
 Port = 80
 サーバーは次のポートで実行中と思われます [80]  ←[]内に該当ポートが表示されればOpen状態

・ Linux
lsofやnetstat -anpで確認することが可能。

 # lsof -i:ポート番号

 表示例:
 # lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd 2842 root 4u IPv6 10161 TCP *:http (LISTEN)
httpd 4076 apache 4u IPv6 10161 TCP *:http (LISTEN)

・共通
telnet IP Portでも確認することが可能。

2010年1月6日水曜日

Swap領域の増やし方

構築済みのサーバで、Swap領域が足りない場合、
以下の方法で増やすことが可能。

# dd if=/dev/zero of=/swap/swap0 bs=1024k count=2048
# mkswap /swap/swap0
# swapon /swap/swap0

fstabの編集(以下の行を追記)。
/swap/swap0 none swap exec,dev,suid,rw,sw 0 0

dmraid

CenOSのdf表示が普通じゃないので見てくれと言われ、
みたところ/boot領域のデバイス名がやたらと長い。。。

/dev/mapper/ddf1_5035305a951042022020202020201010f775204e3a354a47p1
104M 13M 86M 13% /boot

ディスクは2本でハードウェアRaidを組んでいるとのことだが
fdiskでは2本の物理デバイスが見えている。。。
いろいろ調べてみたところ、RAID対応のSATAカードを使用しているが
ハードウェアRAIDっぽいけど実はカード上のBIOSで
ソフトウェアRAIDをやっているようなカードでRAIDを組んでいることが判明。
2.6系を使っているので,OS標準のdmraidを使用していたのだ。

# dmraid -r ←使用デバイス
/dev/sda: ddf1, ".ddf1_disks", GROUP, ok, 1853253386 sectors, data@ 0
/dev/sdb: ddf1, ".ddf1_disks", GROUP, ok, 1853253386 sectors, data@ 0

# dmraid -s  ←状態確認
status: ok
... ...

ルート領域はLVM使用でボリューム作成時に物理デバイス(PV)を
dmraidでのデバイス名を指定していたのでdfでは/bootのような長い
デバイス名表示ではなかったのである。

すっきり。