« 2006年12月 | メイン | 2007年02月 »

2007年01月 アーカイブ

2007年01月06日

テープの規格

サーバのバックアップにはまだまだテープが利用されると思います。
そこで規格を表にして見やすいようにしておきます。

TapeKikaku.jpg

2007年01月20日

nkfのインストール

CentOS4にはnkfがないようなので以下から最新のnkfをダウンロードしてきます。
当然ですがUTF-8対応のnkfをインストールします。

http://www01.tcp-ip.or.jp/~furukawa/nkf_utf8/

ダウンロードしたファイルnkf205.tar.gzを解凍してインストールしましょう。

# tar zxvf nkf205.tar.gz
# cd nkf205
# make
# make test

エラーが出なければ出来た実行ファイルとマニュアルをコピーします。

# cp nkf /usr/local/bin
# cp nkf.1 /usr/share/man/man1/

これでOK。

CentOS4でw3mを使えるようにする

CentOS4ではrpmパッケージがないようなのでソースからインストールします。
もちろんUTF-8対応にします。

以下のURLから最新版を検索しましょう。

http://sourceforge.net/

現在の最新版は w3m-0.5.1.tar.gz でした。
w3mのインストールの前にGC library 6.1 以上のものが必要なので以下のURLからダウンロードしてインストールしましょう。

http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/

最新版は gc6.8.tar.gz でした。
README.QUICKを読んでその通りインストールを済ませましょう。

# tar zxvf gc6.8.tar.gz
# cd gc6.8
# make test
# ./configure
# make
# make check
# make install

次にw3mのインストールです。

# tar zxvf w3m-0.5.1.tar.gz
# ./configure

ここで「cannot compute sizeof (long long), 77」なるエラーが出るので
/etc/ld.so.conf に /usr/local/lib を追加して ldconfig を実行します。

# make
# make install

これでw3mを起動出来るようになりました。
セグメンテーション違反というエラーが起こる場合がありますが起動時に -no-mouse を指定してやると出なくなります。いちいち指定するのが面倒なときは ~/.bash_profile などに alias w3m='w3m -no-mouse' と書いておきましょう。
私の場合さらにターミナルの設定も問題でした。
普段 poderosa を使っていて何も考えず VT100 を指定して実行していたんですが xterm や kterm に変更することでこの問題が出なくなりました。

あとw3mを起動してオプション設定をいじって環境を整える必要があります。


2007年01月21日

viの微調整

CentOSでvi(vim)を使用するとカラーモードでこれが見にくい。
なのでホームディレクトリに .vimrc を作ってカスタマイズしましょう。

$ vi ~/.vimrc
---
syntax off
---

これでカラーオフモードになる。

日本語が文字化けすることがあるので設定を追加しておきましょう。
$ vi ~/.vimrc
---
set fileencoding=japan
set fileencodings=iso-2022-jp,utf-8,euc-jp,ucs-2le,ucs-2,cp932
---

その他使いそうなものを書いておく。

set laststatus=2
 常にステータス行を表示

set autoindent
 改行時に上の行と同じく自動インデントする

set number
 行番号を表示する

set ruler
 ルーラー(右下に表示される行・列の番号)を表示する

set tabstop=数値
 タブの大きさを半角スペース数で指定

set nowrap
 折り返し表示しない

set history=数値
 コマンド履歴の保存数

set backup
 ファイルを保存する時にバックアップファイルを作成する

set nobackup
 バックアップファイルを作成しない

2007年01月24日

CentOS4でLDAPクライアント

環境によってパスワードを一元管理できるようにLDAPなどのディレクトリサーバがある場合があります。
そんな時はCentOS4マシンのパスワードをLDAPサーバにまかせる設定をしましょう。

以下のコマンドで設定します。

# authconfig

「LDAP認証を使用」にチェックを入れます。
LDAPサーバがposixAccount, posixGroup に対応していたら「LDAP を使用」にもチェックをいれましょう。
次の画面でLDAPサーバの設定をします。

これで完了。PAMを利用しているようなのでPAMを使ったアプリケーションがLDAP対応になります。
以下のファイルが書き変わります。

/etc/ldap.conf
/etc/openldap/ldap.conf
/etc/nsswitch.conf
/etc/pam.d/system-auth
/etc/sysconfig/authconfig

これでLDAPサーバからパスワードを引いてくるようになっているはずです。
ちなみにこの設定では /etc/passwd も見るようで ldap のパスワードと2つ使えます。
ややこしいのでpasswdファイルのパスワードはロックしちゃいましょう。

# passwd -l username

これでLDAPのパスワードしか使えなくなります。

2007年01月25日

ソフトウェアRAIDに障害が発生した時の確認方法

CentOS4インストール時にソフトウェアRAIDの機能を使ってRAID1を構成している場合の確認方法と障害が発生した場合の確認方法をみていきます。mdmonitorサービスが起動している必要があると思います。

# chkconfig --list mdmonitor
mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off

基本的には/proc/mdstatをみることで確認できます。
詳細な確認コマンドは以下。

# mdadm --detail /dev/md0

RAIDになんらかの障害が発生した場合,メールが送られるになっています。
仮想的に異常を発生させてメールが届くことを確認しましょう。

# mdadm /dev/md1 --fail /dev/hda1

/proc/mdstatを確認することで異常かどうかを確認することができます。

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdb2[2](F) hda2[0]
522048 blocks [2/1] [U_]

md2 : active raid1 hdb3[1] hda3[0]
29455104 blocks [2/2] [UU]

md0 : active raid1 hdb1[1] hda1[0]
48064 blocks [2/2] [UU]

unused devices:

md1に(F)マークが付き,[2/1] [U_]に表示が変わりました。
このとき/etc/mdadm.confのMAILADDRに指定したユーザにメールが届いています。
デフォルトでrootに届くはずです。内容は以下のよう。

---
Subject: Fail event on /dev/md1:yourhostname

This is an automatically generated mail message from mdadm
running on yourhostname

A Fail event had been detected on md device /dev/md1.

Faithfully yours, etc.
---

確認ができたので仮想的な異常を元に戻しましょう。

# mdadm /dev/md1 --remove /dev/hdb2
mdadm: hot removed /dev/hdb2

# mdadm /dev/md1 --add /dev/hdb2
mdadm: hot added /dev/hdb2

確認をしましょう。

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdb2[2] hda2[0]
522048 blocks [2/1] [U_]
[===>.................] recovery = 16.8% (88960/522048) finish=0.6min speed=11120K/sec
md2 : active raid1 hdb3[1] hda3[0]
29455104 blocks [2/2] [UU]

md0 : active raid1 hdb1[1] hda1[0]
48064 blocks [2/2] [UU]

unused devices:

元に戻してすぐ確認すると上のようにリカバリー状態をみることができます。
リカバリーがすむと下のような表示になっています。

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdb2[1] hda2[0]
522048 blocks [2/2] [UU]

md2 : active raid1 hdb3[1] hda3[0]
29455104 blocks [2/2] [UU]

md0 : active raid1 hdb1[1] hda1[0]
48064 blocks [2/2] [UU]

unused devices:

くれぐれも慎重に行いましょう。

CentOS4でopenLDAPを使ったユーザ情報の管理その1

CentOS4でディレクトリサービスをする場合openldapを利用しましょう。
パッケージopenldap-serversが入っていない場合があるので確認を。
今回はユーザ名とパスワード、それに電子メールアドレスを登録していきます。

始めにツリー構造を考えます。

---
dn 識別名
objectClass オブジェクトクラス
dc ドメイン構成要素
o 組織名
ou 組織単位,組織の部局
cn 一般名称,人名
---

構成の例
---
dc=com
dc=mydomain

ou=jinji,ou=eigyo,ou=gijyutsu
---
この場合は人事,営業,技術という3つのツリー構造(入れ物?)にそれぞれのデータを入れていくことになります。設定は以下。

# vi /etc/openldap/slapd.conf
---
suffix "dc=mydomain,dc=com"
rootdn "cn=Manager,dc=mydomain,dc=com"
---

suffixでベースDN(Directory Name)名を指定します。インターネットの世界でもユニークになるようにDNSと同じ設定をしておきましょう。
rootdnはこのLDAP管理者です。
パスワードを設定する必要があるんですが暗号化して記述したいので slappasswd コマンドで
出力された暗号化パスワードを記述しましょう。

# vi /etc/openldap/slapd.conf
---
rootpw {SSHA}KOwKieVxsDtLQVBwC0t10aX3YAoFKUZL
---

次はアクセス制御を施しましょう。

# /etc/openldap/slapd.conf
---
access to attr=userPassword
by self write
by dn="cn=Manager,dc=anan-nct,dc=ac,dc=jp" write
by anonymous auth
by * none

access to *
by self write
by dn="cn=Manager,dc=anan-nct,dc=ac,dc=jp" write
by * read
---
上の設定の意味は,
パスワードについてはopenLDAP管理者と本人は書換も可,
匿名ユーザでも認証すればパスワードの利用を許可。

パスワード以外についてはopenLDAP管理者と本人は書換OK,
その他の人は読込OK。

アクセス制御は /etc/host.allow /etc/hosts.deny でも可能です。
端末制御はこちらで行いましょう。


次は検索の際の高速化設定です。
デフォルトの設定でも問題ありませんがやはりきちんと設定したいところ。
今回はsn,cn(ユーザ名)とuidとメールアドレスの高速化を図りましょう。

# vi /etc/openldap/slapd.conf
---
index sn,cn,uid,mail eq,pres,sub
---


ログの設定もしておきましょう。
openLDAPのログはデフォルトでlocal4に出力し,レベルは256です。
openLDAPのログを指定したファイルに出力する場合は以下の設定をしましょう。

# vi /etc/openldap/slapd.conf
---
loglevel 256
---
この記述は新規追加になります。

# vi /etc/syslog.conf
---
local4.* /var/log/ldap.log
---

# touch /var/log/ldap.log
# chown ldap.ldap /var/log/ldap.log

ログのローテーション設定もしておきましょう。
以下のファイルに /var/log/ldap.log を追加します。
おそらく見ればどこに追加すればよいか分かると思います。

/etc/logrotate.d/syslog


どのようなログを出力させたいかは以下を参考に。

1
(0x1 trace) 関数呼出しのトレース
2
(0x2 packet) パケット処理のデバッグ
4
(0x4 args) (関数の引数も含めた)詳細なデバッグトレース
8
(0x8 conns) 接続管理
16
(0x10 BER) パケット送受信の印字
32
(0x20 filter) 検索フィルタの処理
64
(0x40 config) 設定ファイルの処理
128
(0x80 ACL) アクセス制御リストの処理
256
(0x100 stats) 接続/操作/結果の統計ログ
512
(0x200 stats2) エントリ送信の統計ログ
1024
(0x400 shell) shell バックエンドとの通信の印字
2048
(0x800 parse) エントリの解析
4096
(0x1000 cache) データのキャッシュ処理(未使用)
8192
(0x2000 index) データの索引処理(未使用)
16384
(0x4000 sync) LDAPSync 複製
32768
(0x8000 none) ログレベルの設定にかかわらずログを取るメッセージのみ

any指定で全ログを取ります。0は全く取らない。
接続管理ログも取りたければ8+256で264という風に指定します。


ここまでで設定が終了です。確認のコマンドを打ってみます。

# slaptest
config file testing succeeded

上のように表示されたらうまく設定できていますので起動してみましょう。

# service ldap start

システム起動時にopenldapを起動したい場合は以下のコマンドを打っておきます。

# chkconfig ldap on