古いサーバーのリプレースのために、Windows サーバーを1台仮想化する必要がありまして、さて Windows 2008 にするか Windows 2012 にするか検討しなくてはなりませんでした。

ということで Microsoft MSDN 版を一晩かけてダウンロードして、 SUSE 11sp2 (SLES11.2) の仮想環境で動かしてみました。

-インストール-

Windows 8 をインストールしたことのある方なら、特に問題もなくインストールできるでしょう。ただし、Server Core を選ぶか Standard を選ぶか Datacenter を選ぶかの選択肢が出てくること。初期パスワードに「呪文」のような仮パスワードを設定する必要があること。

違いはそんなものでした。

-初期設定-

初期設定では「サーバー名」を設定する処理がありません。サーバー名はインストールしてから、サーバーのプロパティで設定しなければなりませんでした。当然、ここでワークグループであるとかを設定するわけですが、これをやってしまうと、しつこく「再起動するよ」と出てきます。再起動する前にすることがいっぱいあるだろう、ということで「キャンセル」したところ、これが敗因でした。

-おっとどうやってリブートするんだ?・・・・-

さすが Windows 8 譲りのUIです。見事にスタートボタンがありません。しかもRDP状態では例の「Windows UI」も 2012 サーバーにはありません。

コンピュータ名も変えたし、IPも固定したし、インストールに必要なメディアも用意したので、さてリブートしようと思ったら....

「おぉ、これどうやってリブートするの?....」

Windows 2012 を初めて触った人なら、「電源ボタン」という便利なものがコンピュータのフロントパネルにあるから長押しすればいい、と反論するかもしれませんね。私も5分位悩んでそれしか方法がないのかもしれないと思いました。マジで.....

ここで良いアイディアが思い浮かび、Exploror から cmd.exe を探し出して、 shutdown /r /t コマンドでリブートしました。後で、コマンドプロンプト以外に「サーバーマネージャ」の中に隠しボタンがあるようで、ローカルサーバーの中の「タスク」ボタンの中にしっかり隠されていました。まるで宝探しのようなゲーム性がある楽しいシステムです。時間内に見つけ出さないとハングアップするぞ、みたいな。

どうも探し回っている方は多いらしく、「どうやって Windows 2012 を再起動するのか」というのはトピックスになっているようです。再起動する場合は、デスクトップのアイコンをあちこち探すより Google で検索した方が方法は早く見つかります。Microsoft の FAQ より「有志」の皆さんがより的確な答えをあなたに提供してくれます。再起動の方法を聞くなら Microsoft ではなく Google に聞け。冗談ではなく本当でした。

どうも Windows 2012 ではあまり再起動はしてほしくないようにUIが作られているようです。もしこの秘密のスイッチが見つけられなければ、何かやっちゃって「再起動しろ」と言われたら、業務時間内であっても、おとなしく即座に「はい」を押すことを強くおすすめします。それが嫌なら、今日の家族との夕食はあきらめて、残業代を稼いで深夜に一人で「再起動」ボタンを押してください。もし近所に本屋があれば、よさげなミステリー小説でも買って読んで時間を潰すことです。

a0056607_19362768.jpg


-タスクバーから「ピン止め」を外すと面白いことになった-

-全ては「ごみ箱」を開けばスタートする-

初期状態では、「サーバーマネージャ」「エクスプローラ」「PowerShell」 の3つのアイコンがタスクバーにあるのですが、これ全部ピン止めを外すことができます。間違ってピン止めを外すとスタートボタンがないので危機的な状況に陥ります。碓氷峠を下っている最中にハンドルとブレーキが一緒に壊れてしまった気分になれます。とてもエキサイティングですね。

a0056607_1940357.jpg

実は左スミに秘密のボタンがあるのを見つけたのはこの後だったりする。


大変すっきりしたデスクトップ状態となります。ServerCore(使っている人いるの?)から exit 叩いた時の「虚無感」と哀愁を感じます。

ところがですね。一つだけどうしても消せないものがあるのですよ。それが「ごみ箱」

実は「ごみ箱」に重要なヒントが隠されているのです。ごみ箱を開けば、ちゃんとエクスプローラを起動することができるのですね。Windows8 系の「ごみ箱」は偉大な機能を秘めたアイコンですね。

「困ったときはごみ箱を漁れ」

これがどうも Windows 2012 を扱う場合の鉄則なんですね。すごいセンスです。「困ったらごみ箱を開けろ」これ、なんだか Windows 系のエンジニアの末路を示しているようで、かなり高度なマイクロソフトからのジョークです。Windows 一筋の皆様、笑って許してあげてください。このテクニックは Windows 8 でも使えるので、

「Windows で困ったらごみ箱を開け」

というのがヘルプデスクがまず、エンドユーザに伝えることでしょう。

メモ帳のアイコンがないのですが....」

まずごみ箱を開いて C: から notepad と検索するとアイコンがでますよぉ...」

「ペイントを.....」 「じゃごみ箱を開いて」
a0056607_21563647.jpg

「IPを確認したいのですけど...」 「ごみ箱をですね....」

「ファイルを見つけたいのですけど」 「ごみ箱の中にですね....」

間違えなくこのテクニックは使えます。何しろ Windows 8 系 UI の中で不動の永遠無比な力強さを感じさせるアイコンがこの「ごみ箱」なのです。このごみ箱を使えば、まず、ほとんどすべての操作が行えることは間違えありません。何しろどれだけユーザがデスクトップをカスタマイズしても消えることのないアイコンなのですね。今のところは。

まぁ、タスクバーからタスクマネージャを起動するとかのテクニックもあるので、あきらめる必要はありません。知っている人だけは救われる。

-やっぱりほしい ClassicShell-

Windows8 では「必須」の ClassicShell ソフトウェアはちゃんと動きました。

a0056607_20422069.jpg


不思議なもので、これ一つだけで、「仕事のやる気」が全然違ってくるのはなぜなんでしょう。

-無理でもよいところを見つけてみた-

Windows 2012 の良いところ。それは再起動の速さですね。なんとかそれだけはアップグレードする価値はあります。また、Windows UI という食いものにもなたないチョコエッグのオマケのようなバカでかい余計なものがないだけ、インストールは Windows 8 より早く終わりました。

-あたりまえだけど Windows8 x64で動かないドライバは 2012 x64でも動かない-

本来、この検証は、「Windows でプリントサーバーを作る」ことが目的だったのですが、見事に私が普段使いしているプリンタドライバは拒否られました。本来の目的は達することができなかったわけですね。また XEN 用の SUSE準仮想化ドライバも見事に拒否られました。

つまり、「ドキュメントなんて印刷する必要はない、読みたいなら Surface をつかえ」

ということのようです。仕事で契約書を作って Surface にサインして渡せば、マイクロソフトは大儲けできますね。見積書もメールで送って、後で Surface にハンコ押して郵送すれば良いのです。商売上手いなぁ。

何しろ Windows 2012 は x64 版しか存在しないので、それでもどうしてもちょっと昔のプリンタを使って「紙メディア」が必要なら

おとなしく Windows 2008 x32 にしなさいな

というのが正解のようです。

PS: ありましたぁースタートスクリーン。画面の左隅ですね。右側必死になぞっても出てこないわけだ。そうか、サーバーにもタッチ機能が要るんだな。でもプリンタが使えないのは問題ですね。 2008 R2 では一応警告付で使えますけど。
[PR]
by islandcenter | 2013-02-20 21:50 | Windows | Trackback | Comments(0)

openSUSE 12.2 で mrtg を使う

MRTG は良く使われるルータ、コンピュータの管理ツールです。SUSE (SLES)の場合、標準パッケージには入っていませんが、openSUSE なら 1 Click インストールができるので、ここでは openSUSE 12.2 に導入してみました。

-openSUSE 12.2 の導入-

ここでは XEN の仮想環境に 8G のディスク、512Mb のメモリで作成した仮想アプライアンスとして検討します。XEN 上でopenSUSE を GUI インストールするためにぎりぎり 512Mb のメモリを与えて開始しましたが、最終的に仮想アプライアンスとして運用する場合は 256Mb - 386Mb 程度のメモリでも十分に利用できます。 vm を作ったら、一旦 Delete して再度 Virt-Manager から "I have a image ... " で実装するのがよいでしょう。

openSUSE のインストールは

- 推奨設定のチェックとは全て逆に
- time zone は asia/japan UTC は使わない
- ユーザを作成し、root とは別なパスワード
- home パーティションは作らない
- run level は 5 に

- ソフトウェア
- まず使いませんがデスクトップに好みで gnome を選択
- LibreOffice, gimp, ゲームなどのデスクトップソフトウェアはディスク節約のため全てインストールしない 後で「これは不要だろう」というものは Yast から削除しても良いでしょう。
- WEB/LAMP を選択
- 開発環境 C/C++ を選択(一応追加しておきました)
- 1 Click インストールができるよう FireFox は入れておきます。

- FireWall などは Disable に SSH のポートは開けておく、とりあえずです。
- 固定 IP を設定
- NTP の設定
- ソフトウェアリポジトリの修正(ISOファイルは外しておく)

最後に Yast からオンラインアップデートを行います。

mrtg が最終的に動作する状態になったら、Yast > Software Management と Yast > System > runlevel から不要なサービス、ソフトウェアは削除しても構いません。これでぎりぎり 256Mb のメモリでも十分動作しました。

-HTTPサービスの起動-

まず、HTTP サービスを起動するよう Yast > Network Services > HTTP server からウィザード形式で Dualing Boot のチェックを入れます。

a0056607_18441318.jpg


忘れた場合は Yast > System > System Service(Runlevel) > Expert オプションから apache2 を起動するよう set し、サービスを起動(Start)させておきます。

a0056607_1850109.jpg

インストールが終わったら X端末より FireFox を起動して opensuse.org を開き download > Search > "mrtg" > 1 Click Install でインストールします。ソースから導入するよりも、依存関係のあるパッケージもインストールされるため、SUSE ではこの方法が一番問題ないと思います。

http://software.opensuse.org/package/mrtg

a0056607_16414868.jpg


a0056607_1642257.jpg


/usr/bin/mrtg
/usr/bin/cfgmaker
/usr/bin/indexmaker

などがインストールされます。確認してください。

-ディレクトリの作成-
mrtg の作業用ディレクトリを作成します。別に /srv/www/htdocs をそのまま使ってもかまわないでしょう。

mrtg:~ # mkdir /srv/www/htdocs/mrtg
mrtg:~ # mkdir /srv/www/htdocs/mrtg/icons


1 Click インストールすると /srv/www/icons の mrtg*.png ファイルが作成されます。これらを /srv/www/htdocs/mrtg/icons にコピーしておきます。

-監査対象側-

本来はルータなどの通信装置のトラフィック管理に使うものですが、ここでは監視対象として SLES11sp2 を使いました。net-snmp は通常インストールされないため、 yast > Softwate Managementから導入します。

a0056607_17133062.jpg


SUSE(SLES) の net-snmp のデフォルトの snmpd.conf では正しく動作しないようです。ここが一番の勘所なので

http://www.opensource.apple.com/source/net_snmp/net_snmp-112.1/snmpd.conf

をコピーして、使いました。(なぜか Apple ...?)

あるいは snmpd のソースを解凍して、snmpd.conf のオリジナルをそのまま使ってもいいでしょう。

snmpd をリスタートします。

# /etc/init.d/snmpd restart

target-host1:~ # /etc/init.d/snmpd restart
Shutting down snmpd: done
Starting snmpd done
target-host1:~ # tail /var/log/net-snmpd.log
Received TERM or STOP signal... shutting down...

could not open /proc/net/if_inet6
cannot open /proc/net/snmp6 ...
NET-SNMP version 5.4.2.1
Received TERM or STOP signal... shutting down...

could not open /proc/net/if_inet6
cannot open /proc/net/snmp6 ...
NET-SNMP version 5.4.2.1
target-host1:~ #


-openSUSE への mrtg の設定まとめ-

さて、mrtg もインストールできたし、net-snmp も入ったデバイスがネットワークにあります。ここから mrtg の設定を大まかにまとめてみます。

1) # cfgmaker community@device-ip で mrtg.cfg を作る
2) mrtg.cfg の内容を確認して、 WordDir, IconDir の記述を web サーバーの作りに合わせて書き直す。
3) # indexmaker mrtg.cfg > index.html で web サーバーのドキュメントルートを作る。
4) # mrtg mrtg.cfg のコマンドを定期実行する
5) ブラウザで index.html を開く

という手順です。

- cfgmaker を走らせる -

mrtg:~ # cfgmaker public@target-host1

mrtg:~ # cfgmaker public@target-host1

出力先を指定していないのでまずはコンソールに表示されます。

Subroutine SNMP_Session::pack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 149.
Subroutine SNMP_Session::unpack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 149.
Subroutine SNMPv1_Session::pack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 604.
Subroutine SNMPv1_Session::unpack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 604.
--base: Get Device Info on public@192.168.1.240:
--base: Vendor Id: Unknown Vendor - 1.3.6.1.4.1.8072.3.2.10
--base: Populating confcache
--base: Get Interface Info
--base: Walking ifIndex
--snpd: public@192.168.1.240: -> 1 -> ifIndex = 1
--snpd: public@192.168.1.240: -> 2 -> ifIndex = 2
--snpd: public@192.168.1.240: -> 3 -> ifIndex = 3
--snpd: public@192.168.1.240: -> 4 -> ifIndex = 4

:- 略-

# 正しく設定できた場合 table タグが表示されます。
# System: や Description: が空欄の場合は失敗です。大抵の場合、監視ターゲット側の snmp の設定が間違っています。


######################################################################
# System: target-host1
# Description: Linux target-host1 3.0.13-0.27-xen #1 SMP Wed Feb 15 13:33:49 UTC 2012 (d73692b) x86_64
# Contact: Administrator
# Location: Right here, right now.
######################################################################


### Interface 1 >> Descr: 'lo' | Name: 'lo' | Ip: '127.0.0.2' | Eth: 'No Ethernet Id' ###
### The following interface is commented out because:
### * it is a Software Loopback interface
#
# Target[192.168.1.240_1]: 1:public@192.168.1.240: <--- ここから
# SetEnv[192.168.1.240_1]: MRTG_INT_IP="127.0.0.2" MRTG_INT_DESCR="lo"
# MaxBytes[192.168.1.240_1]: 1250000 <--- 0 から変更
# Title[192.168.1.240_1]: Traffic Analysis for 1 -- target-host1
# PageTop[192.168.1.240_1]: <h1>Traffic Analysis for 1 -- target-host1
# <div id="sysdetails">
# <table>
# <tr>

: この間コメントアウトされている場合があります。

# <div> <--- ここまで

: 以下略


上手くいったら

mrtg:~ # cfgmaker --output=/usr/bin/mrtg.cfg public@target-host1

(出力先=mrtg.cfg)を指定しましたが、cfg ファイルのパス、ファイル名は任意です。

※ mrtg.cfg の html 部分がコメントアウトされている場合、Target 行から <div> 部分のコメントアウトを外すと良いようです。MaxBytes のパラメータが 0 だと indexmaker でエラーになるので、 125000000 がデフォルトのようなので 0 から変更します。

-複数の監視対象がある場合-

mrtg:~ # cfgmaker public@target-host1 public@target-host2 public@target-host3 ....

スペースを開けて "community@host-address" を記述します。問題がなさそうであれば --output オプションを指定して mrtg.cfg ファイルを作成します。

※ 新しいデバイスを監視対象にするには # cfgmaker --output=new-device.cfg public@new-device
を実行して作成された new-device.cfg から不要な記述を削除した後 mrtg.cfg の最後の行に追加するのも方法です。 vi で mrtg.cfg を開いて、最後の行で :r new-device.cfg を実行して保存するのがよいでしょう。

- mrtg.cfg の修正 -

/usr/bin/mrtg.cfg のデフォルトの記述を書き換えます。監視対象が変わる都度 cfg ファイルを作り直す必要があるようなので、すでに稼働している場合 cfgmaker を使う前に mrtg.cfg のバックアップを取っておくと良さそうです。

WorkDir: IconDir: の二か所は最低書き換える必要があります。また、グラフを Right to Left にするには Options[_]: growright, bits の行のコメントアウトを解除します。

※ Language: はデフォルトでは英語です。SUSE で日本語を指定する場合は eucjp ではなく UTF-8 をつかいます(未確認)

# cat /usr/bin/mrtg.cfg

# cat /usr/bin/mrtg.cfg

# Created by
# /usr/bin/cfgmaker --output=/usr/bin/mrtg.cfg public@target-host1 public@target-host2

### Global Config Options

# for UNIX
# WorkDir: /home/http/mrtg
WorkDir: /srv/www/htdocs/mrtg   # <--- SUSE の環境に合わせて修正
IconDir: /mrtg/icons   # <-- mrtg の Icon ファイル ドキュメントルートからの相対アドレスを指定します。

# or for NT
# WorkDir: c:\mrtgdata

### Global Defaults

# to get bits instead of bytes and graphs growing to the right
Options[_]: growright, bits # <--- コメントを外します。Right to Left にグラフを表示します。

EnableIPv6: no

: 以下略



-indexmaker-

indexmaker を使って、index.html を作成します。出力先をパイプ(>)で指定して index.html を作成します。

mrtg:/srv/www/htdocs/mrtg # indexmaker /usr/bin/mrtg.cfg > /srv/www/htdocs/mrtg/index.html

mrtg:/srv/www/htdocs/mrtg # indexmaker /usr/bin/mrtg.cfg > /srv/www/htdocs/mrtg/index.html
Subroutine SNMP_Session::pack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 149.
Subroutine SNMP_Session::unpack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 149.
Subroutine SNMPv1_Session::pack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 604.
Subroutine SNMPv1_Session::unpack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 604.

mrtg:/srv/www/htdocs/mrtg # ls
icons index.html <--- index.html が作られる
mrtg:/srv/www/htdocs/mrtg #


-mrtg を起動(3回)-

mrtg を最低3回ほど動かしてみます。初回はデータがないためエラーとなりますが、気にせずとりあえず3度やってみましょう。 始動は # mrtg [path-to]mrtg.cfgです。

mrtg:/srv/www/htdocs # mrtg /usr/bin/mrtg.cfg

mrtg:/srv/www/htdocs # mrtg /usr/bin/mrtg.cfg
Subroutine SNMP_Session::pack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 149.
Subroutine SNMP_Session::unpack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 149.
Subroutine SNMPv1_Session::pack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 604.
Subroutine SNMPv1_Session::unpack_sockaddr_in6 redefined at /usr/lib/perl5/5.16.0/Exporter.pm line 66.
at /usr/bin/../lib64/mrtg2/SNMP_Session.pm line 604.


- crontab に設定 -

ここでは5分おきに mrtg がデータを収集できるよう cron に登録します。

*/5 * * * * /usr/bin/mrtg /usr/bin/mrtg.cfg

# crontab -e

*/5 * * * * /usr/bin/mrtg /usr/bin/mrtg.cfg


実際に収集を始めるとこのようなファイルが WorkDir の中に作成されます。

mrtg:/srv/www/htdocs/mrtg # ls -al

mrtg:/srv/www/htdocs/mrtg # ls -al
total 260
drwxr-xr-x 4 root root 4096 Feb 9 16:24 .
drwxr-xr-x 6 root root 4096 Feb 9 14:18 ..
-rw-r--r-- 1 root root 1756 Feb 9 16:24 target2_2-day.png
-rw-r--r-- 1 root root 1348 Feb 9 15:46 target2_2-month.png
-rw-r--r-- 1 root root 1540 Feb 9 16:17 target2_2-week.png
-rw-r--r-- 1 root root 1674 Feb 9 15:46 target2_2-year.png
-rw-r--r-- 1 root root 6671 Feb 9 16:24 target2_2.html
-rw-r--r-- 1 root root 48323 Feb 9 16:24 target2_2.log
-rw-r--r-- 1 root root 48323 Feb 9 16:23 target2_2.old
-rw-r--r-- 1 root root 1749 Feb 9 16:24 target1_2-day.png
-rw-r--r-- 1 root root 1348 Feb 9 15:46 target1_2-month.png
-rw-r--r-- 1 root root 1582 Feb 9 16:17 target1_2-week.png
-rw-r--r-- 1 root root 1674 Feb 9 15:46 target1_2-year.png
-rw-r--r-- 1 root root 6720 Feb 9 16:24 target1_2.html
-rw-r--r-- 1 root root 48397 Feb 9 16:24 target1_2.log
-rw-r--r-- 1 root root 48397 Feb 9 16:23 target1_2.old
drwxr-xr-x 2 root root 4096 Feb 9 14:46 icons
drwxr-xr-x 2 root root 4096 Feb 9 14:33 images
-rw-r--r-- 1 root root 2692 Feb 9 15:45 index.html
mrtg:/srv/www/htdocs/mrtg #


-ブラウザで確認-

ブラウザから http://mymrtg.myintra/mrtg を開きます。

a0056607_1772244.jpg


-さて-
実際には snmpd の設定が一番面倒なところでした。他にも snmpd が吐き出すデータによってはトラフィックだけではなく、様々な情報を収集して表示できるようです。

MRTG 自体は インストール > cfgmaker > mrtg.cfg の書き換え > indexmaker で inxex の作成という非常に簡単な手順ですが、監視するターゲット側の snmp の設定の方が面倒でした。ここは習うより慣れよということです。

最近は BYOD の普及により、無線LAN ルータのトラフィックが上がったなどの報告があります。無線LAN機器に snmp 機能があれば、トラフィックの量を MRTG で監視することも検討できます。

-関連リンク-
第2章 システム監視ユーティリティ openSUSE の man ページ

http://www.mrtg.jp/doc/

SNMPD.CONF の man ページ

-Keyword-

SUSE 11sp2 openSUSE 12.2 MRTG BYOD 無線 ネットワーク監視


islandcenter.jp
[PR]
by islandcenter | 2013-02-09 17:08 | SUSE | Trackback | Comments(0)