パスワード管理

なんか久々に更新を・・・
PSNで個人情報が漏れたついでにパスワード管理をしっかりやる事に。

ツール

KeePassを選択。設定ファイルをiPhoneに移して見られることから選択(wifi必須)。
http://keepass.info/download.html
ここから、「Classic Edition」をダウンロード。現時点ではバージョン1.19b。

インストール

迷わないと思う。

日本語化

http://keepass.info/translations.html
ここから、Japaneseの1.x版をDLなさる。

で、「C:\Program Files\KeePass Password Safe」内に置く(デフォルトのインストールディレクトリです)。

そしたら、KeePass起動(または自動で起動してるかも)のメニューから、View→Change Language。すると、Japaneseが選べるので選択。
勝手に再起動したら使えるはず。

DB作成

メニューのファイル→新規、からDB作成。マスタパスワード求められるので、唯一無二の忘れてはいけない渾身のパスワードを入力。
その後いつもの(?)フロッピーマークで上書き保存しようとすると保存場所選択させられるので保存。

iPhone

iPhoneでMykeepassをインストール。
起動して「+」マーク押して「Upload From Desktop」を選択すると、アクセスするためのURLでるから、PC側でブラウザつかってアクセス。

すると、ファイル選択できるのでさっき作ったDBのファイルを選択→Submit

これで、iPhone側で「Done」押すとファイルが見えるようになってるので選択するとマスターパスワード入力を要求されるので入力。

これでdbファイルの中身が見れるので、あとは勘で!

GREとか

IHANetを見て、

  • あー、そういえばうちの会社でBGPとか実際に動かす機会ってまずないよなー
  • quaggaって結局使ってない
  • 興味はあるけどIPv4IPv6も固定持ってないや
  • 知識足りな過ぎて詰まりそう

とか思ったので、自分でちょっと試してみた。いや、ちょっとっていうのは語弊がある程度には時間かかったけど・・・。

詰まった(or 調べる必要があった)ところ

  1. GREのIF用のConfigってどう書くの?
  2. GREのIFにIPv6アドレスが振れない?
  3. あれ、ルーティングテーブルあるのにルーティングされない?

ということで順番に。CentOS5.3に。

1.GREのIF用のConfig

/etc/sysconfig/network-scripts/ifcfg-gre1

DEVICE=gre1
BOOTPROTO=none
TYPE=GRE
ONBOOT=yes
MY_OUTER_IPADDR=
MY_INNER_IPADDR=
PEER_OUTER_IPADDR=

2.GREのIFにIPv6アドレスをふる

で、config書いただけだと例のgre1にIPv6アドレスが付いてない状態でupしてくるので/etc/sysconfig/network-scripts/ifup-tunnel の、

68 /sbin/ip addr add "$MY_INNER_IPADDR" dev "$DEVICE" \
69 ${PEER_INNER_IPADDR:+peer "$PEER_INNER_IPADDR"}
70
71 /sbin/ip link set dev "$DEVICE" up

を、以下のように修正

68 /sbin/ip link set dev "$DEVICE" up
69
70 /sbin/ip addr add "$MY_INNER_IPADDR" dev "$DEVICE" \
71 ${PEER_INNER_IPADDR:+peer "$PEER_INNER_IPADDR"}

ip link~とip addr add~を入れ替えただけ。なんか先にupしないとうまくいかない。でもこれで困ってる人あんまいないみたいなんだけど、みんな解決したから書いてないだけなんだろうか。

3.sysctl設定

/etc/sysctl.conf

net.ipv6.conf.all.forwarding = 1

入れた。別にallじゃなくてもよさそうなんだけど。

あとはIHANetのサイトに書いてあるのそのまんまで行けた。

こういうのをもうちょいサッサと出来るようにならないとだめだよなーと。しかし、仕事で全くrouterとかlinux触らなくなりそうなので残念。

Xenのイメージ置き場とか作る

仮想化のテストという事で。後でもうちょっと値段調べて書きなおすのでそのメモ。システムとしての信頼性は要求するけど、ハード自体の信頼性はそこまで気にしない事にするというか気にすると高すぎて払えない。
要求は、p180は見た目とHDDが冷えそうなのが欲しかったという点で選択。HDDは32MBキャッシュで安かったのを選択。というわけで、ボトルネックになるといわれてるディスクI/O減らしてなんか適当なのぶち込んでテストしたいなーとか。まぁ、俺の動画保存領域として使われそうだけど・・・。なのでCPUはCeleronです。

名前 値段
Pulsar DCDDR2-4GB-800 4,168円*2
MiniP180 18,658円
SATA2RI4-LPPCI 6,814円
  • Faith
名前 値段
Celeron 430 1.8GHz 512KB LGA775 BOX \3,503
ST3500320AS \4,902*5
EXPI9300P \5,428
LiFE PoWER 400W (LiFE-400A) \3,589
名前 値段
Foxconn G45M \8,980

余談

RAID機能付きのマザーにしていないのは、Sil3124でのdmraidテストしたいから。もしかしたらちゃんと調べれば同じの乗ってるのかもしれないけど面倒に・・・。

net-snmpの動作を調べる(未完)

ほぼ勘で作業している事をあらかじめ明記しておく。
更に言えば、答えにたどり着けていない・・・。
そして、文法を理解するのに時間が超かかる・・・。

関連ファイルの検索

  1. straceでsnmpdの動作を確認
    • /proc/statと/proc/vmstatを開いているのを確認
  2. net-snmp-5.3.1のソースコードをDLしてくる
    • アーカイブを展開してディレクトリ内を/proc/statと/proc/vmstatで検索
    • /proc/vmstatはなんかコメントアウトっぽかった(straceでは出てくるのに)ので、/proc/statに引っ掛かったものを調べる → agent/mibgroup/hardware/cpu/cpu_linux.c

net-snmp-5.3.1/agent/mibgroup/hardware/cpu/cpu_linux.cの確認

関係ありそうな部分発見

    b = strstr(buff, "cpu ");
    if (b) {
        if (!has_cpu_26 ||
            sscanf(b, "cpu  %llu %llu %llu %llu %llu %llu %llu", &cusell,
                   &cicell, &csysll, &cidell, &ciowll, &cirqll, &csoftll) != 7)
 {
            has_cpu_26 = 0;
            sscanf(b, "cpu  %llu %llu %llu %llu", &cusell, &cicell, &csysll,
                   &cidell);

        } else {
            cpu->wait_ticks   = (unsigned long)ciowll;
            cpu->intrpt_ticks = (unsigned long)cirqll;
            cpu->sirq_ticks   = (unsigned long)csoftll;
        }
        cpu->user_ticks = (unsigned long)cusell;
        cpu->nice_ticks = (unsigned long)cicell;
        cpu->sys_ticks  = (unsigned long)csysll;
        cpu->idle_ticks = (unsigned long)cidell;

今度は、idle_ticksを探す。

# grep -r "idle_ticks" ./
./agent/mibgroup/ucd-snmp/vmstat.c

./agent/mibgroup/ucd-snmp/vmstat.cの中を確認する。

関係ありそうな部分

    dridl = cpu->idle_ticks;

    ddiv2 = ddiv + cpu->wait_ticks
                 + cpu->intrpt_ticks
                 + cpu->sirq_ticks;
    if (cpu->history) {
        duse  -= (cpu->history[0].user_hist + cpu->history[0].nice_hist);
        dsys  -=  cpu->history[0].sys_hist;
        didl  -=  cpu->history[0].idle_hist;
        ddiv2 -=  cpu->history[0].total_hist;
    }

(中略)

    case cpuidle:
        return (ddiv2 ? 100 * didl / ddiv2 : 0);

現状

よくわからない。vmstat.cにも似たような記述があるので、どっちがあたりなのかなーとか。今の自分の力量だと、これ以上net-snmpの動作を調べるのは難しいと思った。空き時間があったらやる事にする。

mysql(5.0.45)のパスワード設定

今まで、なんでパスワード設定して入れたり入れなかったりしたのかが今更わかった。原因はしっかりマニュアル読まなかった事によって、暗号化されたりされなかったりしてるのに気付かなかった事。

とりあえず、

# mysql -u root
mysql> update mysql.user set Password=password('testpass') where User='root';
mysql> flush privileges;
mysql> select Host,User,Password from mysql.user;

でいける(最後のは確認用)。

暗号化されない

  • SET PASSWORD
  • INSERT
  • UPDATE

これらのステートメントを利用してパスワードを設定する場合は暗号化がされないので、パスワードをPASSWORD()関数で囲む。

password='testpass'password=PASSWORD('testpass')

って感じ。パスワードを空白にするときはPASSWORD()で囲まなくてOK。

暗号化される

  • GRANT ... IDENTIFIED BY
  • mysqladminコマンド

これらは自動で暗号化される。

困った時用

パスワード忘れた時はmysqldを一度止めて、オプション付きで起動

mysqld_safe --skip-grant-tables &

これで、mysql -u root だけで入れるようになる。この中で設定。

パスワードの確認方法はmysql-serverにログインしてから

select Host,User,Password from mysql.user;

Dell PowerEdge を監視する会

元々PERCを利用していた事はあったんだけど、SASでやった事なかったので、予想はついていたけどDellに問い合わせてRAIDの監視方法を聞いた。結果、Server Administrator使えばいいのになんでやらないの?ばかなの?って言われたのでその方法を一応メモっておく。

インストール

買えばたぶんついてきていると思うけど、以下のCDをマウント

  • System Management Tools and Documentation

このCDは名称違うものでもかまわないかもしれない。結果として必要なのは以下のものなので

  • Dell OpenManage Server Administrator

マウントしたら、CD内のスクリプトを利用して導入。CentOS5でデフォル設定でautomountしたと仮定。

# yum install compat-libstdc++-33.i386 ←libstdc++.so.5 が必要なので
# /misc/cd/SYSMGNT/srvadmin/linux/supportscripts/srvadmin-install.sh
  1. Server Administrator CLI
  2. Storage Management

この二つを選択してインストールを進めて、基本的にデフォルトで導入。
最後にServerAdministratorを起動するか聞かれるので、そこだけyes。

使い方

とりあえず必要だったものだけ。

# omreport storage adisk controller=0     ← RAIDの状況
# omreport system esmlog                  ← 全体的なの
# omreport chassis                        ← いろんなの

omreportに-?をつけると使えるオプション(コマンド)が見れるのでそれで適当に参照するといいと思う。

software RAIDの設定

分かると結構安心して使えるようになると実感してきたので要点をメモ。

注意点

  1. grubセカンダリHDDのMBRに入れる
  2. SWAPはラウンドロビンにする(した方がいいらしい)のでRAIDパーティションにしない
  3. mdmonitorで監視する

grubセカンダリHDDのMBR

# grub
grub> root (hd1,0)
grub> setup (hd1)

via `info grub`

swapのラウンドロビン

HDD2個の場合は、OSインストール時、それぞれのHDDにSWAPをメモリと同容量で作成する(メモリの2倍になるので)。HDD増えたら実メモリの2倍をHDDの個数で割った量とかでいいと思う。

# vi /etc/fstabdefault,pri=10 〜

SWAPの行が何個かあるので、そこの「default」に「pri=10」を追加する。10じゃなくてもいいかもしれないんだけど、SWAP領域に対して優先度指定した状態では最も高い優先度が複数ある場合ラウンドロビンで振り分けてくれる(via `man swapon`)そうなのでそれを満たせれば何でもいいかと。

mdmonitorで監視

ntsysvでもchkconfigでもいいのでmdmonitorを有効化して、/etc/mdadm.confでメールアドレスを記入。VM起動するのが面倒なので後で追記する(=面倒なのでやらない可能性が高い)

終わり

さらっと書いたけど、とりあえずこれでいいかなーと。監視部分はもうちょい設定を見ないとアレなのと、メールよりSNMPで見れた方がいい気がするのでどっかに値入ってないか後でみとく。
それと、パーティション作成とか追加をセットにしないとHDDぶっ壊れた後のリカバリ出来ないからそこも。