VirtualStoreについて

2009.10.31    Windows, 馬場      baba   

Vistaや7では当たり前のことで、ちょっと古いネタなのですが、XPから移行した際にはまりかねない点なので書いてみます。

Vista以降では、C:\Program Files や C:\Windows 以下などへ通常権限では書き込めません。
UACが有効になっている限り、管理ユーザも普段は通常権限になるので、これらのフォルダに変更を加えようとするとUACが発動するはずです。

この制限はプログラムから書き込む場合も同じで、管理者権限で起動(起動時に右クリック「管理者として実行」)した場合は良いのですが、そうでない場合は書き込めません。

プログラムは通常 C:\Program Files にインストールするので、プログラムディレクトリにデータを保存できない、ということになります(UAC対応していない場合)。
そのため、行儀正しいプログラムは、Application Dataなどに設定を書き込みます。

一部のフリーソフトなどは、プログラムファイルと同じ場所にファイルを書き込もうとします。
このようなソフトから書き込みを試みた場合、単に失敗するのではなく、別のフォルダにリダイレクトされて書き込まれます。

具体的には、C:\Users\ユーザ名\AppData\Local\VirtualStore 以下に書き込まれます。

例えば、C:\Program Files\HogeApp\HogeApp.exe を、babaがログインして起動した場合、HogeApp.exeから同じフォルダに書き込みしたら、
C:\Users\baba\AppData\Local\VirtualStore\Program Files\HogeApp
にファイルが生成されます。

設定ファイルが無い!とか、管理者権限で起動したら設定が変わってる!という場合、これを調べてみると良いと思います。
ちなみに、AppDataフォルダは隠しフォルダなので、フォルダオプションで表示設定しないと出てきません。

またWindows 7を買いました

前回は会社用でしたが、今回は個人用。

Windows 7 Professional 優待アップグレード

仮想マシン欲しくてボリュームライセンス買うつもりなので、パッケージ買うつもりは無かったのですが、なんとなく箱が欲しいから買ってしまいました。
同じノリでファミリーパックも2パック買ってしまいました。

DSP版Ultimateはまだ我慢していますが、Ultimate αみたいなのが出たら絶対やられるので、出ないことを祈ります。

ついでに、立ち寄ったドスパラで面白いマウスがあったので、ネタ用に2つ買いました。
某国産マウス

さすが某国。ヶーブルが良いですよね。

こんなだからお金が貯まらない

内定通知書

本日、BPS始まって以来、初の内定通知著を手渡ししました。
田舎の小さな会社の内定通知書だけど、
今後の展望を思い描きながら、想いを込めたものです。

渡した学生も喜んでくれたようです。頑張って作ってよかった。
その様子をみて、感動しました。

残念ながらインターンを終えた彼には目標があって単純に来年からヨロシク!
ってわけにはいかないのですが、近い将来にまた関われることを期待しています。

写真をアップしたいところなのですが
PCを変えてカードリーダーがなくなったのでアップロードできず・・・

明日買いに行きます。

さくらインターネットにおけるNagios(NRPE) RAID監視スクリプト on CentOS

2009.10.28    CentOS, Linux, 中井      hiko   

昨日、さくらインターネットにおけるRAID監視スクリプトに関して記事を書きましたが、これをCentOSで設定しているときに直面した問題とその解決策に関するTIPSです。

結論から述べると、昨日のRAID監視スクリプトの設定で監視対象をCentOSにした場合、そのままでは動きません。その原因はsudoの設定にあります。

まず、事前に確認すべきこととして、監視対象ホストの端末から以下のコマンドは実行可能ですが、

# sudo -u nagios /usr/lib/nagios/plugins/check_sakura_raid
RAID OK : u0 RAID-1 OK - - - 232.885 ON -

監視ホストから下記のコマンドを実行しても監視対象ホストから結果が取得できません。

# /usr/lib/nagios/plugins/check_nrpe -H (hostname) -c check_raid
NRPE: Unable to read output

つまり、端末からコマンドを実行した場合は実行できるのにも関わらず、リモートから実行すると何故か実行されないというわけです。

ここで、sudoに関係するログとして/var/log/secureのログに注目します。

Oct 28 11:58:28 localhost sudo: nagios : sorry, you must have a tty to run sudo ; TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/local/bin/tw_cli info c0

このログが意味することとしては、端末(tty)でないとsudoが実行できない、ということで
シェル以外から実行した場合(cronなど)sudoが実行できないように設定されています。

これは、CentOSの初期設定で/etc/sudoersファイルに”Defaults requiretty”として設定されていることによるものです。
このため、この問題は該当行をコメントアウトすることで解決します。

# visudo

#Defaults    requiretty

これで監視ホストから下記コマンドを実行すると結果が取得できるようになるはずです。

# /usr/lib/nagios/plugins/check_nrpe -H (hostname) -c check_raid
RAID OK : u0 RAID-1 OK - - - 232.885 ON -

やはり問題に直面した時は素直にログを追いかけるのが鉄則ですね!

以上です。

さくらインターネットにおけるNagios(NRPE) RAID監視スクリプト

2009.10.27    Linux, nagios, 中井, 投稿者      hiko   

さくらインターネットの専用サーバRAIDプランでは、RAIDに障害発生した場合、利用者側からさくらインターネットに報告する必要があります。
RAID制御用のコマンドが用意されており手動で状態を確認することは可能ですが、問題があった場合は自動的に通知してくれる仕組みがあると便利です。

http://faq.sakura.ad.jp/faq/1032/app/servlet/qadoc?000494

弊社では既にNagiosによるサーバ監視体制を構築していますので、今回はNagios(NRPE)プラグインを自作・設定してさくらインターネットのRAID監視を自動化してみようと思います。

しかし、”RAID制御コマンドがrootでのみ実行可能”と”NRPE-serverがrootで起動不可”という相反する制約があるため、セキュリティ上の制約を考慮したうえでsudoコマンドを利用してRAID制御コマンドを実行することでこの問題を回避します。

では、早速ですが、今回設置の前提となる環境は以下の通りです。

  • 監視対象ホストがさくらインターネットの専用サーバRAIDプラン
  • 監視対象ホスト、監視ホストはともにLinux(Ubuntu 8.04)
  • 監視ホストにnagios2, nagios2-commonがインストール済み
  • 監視対象ホストにnagios-nrpe-server, nagios-nrpe-pluginがインストール済み

以上の前提を踏まえたうえで、大まかな設定を以下の手順で行います。

  1. RAID監視プラグインを監視対象ホストに設置
  2. nagios実行ユーザに対してRAID制御コマンドの実行権限を付与
  3. 監視対象ホストで監視ホストからRAID監視を可能にする設定
  4. 監視ホストから監視対象ホストに対してRAID監視を行うように設定

1. RAID監視プラグインを監視対象ホストに設置

まず、以下のシェルスクリプト(#!/bin/sh以降の行)を監視対象ホストのプラグインディレクトリ(/usr/lib/nagios/plugins)に設置し、実行権限を与えます。
今回はcheck_sakura_raidというファイル名で設置しました。設置後はrootで実行して問題なく実行できることを確認してください。

# cd /usr/lib/nagios/plugins
# vim check_sakura_raid
#!/bin/sh
DESC=`/usr/bin/sudo /usr/local/bin/tw_cli info c0 | /bin/grep "RAID-1"`
STATUS=`/bin/echo $DESC | /usr/bin/awk '{print $3}'`
case $STATUS in
  OK) echo "RAID OK :" $DESC; exit 0 ;;
  DEGRADED) echo "RAID WARNING :" $DESC; exit 1 ;;
esac
# chmod 755 check_sakura_raid
# ./check_sakura_raid

2. nagios実行ユーザに対してRAID制御コマンドの実行権限を付与

nagiosの実行ユーザ(初期設定ではnagios)がRAID制御コマンドを実行できるように細工をしてやる必要がありますので、visudoコマンドなどを使って/etc/sudoersファイルに以下のように設定を追加します。

# visudo
nagios ALL=NOPASSWD: /usr/local/bin/tw_cli

上記の設定ではnagiosユーザがパスワード無しでRAID制御コマンドを実行できるように設定していますので、設定後にnagiosユーザで実行可能かどうか確認します。

# sudo -u nagios /usr/local/bin/tw_cli

3. 監視対象ホストで監視ホストからRAID監視を可能にする設定

次に、監視対象ホストのnrpe-serverの設定ファイル(/etc/nagios/nrpe.cfg)に下記の行を追加し、監視対象から設置したプラグインを実行できるように設定します。設定後はnrpe-serverを再起動します。

# vim /etc/nagios/nrpe.cfg
 command[check_raid]=/usr/lib/nagios/plugins/check_sakura_raid

# /etc/init.d/nagios-nrpe-server restart

4. 監視ホストから監視対象ホストに対してRAID監視を行うように設定

最後に監視ホストの監視サービス設定にRAIDを追加します。

# vim /etc/nagios2/conf.d/services_nagios2.cfg

define service {
  hostgroup_name                  nrpe-raid-servers
  use                             generic-service
  service_description             [NRPE] RAID
  check_command                   check_nrpe_1arg!check_raid
}

また、上記で追加したRAID監視設定を監視対象ホストに対して適用します。

# vim /etc/nagios2/conf.d/hostgroups_nagios2.cfg

define hostgroup {
 hostgroup_name nrpe-raid-servers
 alias          [NRPE] RAID servers
 members        server1, server2
}

ここまで設定を変更したらnagiosを再起動します。

# /etc/init.d/nagios2 restart

最終的に監視ホストのnagiosの管理画面から監視対象ホストのRAIDに関するステータスが表示されるようになれば監視設定は完了です。

nagios

以上です。

Core i7で1台組みました

2009.10.24    馬場      baba   

社長マシンが遅くてダメだとのことで、こういうことになりました↓

Core i7 860 + DP55WB

Core i7 860 + DP55WB

BPSも人が増えてきた(くる)ので、人が使える場所を増やすために、PCを小型化することを検討しています。
今までは全員ミドルタワーやミニタワーを使ってみましたが、まずは社長にヒトバシラーになってもらい、スリム型を導入してみました。

写真を撮り忘れましたが、Antec minuet 350です。
社内最小マシンに、社内最高スペックを組み込んでみました。とは言っても、動画編集やゲームをやる人はいないので、通常作業をストレス無くこなせることを目標に、費用対効果が高いプランを毎回選んでいます。

Windows エクスペリエンスインデックスは、CPU(Core i7-860)とメモリ(DDR3-1333*2)とSSD(Intel X25-M 80GB G2)が7.5で、グラフィックス(Radeon HD 3450)が3.5でした。

久しぶりに小型ケースで組みましたが、やはり時間がかかりますね。
SATAの電源は足りなくなるし、3.5インチベイのねじ穴が足りなくて固定できないし、SSDのマウンタと電源が干渉するし。Intelマザーは微妙に扱いづらいし。
また、仕事用マシンでオーバークロックは(たまにしか)しないので、高級マザーは不要なのですが、バックパネルの品質と付属品の数が気になります。シリアルATAケーブルが不足するとは思わなかった。バックパネルは、一度Rampage II Extremeのを見て以来、普通のやつを折り曲げるのが苦痛です。Intelマザーを買うときは、自分に「オンボードでIntelNICが載ってる」と言い聞かせて納得します。

小型化によって、ベイの数が減ってHDD複数台付けられなくなったり、カードリーダーなどのアクセサリに制約が生じたり、デュアルディスプレイできるグラボの選択肢が減ったり、パーツの汎用性が減る上に交換が難しくなったり、数多くのデメリットが生じますが、スペースの節約がそれらを上回るかどうか、しばらく検証してみることにします。

ウィンドウを簡単に縦に伸ばす

2009.10.20    馬場      baba   

Windows 7をメインで使い始めて数ヶ月、地味に便利な機能に気づきました!

ウィンドウを上に持って行くと最大化、左右に持って行くと半分サイズになりますが、これと似たような機能。

最大化していないウィンドウの上下縁をドラッグして、画面端まで持って行くと、ウィンドウが上下方向にのみ最大化します。
これで、横はいらないから縦をMAXで使いたいブラウザなど、快適に使えますね。

やっぱりWindows 7大好き。

情報処理技術者試験

2009.10.18    馬場      baba   

今日はみんな大好き情報処理試験でした。
体系的に学んで経験を整理するのにも良い機会ですし、何より受験料が安いのが良いですね!(PMPなどは数ヶ月分のお小遣いが吹き飛んでしまうので)

BPSの開発職の人たちはみんなで仲良く受験してきました!
(場所はバラバラだし、同じ日に中国語試験を受けた変な人も一人いるみたいですが・・・)

新試験制度で注目度が上がったのか、申込数はかなり増えたようです。
とはいえ、高度試験の受験率は例年通り半分程度みたいですので、机の半分は空席です。いつものパターン。ただ、数年前より若い人が増えた印象を受けます。

私は春にさぼったので、新試験制度で初めて受験したのですが、一番びっくりしたのが「生年月日欄に2000年台が増えている」ことでした。9歳の申込者がいたということでしょうか!?

次に戸惑ったのが、午前が2つに分かれて途中退室出来なくなった点。去年までは毎回最速で途中退室していたので、昼食を食べる時間が短くなってしまいました。
さらに、午前Iは広く、午前IIは深くなっているので、午前といえど準備しないときついです・・・

私は今回システムアーキテクトを受験したのですが、論文が出来なくて書けなくて凹みました。
筋道立てて文章を組み立てる訓練が必要そうです。さらに、何時間も文字を書き続けるなんて数年ぶりだったので、途中から指がつって上手く書けなくなりました(汗
今回は、論文の採点まで行ってくれればよしと言うことで。
(ちなみに、他のBPSな人たちは、情報セキュリティスペシャリストとITストラテジストを受験したそうです)

さて、これからは来春のプロジェクトマネージャに向けて頑張ります。

仕事効率を上げる仕事方針

2009.10.16    渡辺      peter   

学生時代からいろいろな仕事術を試してきました。
誰もが知っているドラッカーさんや勝間さんといったところです。
勝間さんはtwitterでもよくつぶやいているから?
最近知っている人が増えたような、そんな気がします。

基本的に、仕事術というのは、方針のことだと思うのです。
これは仕事をやる上では必ずやろう、あるいは、必ずやめようのまとめみたいなもの。

学生時代には、
学生は自ずと学業に対して最適なライフスタイルと作業の方針を身につけます。
深夜に作業するとか、友達と遊んで帰ってきてから課題やるとか
楽しい学生生活>学業 に適したようになっていきます。
#僕だけですか?

だけど学業と職業で求められるプロセスと結果が異なるので
就職してまもない頃は、そのライフスタイルが適合しなくて苦労するのでしょうね。
うまく両立しようとして苦労する学生がいるのはそのせいでしょうね。

最適な仕事の方針は仕事や仕事場にも左右されますし、
そういった意味では、社会人になっても、転職するとき程度苦労します。

仕事のノウハウや作業の手順書は往々にして各社準備・確立しているのに
仕事方針は方針主義というか、自分で考えて行動させるのは何故なのでしょう?
そのほうが、総合的に、あるいは長い目でみて、やっぱりいいのでしょうか?
あるいは、総合的に、面倒が少なくて、コストが少ないからでしょうか?

最近は、かなり大雑把なものであっても、
仕事の方針や手順書を先に準備することによって幾つかの問題を解決できるのでは?
と考えています。もちろん継続的な改善ありきでの話ですが。

前置きが長くなってしまいましたが、
前職で心がけていた必要最小の行動ガイドラインを文書化してみました。

ご意見・ご感想頂戴できれば幸いです。

VisualStudio小ネタ

2009.10.14    馬場   タグ: —    baba   

Visual Studioでの開発に関する小ネタ2点です。

●致命的なエラーC1902エラーが出た場合
VC++で、以下のようなエラーが出ることがあります。

プログラム データベース マネージャが一致していません。
セットアップが正しく行われているか確認してください。

これは、mspdb80.dllを手動で設置した場合などに発生するようです。
C:\Program Files(x86)\Visual Studio 9.0\VC あたりを探して、mspdb80.dllがあったらリネームしたり削除してみましょう。

●WindowsアプリとConsoleアプリの切り替え
C++などで開発する際、最初にWin32 ApplicationまたはWin32 Console Applicationを選びます。
これはエントリポイント名や呼び出し規則に影響し、Win32 Applicationの場合は、エントリポイントがWinMain()に、Win32 Console Applicationの場合はmain()になります。

これを後から変更するには、プロジェクトを右クリックして Properties → Configuration Properties → Linker → System → SubSystem を設定します。

change_subsystem

古い投稿 »

COPYRIGHT [C] 2009 BEYOND PERSPECTIVE SOLUTIONS LTD. ALL RIGHTS RESERVED.