ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

JMeter2.10の、HTTPプロキシサーバーでエラー

2013-12-10 16:40:53 | 開発ネタ
今、JMeter2.10と戯れていたら、

なエラーになった。

ログ見ろって書いてあるけど、めんどっちいので、
オプション→LogViewerにチェックを入れて、

下にログを出させるようにした。こんなかんじ。

そしたら出てきた、こんなエラーログ。
2013/12/10 14:20:06 WARN  - jmeter.protocol.http.proxy.ProxyControl: Could not open/read key store E:\いろいろ\apache-jmeter-2.10\bin\proxyserver.jks (指定されたファイルが見つかりません。) 
2013/12/10 14:20:06 INFO  - jmeter.protocol.http.proxy.ProxyControl: Creating Proxy CA in E:\いろいろ\apache-jmeter-2.10\bin\proxyserver.jks 
2013/12/10 14:20:06 ERROR - jmeter.protocol.http.proxy.ProxyControl: Could not initialise key store java.io.IOException: Cannot run program "keytool" (in directory "E:\いろいろ\apache-jmeter-2.10\bin"): CreateProcess error=2, Žw’肳‚ꂽƒtƒ@ƒ
	at java.lang.ProcessBuilder.start(Unknown Source)
	at org.apache.jorphan.exec.SystemCommand.run(SystemCommand.java:142)
	at org.apache.jorphan.exec.SystemCommand.run(SystemCommand.java:125)
	at org.apache.jorphan.exec.KeyToolUtils.genkeypair(KeyToolUtils.java:123)


この下は、省略している。つまり、もっと出てくる。
どうも原因は、keytoolのあたりらしい。
ってことは、httpsあたりか・・・

・・・たしかにそこ、昔と変わってるよね!




■対策:ふるいバージョンに

ということで、2.10よりも前のバージョンに戻すことにした。

http://jmeter.apache.org/download_jmeter.cgi


で、普段は、水色のあたりをクリックするけど、
もっとスクロールして、
「Apache JMeter archives... 」をクリック

「binaries/」をクリック

まあ「apache-jmeter-2.7.zip」でもクリックして、
ダウンロード、解凍してみてください。




■実際にやってみる:その前に準備

で、起動。するんだけど、その前に、ブラウザ側の設定しときます。
IEでやります。
オプション→インターネットオプションを選択すると


ダイアログが出るので、

「接続」タブの「LANの設定」をクリック

ローカルエリアネットワークの
プロキシサーバーの
上のチェックボックスチェック
その下のアドレスに、127.0.0.1とかいれて、
ポートは、あとで設定するJMeterのHTTPプロキシのポート番号。

なお、念をいれて、「詳細設定」をクリックし

○で囲ったところを「消して」ローカルアドレスでも
プロキシ使用するようにする。
(けど、あとで書くけど、これでも、うまく行かないときがあるので、
 プライベートのIPアドレスを直接打っている)

で、全部OKして、ブラウザを再立ち上げすると、

なにも表示できない(インターネットに繋がらない)
これは、まだJMeterでプロキシの設定をしていないから。
表示できないのが正しい。
もし、どっかのサイトにいけたら、おかしいので、
プロキシがちゃんと入っているか、チェック




■実際にやってみる:JMeter設定

では、JMeterを起動する

起動できたら、テスト計画を右クリックして

追加→Threads(Users)→スレッドグループ

でスレッドグループを作ったら、

ワークベンチを右クリック

追加→Non-Testエレメント→HTTPプロキシサーバ

を選択。

ポート番号は、IEに設定したポート番号、
コントローラーは、先ほど作ったスレッドグループを選択し、
グループごとにセパレータをいれたほうがわかりやすいので、そうした

そして、「開始」

これで、開始する




■実行!と、その結果

で、ブラウザで、自分の試験するところを指定するんだけど、
このとき、
  127.0.0.1のようなループバック、
  localhostのようなローカル指定だと、
うまくプロキシに入らないことがあるので、
プライベートアドレス(192.168.1.198とか)で打って見ると

JMeterに呼び出した結果が入ってくる。





■おまけのなぞ・・・

で、なんか題名がはいっていない、4つのものがあるんだけど・・
見てみると・・・

urs.microsoft.com??
この謎は、また今度かく。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

リモート先でジョブが終わったときの戻り値と標準出力内容がほしいとき

2013-12-10 12:20:01 | トピックス
以前、

リモート先でジョブが終わったかどうかを確認する
http://blog.goo.ne.jp/xmldtp/e/cbbdbadaae9c2c8eea8ed8b2ed3cb0dd

というのを書いた。

ここでは、結局
(1)SSHでバックグランドでジョブ起動
(2)動いているかどうか確認
(3)終了したら、データを取ってくる。
ということだった。

ここで、(1)について考えてみると、
たとえば、192.168.1.180から

  ssh 192.168.1.192 /tmp/xmldtp 1234 &

を起動したとすると、
SSHコマンド実行の返り値は、/tmp/xmldtpを起動したことに対する
返り値であって、このxmldtp内で実行した処理に対する返り値は
わからない。

これらのxmldtp内部の処理の返り値と標準出力を受け取りたいというのが、
今日のお題




■お題
192.168.1.180から

  ssh 192.168.1.192 /tmp/xmldtp 1234 &

を起動すると、192.168.1.192では、以下の/tmp/xmldtp内の
シェルが実行する。

touch "/tmp/job.txt"
/tmp/xmldtp1 > "/tmp/kekka1_.txt"
/tmp/xmldtp2 > "/tmp/kekka2_.txt"
cat "/tmp/kekka1_.txt" "/tmp/kekka2_.txt" > "/tmp/kekka.txt"
rm "/tmp/job.txt" "/tmp/kekka1_.txt" "/tmp/kekka2_.txt"


ここで、/tmp/xmldtp1、/tmp/xmldtp2の2つの処理を行っているが、
この返り値を取得し、それも/tmp/kekka$1.txtに入れて、返してほしい。




■2つの方法

返り値は、$?で取得できる。
このとき、大きく2つの方法が考えられる

(1)戻り値($?)の値もファイルにechoで書き出し、
  標準出力と共に、1つのファイルに書き出した後
  不要な作業ファイルを削除する
   →すべてファイルに書き出す作戦

(2)バッククウォートで実行し、標準出力を変数に入れる
  戻り値($?)の値も、何かの変数に入れる
  これら変数をファイルに書き出す
   →すべて、変数に入れる作戦

これらの中間で、一部ファイル、一部変数に入れる形も考えられる。
が、今回はこの両極端を考える。

以下、スクリプトを記述する




■方法1:すべてファイルに書き出す作戦

こんなかんじ

touch "/tmp/job$1.txt"
/tmp/xmldtp1 > "/tmp/kekka1_$1.txt"
echo $? > "/tmp/kekka3_$1.txt"
/tmp/xmldtp2 > "/tmp/kekka2_$1.txt"
echo $? > "/tmp/kekka4_$1.txt"
cat "/tmp/kekka3_$1.txt" "/tmp/kekka1_$1.txt" "/tmp/kekka4_$1.txt" "/tmp/kekka2_$1.txt" > "/tmp/kekka$1.txt"
rm "/tmp/job$1.txt" "/tmp/kekka1_$1.txt" "/tmp/kekka2_$1.txt""/tmp/kekka3_$1.txt" "/tmp/kekka4_$1.txt"


まあ、説明は要らないだろう




■方法2:すべて変数に入れる作戦

こんなかんじ

touch "/tmp/job$1.txt"
job1out=`/tmp/xmldtp1`
job1ret=$?
job2out=`/tmp/xmldtp2`
job2ret=$?
echo $job1ret $job1out $job2ret $job2out > "/tmp/kekka$1.txt"
rm "/tmp/job$1.txt"

バッククウォートで実行(`/tmp/xmldtp1`)しているので、変数(job1out)
には、標準出力値が入る。
$?も変数にいれ、それらをまとめて書き出している。

はじめに作業ファイルを作るので(起動していることを示すため)
これを削除しているが、標準出力と戻り値に関しては、変数にいれ、
これらをファイル書き出ししていない。




■比較

ファイルを使わないので、削除し忘れの無い、方法2のほうが、
一見良いように見える。
しかし、方法2は変数に入れるため、大量のデータが変数領域に
はいることになる。これが、よいかどうか・・・

が問題になる。変数にいれるのがよろしくないとなると、
方法1になる。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

OpenStack Networking

2013-12-10 09:15:04 | ネットワーク
OSSユーザーのための勉強会 <OSS X Users Meeting> #5 OpenStack
にいってきた。その内容をメモメモ




Openstack NII 19階
会場70人くらい?

SCSKのホームページに資料載るよ!

OpenStackNetworking(Neutron)解説
 VA Linuxの人

VA
・たち位置的には、開発
・Neutronの歴史
  OpenStackのコアプロジェクトの1つ
  プロジェクト間は疎結合(HTTP通信)
   以前は、Nova-Network
    →Quantum
   Folsom(ふぉろさむ)
    →Quantum
  Grizzly,
  Havana,
   Quantumから、neutronへ
  IceHousr
   いまここ

・API
  リソースを定義し、REST APIでリソースの操作を行う

・コアリソース
  ネットワーク:L2スイッチ
  サブネット:IPアドレスブロック
  ポート:L2スイッチのポート

・ネットワークAPI
  実行例は、ドキュメント見ればわかるので省略
・ポートAPI
・CLI neutronコマンド
  だいたいAPIでできることは、できる
  Python-Neutronクライアント
  実行例はあとでみてね
  デバックオプション

・VMの起動

・その他のリソース
  仮想ルーター(l3エクステンション)
  仮想ロードバランサーなど

・仮想ルーター
  floating IPサポート

・Newtrin-server
  APIとDBの処理を行う、
  Pythonでできている

・プラグイン
  コアプラグイン:
  サービスプラグイン:サービスタイプごとにプラグイン
  継承して作る→コンフィグレーションファイルで指定
・エクステンション:リソースにAPI追加
  コマンドで確認できる

・サーバーと実行系の処理の流れ
  典型的な処理の流れ

仮想L2の実装
・Netronサーバー、プラグイン、DB、ネットワークサービス、コントローラー
・インターフェースドライバー
・エージェント:プラグイン固有処理(プラグインによってはないものも)

処理の流れ
・環境の準備
(1)プラグインの選択
(2)ホストの実行環境設定
・テナント用ネットワーク作成
・ポートの作成
・インターフェースの作成
  VMを起動するNovaComputeがインターフェースを作る
・インターフェースの検知
・ポート情報の取得
・インターフェースの設定

OpenVSwitchプラグイン、リナックスブリッジプラグイン
  →ML2プラグイン
ML2
 ・タイプドライバ
 ・メカニズムドライバ
   →個別のプラグインを作成する代わりに
    ML2のメカニズムドライバで実装できる

L3拡張機能の実装

その他のサービス実装
・基本的な構造はL3と同じ

情報源
・Launchpad
・Wiki

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

OpenStack導入事例 Yahoo

・自己紹介

・導入経緯
  2008~09年 VMの提供までだいぶ時間かかる
  2010から11年 VMを管理しきれなくなる
   WebUIによる機能を作成
    リソースを事前取得
    ロードバランサーの設定LBaaS)
    Ciscoスイッチのコンフィグ変更
  2012年
   技術的に古く、パフォーマンスよくない
   好きなとき好きなだけVM作れない
   コンポーネント依存
   社内で爆速がキャッチフレーズに

  →OpenStack検証
   ベーシックな機能は問題なし
   Jenkinsなどとも連携
   Qemuを手を加えた
   ConfigDrive
   構成のポイント:安定して稼動できる

・導入システム構成 VM Net、Volume、nova config、
    RPCタイムアウト
  Quantum config,config_drive

・Openstackの開発と管理
  社内Github,Jenkinsを利用して,Upstreamと独自コードのマージ
  Jenkinsによる自動テスト

・苦労したところ
  amqpの高い稼働率

・今後
  Nutronまわりの検証
  (べあめたるあらため)Ironic導入:物理サーバーの利点は大きい
  Nova-cellsの検証、実装
  社内ニーズに応じた実装

Q&A

ZEN→KVM
構成管理は内製
cloudstackとOpenstack
 明確にこれっていうのはなくて、手が進んだのがOpenstack
APIが結構かわるよね。
 進化している証拠。ポジティブにとらえる
バージョンアップは?
 資源があるので、はばなとぐりずりー両方つかって

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする